Вопросы истории: UNIX, Linux, BSD и другие - Федорчук Алексей Викторович "alv"
Оглядываясь вокруг
А теперь я опять вынужден отступить от хронологической последовательности и хотя бы беглым взглядом окинуть события, происходившие одновременно с переломом в развитии FreeBSD и дальнейшими событиями.
В отличие от Linux, FreeBSD изначально не сегментировалась на множество дистрибутивов (тех самых, которые будут предметом рассмотрения второй части), хотя время от времени она давала боковые побеги, например, PicoBSD – вариант 3-й ветки на одной дискете.
Далее, существовало (и частично существует по сей день) несколько проектов создания LiveCD на основе FreeBSD – в основном специализированных сборок для системных администраторов. Они отражали всё ту же общую тенденцию – доминирование в развитии FreeBSD серверного направления. Хотя и здесь она была теснима мало-помалу, с одной стороны, соплеменным Linux'ом, с другой – классово чуждым Windows, но сохраняла твёрдые позиции.
А вот о настольных применениях этого сказать нельзя. Если Linux понемногу пробивал дорогу на пользовательские десктопы, то FreeBSD, похоже, к этому и не стремилась – по крайней мере, до недавнего времени. Статистика заходов на сайты, тематически связанные с UNIX и Open Sources, показывает, что доля FreeBSD среди клиентских машин ничтожно мала.
Однако несколько более удачных попыток изменить сложившееся положение было предпринято. Первой можно считать выход весной 2005 года PC-BSD – как легко догадаться из названия, варианта BSD для персонального использования. Она базировалась на актуальных в данный момент версиях FreeBSD и была снабжена красивым (и удобным) графическим инсталлятором с внутренними средствами автоматического конфигурирования применительно к наличествующему оборудованию, что позволяет в считанные минуты развернуть полноценную рабочую станцию с KDE и его приложениями, в том числе графическими и мультимедийными.
Особенностью PC-BSD являлся собственный формат пакетов, резко рвущий с традициями UNIX в отношении зависимостей – необходимые библиотечные функции встраиваются непосредственно в бинарный пакет, а не вызывались из внешних слинкованных библиотек. Однако она унаследовала и традиционные для FreeBSD методы обновления системы в целом, а также систему портов для установки приложений.
Проект PC-BSD не остался одиноким на ниве пользовательских десктопов, производных от FreeBSD: считанные месяцы спустя (лето 2005 г.) аналогичный по сути, но несколько иначе реализованный проект был объявлен под именем DesktopBSD.
Следует подчеркнуть, что ни PC-BSD, ни DesktopBSD не являлись отдельными дистрибутивами в том понимании, в каком этот термин применяется к вариациям на тему Linux'а. И тем более это – не самостоятельные системы, поскольку и та, и другая после установки превращаются в самую обычную (и полноценную) FreeBSD. Точнее, это – именно дистрибутивы в буквальном смысле слова, то есть способы распространения операционной системы FreeBSD, адаптированные для конечного «десктопного» пользователя.
главное, чем и PC-BSD, и DesktopBSD отличались от своей материнской системы – это их программами инсталляции. Если для FreeBSD в этом качестве на протяжении многих лет применялась текстовая (псевдографическая) программа sysinstall, то в основу установщиков ее «юзерофильных» разновидностей лег BSD Installer.
Это – совершенно самостоятельный проект, цель которого, как нетрудно понять из названия, – разработка универсального установщика для любых BSD-систем. Отличительная его особенность – в том, что собственно низкоуровневая его часть может быть надстроена различными текстовыми или графическими интерфейсами. Последние и использованы в PC-BSD и DesktopBSD. Текстовый же вариант инсталлятора был использован в DragonFlyBSD (см. следующую главу).
Существовала также попытка Эндрю Тернера (Andrew Turner) прикрутить (в рамках программы Google's Summer of Code 2005) BSD Installer и к собственно FreeBSD – взамен sysinstall. Впрочем, развития она не получила – последнюю версия сборки FreeBSD с этим инсталлятором датируеся маем 2006 года.
Наконец, в рамках все той же программы Google's Summer of Code (теперь уже – 2007) Иваном Ворасом (Ivan Voras) была предпринята еще одна попытка одеть инсталлятор FreeBSD во фрак – посредством программы finstall. В отличие от всех предыдущих вариантов, она основывалась не на движке BSD Installer, а на собственном back-end'е, и имела построенный на библиотеке Gtk front-end, запускавшийся с LiveCD из среды XFce. Сама же устанавливаемая им система была самой обычной FreeBSD текущей (current) версии для архитектуры i386. Правда, проект этот был быстро и полностью заброшен.
Интересные побеги на дереве FreeBSD – гибридные системы FreeBSD/Linux, то есть попытки использования её ядра в обрамлении иной инфраструктуры, заимствованной из различных дистрибутивов Linux. Таких проектов некогда было два: Debian GNU/FreeBSD и Gentoo/FreeBSD.
Проект Debian GNU/FreeBSD первоначально существовал в двух вариантах: libc5-based Debian GNU/FreeBSD и gnu-libc-based Debian GNU/FreeBSD. Оба они использовали ядро FreeBSD и пользовательское окружение проекта Debian, в частности, его репозитории и систему управления пакетами по механизму apt.
Первый проект, как нетрудно догадаться, в качестве главной системной библиотеки для портируемых приложений использовал BSD Libc – родную для всехBSD-систем. Пользовательское окружение (так называемый userland) в нём тоже было унаследовано от FreeBSD. Последнее обновление проекта датировалось апрелем 2002 года, после чего он прекратил своё развитие, и притом навсегда – в том числе и потому, что физически погиб его сервер. Хотя из всех «гибридов» он выглядел наиболее логичным, представляя собой, в сущности, FreeBSD Distributions, в котором место традиционных портов заняла инфраструктура apt. Эта модель, как будет показано в главе девятой, была успешно реализована в системах Nexenta и Dyson.
Второй же из упомянутых проектов, известный под названием Debian GNU/kFreeBSD, участь сия миновала – более того, он нынче имеет статус официально поддерживаемого в памках мегапроекта Debian. В отличие от предыдущего, здесь в качестве основы для пользовательских приложений выступает стандартная для Linux библиотека glibc (GNU C library), а большая часть родного юзерланда заменена GNU-аналогами: буква k в имени системы, видимо, призвана подчеркнуть, что от FreeBSD в ней было взято только ядро. Хотя с портированием инфраструктуры Debian существовали (да и существуют) проблемы, сама система, по утверждению её разработчиков, являлась вполне работоспособной. Впрочем, на меня она произвела впечатление химерической смеси бульдога с носорогом...
Проект портирования на ядро FreeBSD инфраструктуры Gentoo примечателен тем, что сам по себе дистрибутив Gentoo Linux был создан под сильным влиянием FreeBSD: в частности, портежи Gentoo представляли собой первоначально адаптацию портов FreeBSD к ядру и окружению Linux'а. И первая попытка обратного портирования системы портежей на FreeBSD была предпринята Грантом Гудьером (Grant Goodyear) через год после обретения Gentoo стабильного статуса, в сентябре 2003 года.
В последующем на базе этого развился самостоятельный проект Gentoo/FreeBSD, который то умирал, то вновь и вновь подвергался гальваниззации. В январе 2007 года он был заморожен, а все его исходники удалены с зеркал проекта Gentoo. Причиной послужила несовместимость лицензий на отдельные компоненты BSD-системы с лицензией GPL, под которой распространяется Gentoo. И хотя принципиальная сторона этой проблемы была благополучно разрешена, ясных указаний о дальнейшей судьбе проекта я не обнаружил.
Тем не менее, FreeBSD легла в основу и совершенно самостоятельной операционной системы, корни которой уходят в тот самый год переломный 2003 год.
Где-то в середине июня 2003 г. Мэтт Диллон (Matt Dillon), известный, помимо всего прочего, и существенным вкладом в разработку системы виртуальной памяти FreeBSD, вместе с группой товарищей объявил о начале работы над новой ОС BSD-семейства DragonFlyBSD, о которой я расскажу в следующей главе. А пока настало время подвести