Разработка FreeBSD представляет собой весьма открытый процесс. FreeBSD составляется в
результате общих усилий тысяч людей по всему миру. Проект FreeBSD предоставляет анонимный
публичный доступ по протоколу CVS[1], так что любой
может получить доступ к журналу изменений, разницам (патчам) между ветками разработки и
другим продвинутым возможностям, которые даёт строгое управление исходным кодом. Это
сильно помогает в привлечении к FreeBSD всё большего количества талантливых
разработчиков. Однако, и я думаю, что все со мной согласятся, наступит хаос, если доступ
по записи будет открыт всем в Internet. Поэтому только ''избранная'' группа примерно из
300 человек имеет доступ по записи в CVS-хранилище.
Эти коммиттеры[5] отвечают в целом
за разработку FreeBSD. Выбираемая из самых заслуженных разработчиков группа правления[6] обеспечивает
некоторый уровень управления проектом.
Темп разработок, ведущихся во FreeBSD, оставляет мало
времени на тщательную доводку системы до качества продуктивного релиза. Для решения этой
проблемы разработка ведётся в два параллельных потока. Основной веткой разработки
является HEAD, она же основная линия нашего дерева CVS,
известная также под именем ''FreeBSD-CURRENT'' или, для краткости, ''-CURRENT''.
Поддерживается и более стабильная ветка, известная как ''FreeBSD-STABLE'' или, для
краткости, ''-STABLE''. Обе ветки находятся в основном CVS-хранилище в Калифорнии и
реплицируются при помощи CVSup[2] на зеркала по всему миру.
FreeBSD-CURRENT[7] является ''передним краем'' работ над FreeBSD, через который попадают
все изменения в системе. FreeBSD-STABLE является веткой разработки, из которой создаются
основные релизы. В эту ветку изменения попадают разными путями, и предполагается, что
сначала они попали в FreeBSD-CURRENT, где были тщательно протестированы сообществом наших
пользователей.
В промежутке между релизами машинами Проекта FreeBSD, выделенными для построения
системы, ежемесячно автоматически собираются снэпшоты, которые доступны для закачки по
адресу ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/.
Общедоступность снэпшотов бинарных релизов, а также желание сообщества наших
пользователей отслеживать работу над -STABLE при помощи CVSup и ''make world''[7] помогает поддержать
весьма хорошее качество FreeBSD-STABLE, даже до выполнения мероприятий проверки качества,
предваряющих выпуск основных релизов.
В процессе выпуска релиза пользователи постоянно присылают сообщения об ошибках и
пожелания по расширению функциональности. Сообщения о проблемах попадают в нашу базу
данных GNATS[8] по электронной почте, посредством утилиты send-pr(1) или через
Web-интерфейс, доступный по адресу http://www.FreeBSD.org/send-pr.html. Кроме множества различных
технических списков рассылки о FreeBSD, по адресу Список
рассылки, посвящённый контролю качества FreeBSD можно найти форум для обсуждения
улучшений в ''процессе выпуска релизов''.
Для удовлетворения наших самых консервативно настроенных пользователей, начиная с
FreeBSD 4.3, появились ветки для отдельных релизов. Эти ветки создаются вскоре после
того, как выпускается окончательный релиз. После его выхода в ветку релиза помещаются
только самые критичные исправления и добавления, касающиеся безопасности. Кроме
обновлений исходных текстов посредством CVS, для систем веток RELENG_X_Y имеются и бинарные наборы патчей.
В Разд. 2 обсуждаются различные этапы процесса
подготовки релиза вплоть до построения актуальной системы, а Разд. 3 описывает сам процесс сборки. Разд. 5 описывает, как базовый релиз может быть расширен
третьими сторонами, а Разд. 6 проясняет некоторые из
уроков, полученных при выпуске релиза FreeBSD 4.4. Наконец, в Разд.
7 описывается будущие направления работ.