Initial import, synchronized with English 1.27

Obtained from: The FreeBSD Russian Documentation Project
This commit is contained in:
Andrey Zakhvatov 2005-06-07 06:06:56 +00:00
parent d2a46d32a8
commit df0aa437c1
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/www/; revision=24758

View file

@ -0,0 +1,374 @@
<!--
The FreeBSD Russian Documentation Project
$FreeBSDru: frdp/www/ru/projects/summerofcode.sgml,v 1.2 2005/06/06 17:40:24 andy Exp $
Original revision: 1.27
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" [
<!ENTITY base CDATA "..">
<!ENTITY date "$FreeBSD$">
<!ENTITY title "Проекты FreeBSD на лето">
<!ENTITY % includes SYSTEM "../includes.sgml"> %includes;
<!ENTITY % developers SYSTEM "../developers.sgml"> %developers;
]>
<html>
&header;
<p>Проект FreeBSD с удовольствием принял участие в программе <a
href="http://code.google.com/summerofcode.html">Summer of Code 2005</a>
компании Google. В её рамках предполагается оказать финансовую поддержку
студентам, которые будут участвовать в проектах с открытым кодом в течение
летних каникул.</p>
<ul>
<li> <a href="#ideas">Примеры предложенных идей</a>
<ul>
<li><a href="#p-userland">Пользовательские программы / Инструменты
установки</a></li>
<li><a href="#p-filesystem">Файловая система</a></li>
<li><a href="#p-networking">Сетевые возможности</a></li>
<li><a href="#p-security">Информационная безопасность</a></li>
<li><a href="#p-kernel">Ядро</a></li>
</ul>
</li>
<li><a href="#mentors">Возможные руководители</a></li>
<li><a href="#faq">Часто задаваемые вопросы</a></li>
</ul>
<a name="ideas"></a>
<h2>Примеры предложенных идей</h2>
<a name="p-userland"></a>
<h3>Пользовательские программы / Инструменты установки</h3>
<ul>
<!-- <li><strong>Редизайн Web-сайта FreeBSD</strong></li> -->
<li><strong>Интеграция с BSD Installer</strong>: Подготовка прототипа для
интеграции с <a href="http://www.bsdinstaller.org/">программой установки
BSD</a>, чтобы полностью заменить устаревшую программу sysinstall,
используемую во FreeBSD. Уже было выполнено достаточно много черновой
работы, так что любой человек с достаточными знаниями за несколько
месяцев может сделать в этой области много хорошего, особенно при
соответствующем руководстве более опытных разработчиков FreeBSD.</li>
<li><strong>Встроенная программа установки через PXE</strong>: Было бы
замечательно иметь встроенную возможность выполнять установку через PXE.
Это позволило бы создать установочный сервер на базе CDROM с FreeSBIE
на одной машине, указать в BIOS других компьютеров на загрузку с PXE, и
выполнить оставшиеся действия как по мановению волшебной палочки. Это
очень помогло бы при разворачивании кластерных узлов и тому подобных
задачах.</li>
<li><strong>Полностью интегрированный мониторинг SNMP</strong>:
Подключаемые модули для нашей технологии BSNMP для мониторинга отдельных
состояний системы, в частности, загрузки, дискового пространства,
статистики по виртуальной памяти, энтропии, правилам сетевого экрана и
его состоянии, очередям и отказам/подтверждениям sendmail и подобным
вещам. Клиент SNMP, который мог бы собирать и централизовать снимаемые
данные, обрабатывать их и так далее. Координируют <a
href="mailto:philip@FreeBSD.org">&a.philip;</a>, <a
href="mailto:glebius@FreeBSD.org">&a.glebius;</a>, <a
href="mailto:harti@FreeBSD.org">&a.harti;</a> и <a
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a>.</li>
<li><strong>Интеграция поддержки Xen</strong>: Поддержка <a
href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/">монитора
виртуальной машины Xen</a> включается во FreeBSD -CURRENT, поэтому
установочная программа должна быть обновлена, чтобы могла быть возможна
установка системы Xen с несколькими узлами FreeBSD и так далее.</li>
<li><strong>Переписать CVSup на C</strong>: <a
href="http://www.cvsup.org">CVSup</a> представляет собой ориентированную
на CVS сетевую систему общего назначения для распространения файлов. Она
массово использовалась около 10 лет для распространения CVS-дерева
FreeBSD между зеркалами по всему миру. CVSup была написана на Modula-3 и
её реализация на языке C позволит улучшать эту систему большему
количеству пользователей. Архитектура CVSup является многопоточной, так
что претендент должен иметь некоторый опыт работы с pthreads.
Дополнительными требованиями является понимание хранилищ исходных текстов
Subversion и Perforce. На данный момент часть работ по написанию и
проектированию уже выполнена. Координатором является <a
href="mailto:mux@FreeBSD.org">&a.mux;</a>.</li>
<li><strong>Улучшение нашей системы регрессивного тестирования</strong>:
Ник Клэйтон создал инфраструктуру проведения регрессивных тестов при
помощи языка Perl. Большее количество тестов должно работать с libtap.
В основном здесь две части. Во-первых, многие из существующих тестов
должны вместо assert() использовать ok() и близкие вызовы из libtap.
Во-вторых, нужно написать большее количество регрессивных тестов. К этой
работе приглашаются студенты, знакомые с языками написания скриптов и
тестированием программного обеспечения. Координатором является <a
href="mailto:nik@FreeBSD.org">&a.nik;</a>.</li>
<li><strong>Отслеживание производительности во времени</strong>: Одной из
больших проблем проекта масштаба FreeBSD является мониторинг изменений в
характеристиках производительности с течением времени. Для этого
требуется несколько вещей. Среди них набор соответствующих тестов,
оборудование для их запуска, база данных для хранения результатов и
программное обеспечения для извлечения интересующих нас результатов и
их выдачи. Решение этих проблем в целом, видимо, выходит за рамки работы
на лето, однако интересующая нас часть может быть выполнена.
Координатором является <a href="mailto:brooks@FreeBSD.org">
&a.brooks;</a>.</li>
</ul>
<a name="p-filesystem"></a>
<h3>Файловая система</h3>
<ul>
<li><strong>Журналирование UFS</strong>: Добавление журналирования и
функций воспроизведения для файловой системы UFS. Целью является
повышение надёжности файловой системы и значительное снижение
необходимости проведение полной проверки 'fsck' после сбоя или отключения
электроэнергии. Это проект, который будет иметь дело не только с
внутренним устройством файловой системы, но и систем виртуальной памяти и
буферизации/кэширования, так что это прекрасная возможность изучить
многие фундаментальные аспекты операционной системы.<br>
Работа над этой задачей уже ведётся, но дополнительная помощь всегда
нужна и будет приветствоваться. Кандидаты должны иметь хотя бы
поверхностное представление о структурах данных файловой системы (i-узлы,
свободные списки, каталоги) и сильное желание больше узнать о таких
системах. Этот проект станет существенным пунктом любого резюме, но он
не для слабых людей. Координатором является <a
href="mailto:scottl@FreeBSD.org">&a.scottl;</a>.
<li><strong>Autofs</strong>: Создание файловой системы autofs по её
описанию. Кандидаты должны обладать некоторыми знаниями в области
файловых систем, в том числе сетевых. Основная масса работ выполнена,
однако транспорт уровня ядра и взаимодействие с автомонтировщиком "amd"
ещё требуют завершения. Координирует работы <a
href="mailto:alfred@FreeBSD.org">&a.alfred;</a>.</li>
<li><strong>Менеджер логических томов</strong></li>
<li><strong>Волшебные символические ссылки</strong>: Реализовать волшебные
символические ссылки. Кандидаты должны обладать некоторыми знаниями о
файловых системах. Имеются экспериментальные <a
href="http://www.freebsd.org/~jwd/magiclinks.tgz">патчи</a> для 4-STABLE,
хотя нужно будет изучить реализацию DragonFly в виде утилиты
setvar. Координатором может быть <a
href="mailto:jwd@FreeBSD.org">&a.jwd;</a>.</li>
</ul>
<a name="p-networking"></a>
<h3>Сетевые возможности</h3>
<ul>
<li><strong>Устройство, реализующее сетевой диск</strong>: Добавить
возможность удалённого доступа к устройствам из одной машины к другой.
Целью является обеспечения удалённого доступа к таким ресурсам, как
диски, звуковые адаптеры и другое оборудование, по сети. Перспективные
кандидаты должны понимать или иметь интерес к системам удалённого вызова
функций, сетевым возможностям (TCP/IP), быть заинтересованными в изучении
того, как работают драйверы устройств Unix, будет требоваться также
знание управления процессами. Этот проект станет хорошим вкладом в
резюме, но но не для слабых людей. Координированием занимается <a
href="mailto:alfred@FreeBSD.org">&a.alfred;</a>.</li>
<li><strong>NFS Lockd (усиление семантики)</strong>: Улучшение работы NFS
lockd во FreeBSD. Apple внесла определённые улучшения, которые могут
быть и в нашем коде. Реализовать восстановление состояния в lockd.
Кандидату предстоит изучить, как переносить код из одного ядра в другое,
а также отслеживать состояния на стороне клиента. Этот проект будет
хорошим дополнением к резюме. Координирует работу <a
href="mailto:alfred@FreeBSD.org">&a.alfred;</a>.</li>
<li><strong>NFS Lockd (реализация на уровне ядра)</strong>: Улучшение
семантики работы NFS lockd во FreeBSD. Перенос реализации lockd в ядро
обещает несколько существенных улучшений как в производительности, так и
семантике. Кандидаты должны иметь хорошее представление об NFS,
блокировке, RPC и работе с сетью на уровне ядра. Это прекрасное
дополнение к резюме, взваливающее на вас обязанности "знания NFS" на всю
оставшуюся карьеру, и эта работа не для слабых людей. Координацию
работ выполняет <a href="mailto:alfred@FreeBSD.org">&a.alfred;</a>.</li>
<li><strong>Упорядочивание пользовательского/системного интерфейса
(net/if_var.h)</strong>: Более <em>восьми</em> лет назад объявления
функций сетевого интерфейса были разделены на net/if.h и net/if_var.h.
Это было сделано для того, чтобы net/if_var.h присутствовал только в
ядре, а net/if.h содержал общедоступные интерфейсы. На сегодняшний день
внутренний заголовок, net/if_var.h, всё ещё включается во многие
пользовательские приложения. В некоторых случаях это случается из-за
интерфейсов, которые на самом деле не являются внутренними для ядра. В
других случаях эти структуры использовались вместе с libkvm для прямого
обращения к информации ядра. Этот проект должен решить оба типа проблем,
в первую очередь за счёт переписывания команды netstat(1) и любых других,
работающих с сетью и использующих libkvm, так, чтобы они использовали
альтернативные пользовательские интерфейсы, при необходимости их нужно
будет создавать. Функции netstat по анализу аварийных дампов, вероятно,
нужно будет выделить в отдельную программу. Координацией занимается <a
href="mailto:brooks@FreeBSD.org">&a.brooks;</a>.</li>
<li><strong>Перенос Web100 на FreeBSD</strong>: Проект <a
href="http://www.web100.org/">Web100</a> был начат для решения проблем с
производительностью TCP при работе поверх длинных и толстых сетевых
каналов. В рамках проектах был создан интересный набор патчей для Linux
для тонкой настройки и мониторинга, и они обеспечивают значительно лучшую
производительность в этой области. Интеграция этой работы во FreeBSD
может дать значительные преимущества в плане производительности TCP при
определённых средах эксплуатации. Для возможностей Web100 должны быть
созданы и интегрированы в систему соответствующие абстракции FreeBSD.
Влияние этих изменений на производительность должно быть проверено до
того, как они будут внесены в систему. Идеальный кандидат для выполнения
этой работы имеет некоторые знания об операциях протокола TCP и знаком с
с интерфейсами ядра. Координацию осуществляет <a
href="mailto:brooks@FreeBSD.org">&a.brooks;</a>.</li>
</ul>
<a name="p-security"></a>
<h3>Информационная безопасность</h3>
<ul>
<li><strong>SecureMines</strong>: Добавить в систему мета-данные,
позволяющие отлавливать нарушителей и вести журнал аудита системы. Целью
этого проекта является создание нескольких способов обозначения
некоторого события как стороннего действия (например, открытие
файла-ловушки), которое приводит к остановке системы и выдаче
максимального количества информации. Среди возможностей рассматривается
использование расширенных атрибутов для пометки таких "мин". Кандидаты
должны иметь представление о модели процессов в Unix. Координацией
занимается <a href="mailto:alfred@FreeBSD.org">&a.alfred;</a>.</li>
</ul>
<a name="p-kernel"></a>
<h3>Ядро</h3>
<ul>
<li><strong>Обновления Linuxulator</strong>: FreeBSD обеспечивает двоичную
совместимость с Linux за счёт применения таблицы системных вызовов Linux,
которая применяется при исполнении бинарных файлов Linux в формате ELF.
Эта реализация должна быть проверена на соответствие современным ядрам
Linux, недостающие важные системные вызовы могут быть добавлены для
обеспечения работы всех основных приложений во FreeBSD. Студент должен
уметь читать и понимать чужой код на языке C, писать код на C и иметь
хорошее представление о том, как повторно реализовать код GPL в чистых
условиях (без копирования и вставки кода!).</li>
<li><strong>Реализация пассивного охлаждения в ACPI</strong>: Для
охлаждения процессора должен использоваться интерфейс cpufreq, основанный
на различных настройках _PSV. Кроме того, нам необходимо реализовать
различные интервалы опроса для температурных зон, что основано как на
пассивных настройках, так и на опросах, явно задаваемых в ASL. Этот
проект требует хорошего знания C, понимания программно/аппаратного
интерфейса, наличия лэптопа, работающего с ACPI, и работы с ядром.
Координацией занимаются <a href="mailto:njl@FreeBSD.org">&a.njl;</a> и <a
href="mailto:bruno@FreeBSD.og">&a.bruno;</a>.</li>
<li><strong>Остановка со сбросом на диск</strong>: Реализовать механизм
остановки/восстановления с использованием диска. Возможно использование
функций создания дампа для сброса страниц памяти на диск, затем обращение
к ACPI для перевода системы в состояние S4 или выключения питания.
Восстановление потребует изменений в загрузчике, обеспечивающих прямую
загрузку образа памяти и продолжения выполнения. Этот проект требует
хорошего знания C, понимания программно-аппаратного интерфейса, наличия
лэптопа, работающего с ACPI, и работы с ядром. Координацию работ
выполняют <a href="mailto:njl@FreeBSD.org">&a.njl;</a> и <a
href="mailto:bruno@FreeBSD.og">&a.bruno;</a>.</li>
<li><strong>Реализовать и замерить характеристики различных алгоритмов для
powerd(8)</strong>: Реализовать ряд алгоритмов предсказания (а возможно,
создать собственные) и замерить их характеристики на предмет
энергопотребления и потери производительности. Лучшим алгоритмом будет
тот, что экономит максимальное количество энергии с наименьшими потерями
производительности. Требует базовых знаний языка C, наличия лэптопа,
поддерживаемого cpufreq(4) (предполагается современный процессор
Pentium-M) и некоторых знаний статистики. Координацию осуществляют <a
href="mailto:njl@FreeBSD.org">&a.njl;</a> и <a
href="mailto:bruno@FreeBSD.og">&a.bruno;</a>.</li>
<li><strong>Мета-язык ядра</strong>: Разработка диалекта языка C,
упрощающего написание кода ядра. В нём должны присутствовать расширения
языка, позволяющие писать более ясный для понимания код ядра и с меньшим
количеством ошибок. Примером может служить языковая поддержка связных
списков, устраняющая необходимость в запутанных MACRO. Координируют
работу <a href="mailto:gnn@FreeBSD.org">&a.gnn;</a> и <a
href="mailto:phk@FreeBSD.org">&a.phk;</a>. Статья Wiki с более полной
информацией доступна <a
href="http://wikitest.freebsd.org/moin.cgi/K">здесь</a>.</li>
</ul>
<p>Дополнительные проекты можно найти, просмотрев страницу <a
href="index.html">Разрабатываемых проектов FreeBSD</a> или некоторые из
последних <a href="&base;/news/status">Отчётов о ходе работ</a>.</p>
<a name="mentors"></a>
<h2>Руководители</h2>
<p>Если вы хотите принять участие в проекте, который здесь в явном виде не
указан, вы можете обратиться к одному из потенциальных руководителей,
указанных ниже, для того, чтобы составить предложение в одной из следующих
больший категорий.</p>
<ul>
<li><strong>Сетевые возможности</strong>: <a
href="mailto:alfred@FreeBSD.org">&a.alfred;</a>,
<a href="mailto:brooks@FreeBSD.org">&a.brooks;</a> и
<a href="mailto:sam@FreeBSD.org">&a.sam;</a></li>
<li><strong>Файловые системы</strong>:
<a href="mailto:scottl@FreeBSD.org">&a.scottl;</a>,
<a href="mailto:alfred@FreeBSD.org">&a.alfred;</a></li>
<li><strong>GEOM</strong>: <a
href="mailto:phk@FreeBSD.org">&a.phk;</a></li>
<li><strong>Подготовка релизов / Интеграция</strong>: <a
href="mailto:re@FreeBSD.org">re@FreeBSD.org</a></li>
<li><strong>TrustedBSD / Информационная безопасность</strong>: <a
href="mailto:rwatson@FreeBSD.org">&a.rwatson;</a></li>
<li><strong>Подключаемые дисковые планировщики</strong>: <a
href="mailto:luigi@FreeBSD.org">&a.luigi;</a>.</li>
<li><strong>ACPI</strong>: <a
href="mailto:njl@FreeBSD.org">&a.njl;</a>
и <a href="mailto:bruno@FreeBSD.og">&a.bruno;</a>.</li>
<li><strong>Звук</strong>: <a
href="mailto:matk@FreeBSD.org">&a.matk;</a>.</li>
</ul>
<p>Если ваш проект не был выбран компанией Google для финансирования, но вы
всё же полагаете, что ваш проект этого заслуживает, сообщите об этом по
электронной почте в адрес <a
href="mailto:proposals@FreeBSD.org">proposals@FreeBSD.org</a>.</p>
<a name="faq"></a>
<h2>Часто задаваемые вопросы</h2>
<ul>
<li><p><strong>Подойду ли я?</strong></p>
<p>Пожалуйста, обратитесь к <a
href="http://code.google.com/summfaq.html">FAQ для участников</a>
компании Google для решения всех вопросов, касающихся
требований к участникам.</p></li>
<li><p><strong>Как написать заявку?</strong></p>
<p>Фонд Perl имеет хороший документ <a
href="http://www.perlfoundation.org/gc/grants/proposals.html">
HOWTO</a>, описывающий как написать заявку на разработку с открытым
кодом.</p></li>
<li><p><strong>Когда истекает срок подачи заявок?</strong></p>
<p>Заявки должны быть получены Google до 14 июня.</p></li>
</ul>
&footer;
</body>
</html>