Вопросы истории: UNIX, Linux, BSD и другие - Федорчук Алексей Викторович "alv"
Шрифт:
Интервал:
Закладка:
Первым релизом новой системы считается версия 0.8, вышедшая в апреле 1993 года. Однако истинную мультиплатформенность она обрела в версии 1.0 – правда, та последовала не очень скоро, осенью 1994 года.
А вскоре, в декабре того же года, внутри группы перворазработчиков разгорелся конфликт: Тео разошёлся во мнениях относительно дальнейшего развития системы с остальными членами группы. И дело закончилось тем, что весной 1995 года ему был закрыт доступ к дереву исходных текстов NetBSD.
Это расхождение, как идейное, так и чисто личное (переписка по данному вопросу была опубликована де Раадтом в сети), и послужило причиной первого форка в BSD-клане. Поскольку исходники NetBSD были полностью свободны, Тео взял их за основу, модифицировал согласно своим представлениям о том, «как надо», и основал проект, получивший имя OpenBSD.
Во главу угла новой системы были положены два аспекта: свобода от любых компонентов, могущих ограничить её распространение, и безопасность. Последняя неразрывно была связана с криптографией. И, дабы избавиться от оков, налагаемых законами США на распространение «сильных» криптографических технологий, Тео покидает Калифорнию и перебирается в Канаду, куда некогда эмигрировала из ЮАР его семья, дабы откосить сыновей от службы в армии антинародного режима апартеида. Там, в почти родном городе Калгари, университет которого Тео закончил до работы над NetBSD, и обосновывается штаб-квартира нового проекта.
В результате, после нескольких внутренних тестировочных версий, в октябре 1996 года, рождается новая ОС – выходит первый официальный релиз OpenBSD 2.0. С тех пор полугодовой релиз-цикл выдерживается неукоснительно – очередные версии появляются каждую весну и осень.
Однако завершим историю NetBSD. В последующие годы она была портирована на всё «железо», которое может запускаться, и немножко – на то, которое запускаться не способно. Чтобы убедиться в этом, достаточно посмотреть «лист совместимости» на сайте проекта – в них обнаружатся и VAX, и Sun Sparc, и RISC-системы от Hewlett-Packadr, и DEC Alpha, и PowerPC, и Amiga, вкупе с мало кому ведомыми Acorn, Atari, Sharp, и так далее, и так далее, и так далее… Список столь обширен, что PC-платформа как-то просто теряется в середине его.
В качестве системы пакетного менеджмента в NetBSD в 1997 году была принята pkgsrc, разработанная по образу и подобию портов FreeBSD, но почти сразу также приобретшая кросс-платформенный характер. Кроме родной ОС, она официально поддерживается для многих UNIX-подобных операционок: Solaris, Linux, Darwin (Mac OS X), FreeBSD, OpenBSD, IRIX, AIX, DragonFlyBSD, HP-UX, QNX. Правда, это не значит, что в них она широко используется: во всех этих ОС есть собственные развитые средства управления пакетами. В частности, в OpenBSD, ответвившейся до возникновения pkgsrc, была просто заимствована система портов из FreeBSD. Относительно Linux мне известно несколько попыток прикрутить pkgsrc к Slackware. Лишь в DragonFlyBSD pkgsrc долгое время была принята в качестве штатной, но об этом мы поговорим в следующей главе. А в этой – вернёмся к FreeBSD и очередному перелому в её истории.
FreeBSD: десятилетие спокойствия
Мы оборвали историю FreeBSD 22-го ноября 1994 года – дне, когда было объявлено о выходе FreeBSD версии 2.0, после чего оценили, во что же этой ОС обошлась её свобода. На нынешней же странице посмотрим, как события развивались дальше.
Начиная с выхода первой «настоящей» версии FreeBSD (то есть 2.0), сложилась модель разработки этой операционной системы, реализуемая и по сей день. Впрочем, она была в значительной мере унаследована от стиля работы CSRG и свойственна всем системам берклианской линии.
С первого дня существования проекта все его компоненты (исходные тексты ядра, системного и пользовательского окружения, документация, багрепорты, архивы рассылок) существуют в открытом виде, и доступ к ним может получить любой желающий через web-сайт или ftp-сервер проекта и их зеркала по всему миру.
Все участники разработки FreeBSD объединяются в три кольца. Первое, как бы внешнее, кольцо включает в себя многочисленных добровольцев со всего мира, работающих над отдельными компонентами системы – начиная от ядра и до сопровождения портов, а также занимающихся составлением и переводом документации. Разработчики (как, впрочем, и всё остальное прогрессивное человечество) имеют свободный доступ к дереву исходных текстов системы, но вносить в него изменения непосредственно не могут: свои наработки они должны передавать «по команде» для утверждения.
Утверждением занимаются члены второго кольца – так называемые коммитеры (commiters). Кроме контроля над деятельностью разработчиков, они и сами занимаются разработкой какой-либо из подсистем FreeBSD и могут вносить изменения (как свои, так и курируемых ими разработчиков) в соответствующие ветви дерева исходных текстов.
Однако полномочий на изменение дерева исходников в целом не имеют и коммитеры – это привилегия ядра команды (core team), в функции которых, кроме разработки собственных узлов системы, входит также отслеживание изменений, вносимых коммитерами, и разрешение противоречий между ними, буде таковые возникают. Иными словами, на них возложен учёт модификаций системы и контроль над её целостностью.
Раз сложившись, модель разработки функционировала и функционирует по сей день. И сохраняющееся единство системы на протяжении почти полутора десятков лет доказало её действенность. Конечно, кое-какие коллизии возникали – но их мы рассмотрим, когда подойдёт время.
А пока вернёмся немного назад, к началу истории собственно FreeBSD, и посмотрим, что же послужило причиной её почти мгновенной популярности.
Первой составляющей успеха новой операционки стала утилита sysinstall – программа установки и сквозного конфигурирования системы, почти не изменившаяся по сей день за исключением мелких, но приятных усовершенствований. Ныне она кажется архаичной и часто подвергается критике со стороны пользователей Linux, привыкших в последние годы к красивым графическим инсталляторам и конфигураторам. Однако не будем забывать, что она появилась до первых аналогов в Linux – в нём в те годы ничего подобного не было ни в одном дистрибутиве.
Более того, под влиянием sysinstall возникла не только программа установки практически одновозрастной Slackware – влияние её сказывалось ещё и в начале нынешнего тысячелетия, непосредственно – в инсталляторах таких дистрибутивов, как CRUX и Archlinux, косвенно – в установочной программе Zenwalk’а. Что же до сквозных графических конфигураторов, то первого из них, Drackconf из Mandrake, Linux’у пришлось ждать около пяти лет (первые варианты YAST, упомянутого на странице про Suse, функционировали в текстовом режиме).
Ничуть не менее важной составляющей FreeBSD была система портов и пакетов. Ибо это была первая в истории FOSS цельная система сборки и установки программ с автоматическим разрешением их зависимостей. Вспомним, что одновозрастная Slackware таковых не имела вообще (и, штатно, не имеет и по сей день), а rpm и dpkg на большее, чем сообщение о нарушении зависимостей, способны не были. Как, впрочем, не способны и по сей день – до появления изощрённых механизмов apt и его последователей было ещё очень и очень далеко.
Таким образом, основные особенности, определившие потенциал FreeBSD, в том числе, и как пользовательской платформы, были заложены уже в её первой «настоящей» версии. Почему же она не реализовалась в этом качестве, уступив пальму первенства Linux’у? Тайна сия велика есть, хотя некоторые предположения на этот счёт сделать можно.