Мы оборвали историю 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’у? Тайна сия велика есть, хотя некоторые предположения на этот счёт сделать можно.
Вспомним, кем были первые пользователи первых FOSS-систем. Это были, с одной стороны, разработчики их же самих, с другой – сетевые администраторы и Интернет-провайдеры. А для первых более свободная и динамичная модель разработки Linux’а, видимо, казалась более привлекательной, нежели более иерархическая и «камерная» модель FreeBSD. С другой стороны, обеспечиваемые последней стабильность и предсказуемость оказались более востребованными именно администраторами, для которых надёжность была важнее фронтирности.
А потом уже работал просто стереотип мышления: за FreeBSD закрепилась репутация серверной платформы, тогда как от Linux’а ждали «поворота лицом к конечному пользователю». И, надо сказать, стереотип этот работает и по сей день.
Однако я опять отклонился от генеральной линии. Успех первой версии FreeBSD был закреплён выходом версии следующей, получившей номер 2.05 и ликвидировавшей те самые «недотёсанные углы», о которых упоминал Хаббард.
Дальше время опять замедляет свой ход. Впереди были долгие годы плавной эволюции. Примерно два-три раза в год выпускается новая версия системы (2.1.x, затем – 2.2.x), она обрастает приложениями и утилитами (значительная часть которых происходит из проекта GNU и Фонда свободного программного обеспечения), совершенствуется ядро, улучшается (как это ни странно для, казалось бы, чисто американской по происхождению системы) интернациональная поддержка.
В ноябре 1996 г. происходит событие, определившее структуру развития FreeBSD на долгие годы (с некоторыми оговорками – до сего дня): ветка 2.x.x была выведена из активной разработки, получив имя STABLE. Отныне, вплоть до последнего релиза (2.2.8 в ноябре 1998 года), в ней лишь исправляются ошибки и вносятся мелкие безопасные изменения. А все долговременные и принципиально новые разработки концентрируются в версии 3.0-CURRENT. Каковая претворяется в STABLE в октябре 1998 г.
Начиная с ветки 3 (версия 3.4, судя по архивам), начинаются первые попытки портирования FreeBSD на архитектуры, отличные от i386. Первым претендентом на портирование стали машины с процессорами DEC Alpha, доживавшие тогда свои последние дни. Тем не менее, поддержка этой платформы осуществлялась долгое время, пока не была прекращена с выходом 7-й ветки.
С этого времени и вплоть до ответвления единовременно развивается две ветки FreeBSD – STABLE, предназначенная для широкого применения, и CURRENT, ориентированная главным образом на разработчиков и энтузиастов. Так, в январе 1999 г. обособляется ветка 4.0-CURRENT, обретшая статус стабильной в марте 2000 г.
Ветке 4.X суждено было стать самой «долгоиграющей» во всём дереве развития FreeBSD. Правда, на протяжении только 2000 года вышло ещё три её релиза – 4.1, 4.1.1 и 4.2, выступавшие в роли своего рода обкаточных для всех новшеств этой ветки. Которая в дальнейшем стабилизировалась, и последующие её версии, вплоть до последней, 4.11, вышедшей в январе 2005 года, содержали в основном исправления и косметические изменения. И кстати, версия 4.11 поддерживалась более двух лет после её выхода, а практически, насколько я знаю, используется чуть ли не по сей день.
FreeBSD: переломный год
Однако закулисно на протяжении трех лет шла незаметная, но большая работа по коренному изменению FreeBSD, завершившаяся появлением в январе 2003 года первой версии новой, 5-й ветки. В нарушение описанной выше закономерности, она очень долго (вплоть до версии 5.3), не получала статуса STABLE, а позиционировалась как «ново-технологический релиз». В сущности, стабильной она так и не стала, выступая скорее как прототип грядущей ветки 6.
Тем не менее, выход в свет 5-й ветки FreeBSD был, пожалуй, самым революционным событием со времен ее появления как самостоятельной операционной системы. Почему год её выхода я и назвал годом переломным – конечно, не столь драматичного, как события 1991-1993 годов, но тоже сопровождавшегося не только приобретениями, но и потерями.
Именно в 5-й ветке FreeBSD, начиная с самой первой пред-релизной версии, предназначенной для разработчиков (июнь 2002 года), был заложен тот потенциал, который обусловил её применимость в качестве современной настольной операционки для конечного пользователя. Это и последовательно модульный подход, позволяющий обходиться без пересборки ядра для поддержки важных для пользователя особенностей, и файловая система устройств, облегчающая работу с устройствами «горячего подключения» (такими, как USB-накопители, сканеры, цифровые камеры), и эффективная работа с ATA RAID (а в дальнейшем и с винчестерами Serial ATA), и многое другое.
В 5-й ветке был продолжен и курс на кросс-платформенность: с первого же релиза (5.0) в ней появляется поддержка AMD64, Sparc64 и IA64 (Merced, он же Itanium), несколько позднее, в версии 5.5 (май 2006 года) – PowerPC, то есть практически всех 64-битных платформ. Если вспомнить, что объект первого портирования FreeBSD, процессор Alpha, также был 64-битным, то это можно рассматривать как подготовку к эпохе 64-разрядных вычислений. Иначе довольно трудно было бы объяснить усилия, затрачиваемые на поддержку архитектур или мёртвых, как Alpha, или отмирающих, как PowerPC (обратим внимание, что выход порта для него произошёл через год после перехода Apple на «камни» от Intel), или, наконец, поставляемых обычно с собственными операционными системами, как Sparc64 и Itanium, и вряд ли предоставляющих широкое поле для инсталляций FreeBSD.
Шестая ветка FreeBSD, появившаяся в ноябре 2005 года, не была столь богата инновациями, а скорее являла собой логическое продолжение тенденций, заложенных в ветке 5.X. Хотя многие из её новых особенностей оказались очень важны для конечного пользователя. Среди них – поддержка высоких разрешений в так называемой графической консоли, обратно портированная из DragonFlyBSD (о которой речь пойдет в следующей главе), возможность работы с популярными файловыми системами Linux – ReiserFS и XFS (правда, в режиме «только для чтения»). Наконец, версии 6-й ветки демонстрировали значительное повышение быстродействия, особенно – операций с файлами. До этого за новшества, привнесённые в 5-ю ветку, приходилось расплачиваться снижением скорости работы по сравнению с веткой 4-й, в ряде случаев – весьма существенным.
Интересно, что FreeBSD 6-й ветки в варианте для архитектуры AMD64 демонстрировала некоторый прирост быстродействия относительно своей 32-битной сестры – не очень значительный, но всё-таки видимый невооружённым тестами взглядом. В отличие от Linux, дистрибутивы которого в своих тогдашних 64-битных инкарнациях были как минимум не быстрей 32-битных, а то и медленней на некоторых операциях, в первую очередь файловых. Вполне возможно, что в этом и сказалась «тренировка» на неактуальных, казалось бы, чисто 64-битных платформах...
Тем не менее, и 6-я ветка не производила впечатления долгожителя, хотя последняя её версия (6.4, появившаяся в ноябре 2008 года) пользовалась статусом промышленного, хотя и «староватого» (legacy) релиза, и поддержка её осуществлялась довольно долго.
Новым рубежом в развитии FreeBSD стала ветка 7 (февраль 2008 года), в которой, начиная с первых пре-релизных версий (с осени 2007 года), поддерживается файловая система ZFS – одно из самых перспективных явлений в этой сфере, разработанное фирмой Sun для своей операционки Solaris в 2004 году. И хотя поддержка ZFS во FreeBSD долгое время имела статус экспериментальной, и эта файловая система не рекомендовалась к промышленному применению, было ясно, что её стабилизация в рамках этой ОС – не более, чем вопрос времени.
И это время наступило: в середине сентября 2009 года, в канун выхода релиза 8-й версии, Павел Давидек (Pawel Dawidek) объявил о готовности ZFS во FreeBSD к промышленной эксплуатации. Однако до повсеместного её внедрения было ещё далеко: ZFS не поддерживалась на стадии установки программой sysinstall – и соответственно, на ней нельзя было расположить корень файловой иерархии. Фактически о её окончательном утверждении во FreeBSD можно говорить, начиная с 10-й ветки – финальный её релиз вышел за несколько дней до окончания редактирования этой книги.
Оглядываясь вокруг
А теперь я опять вынужден отступить от хронологической последовательности и хотя бы беглым взглядом окинуть события, происходившие одновременно с переломом в развитии 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, о которой я расскажу в следующей главе. А пока настало время подвести
Предварительный итог...
Всем печально известна судьба якобинцев: Им теперь уж ни выпить, ни сытно поесть. Коль хотите вы в жизни чего-то добиться, То уроки истории надо учесть
... рассмотрения длинной и насыщенной истории операционной системы FreeBSD . Посмотрим, какие уроки мы можем извлечь из нее, дабы не уподобиться якобинцам из старой песенки студентов-историков Удмуртского государственного университета, фрагмент из которой приведён эпиграфом этого раздела.
Первый вывод – технологического плана. Хотя FreeBSD по анкетным, так сказать, данным и моложе Linux'а, за спиной у нее – долгая история совместного с UNIX развития. То есть она – система с прошлым. Что имеет и свои минусы, и свои плюсы. Не могу отказать себе в удовольствии процитировать Мэтта Диллона (Matthew Dillon):
Хотя некоторые считают BSD «старой» операционной системой, те из нас, кто работает над ней, видят ее скорее системой со «зрелым» кодом.
Итак, первый вывод из истории FreeBSD – что это система сложившаяся, устоявшаяся, где-то даже консервативная. Но при этом – постоянно развивающаяся и совершенствующаяся.
Кроме того, FreeBSD (и ее предтечи) возникла и развивалась в университетской среде, не просто высококлассными программистами, но людьми с неслабой теоретической подготовкой. Следствием чего явилась исходная продуманность ее архитектуры. И опять помяну Диллона:
В мире программирования алгоритмы становятся более важными, чем код, и именно из-за академических корней в BSD изначально большое внимание уделялось проработке алгоритмов.
И это – второй вывод из рассмотренной истории, который также можно отнести к технологии.
Третий же вывод, также следующий из академического происхождения FreeBSD, носит, условно говоря, гносеологический характер. Ученые (по крайней мере, те, кто заслуживает неругательного значения этого слова) – люди, основным стимулом деятельности которых является удовлетворение собственного любопытства. И FreeBSD, как творение академических исследователей, – это система, идеально для такого удовлетворения подходящая. Как сама по себе, так и как инструмент исследования в иных научных областях, в том числе – и далеких от Computer Science...
Последний же вывод из истории имеет отношение к тому, что называют затертым словосочетанием «общечеловеческие ценности»: мужество разработчиков, создавших FreeBSD, несмотря на все препоны юридического и организационного характера, более чем заслуживает уважения.
FreeBSD на Руси
Осталось сказать несколько слов об истории FreeBSD (и её предшественниц) на Руси. Несколько слов – не потому что история эта коротка. Отнюдь – существуют косвенные данные, что первые BSD-системы появились ещё в Советском Союзе, и еще до официального выхода самой FreeBSD. Достоверных сведений о тех временах далеких, теперь почти былинных, очень немного. Однако то, что примерно к 1995-1996 году сервера большинства крупных Интернет-провайдеров России работали под управлением этой операционной системы, можно считать более-менее установленным. Тогда же, вероятно, появились и первые зеркала проекта. Да и дистрибутивы FreeBSD на дисках в исполнении Walnut Creek стали доступны, по крайней мере, в Москве, также не позднее 1998-1997 года.
Характерно, что один из самых старых и по сей день самых обширных сайтов по UNIX-тематике – Opennet.ru, и BSD-минипортал его – один из самых полных источников информации по рассматриваемой тематике.
Из остальных Интернет-ресурсов того времени хотелось бы отметить фундаментальные работы на сайте Ивана Паскаля, заметки по FreeBSD Андрея Лаврентьева, материалы Игоря Сысоева, не потерявшие своего значения и по сей день. Ну и немалую роль сыграло первое систематическое руководство по FreeBSD на русском языке, написанное Андреем Федоровым.
Правда, о настольном использовании FreeBSD в те годы никто и не помышлял. Не была она избалованна и вниманием прессы. Хотя первые публикации о BSD-системах в компьютерных журналах не намного отстали во времени от статей про Linux – вспоминаем статью Вадима Колонцова «ОС BSD жила, живет и будет жить» (Открытые системы, №3, 1997). Однако долгое время они выглядели редкой вкрапленностью даже на фоне не частых тогда материалов о Linux. Хотя были среди этих вкраплений и очень яркие сочинения. Например, статья того же Вадима Колонцова под характерным заглавием – «Я живу во FreeBSD». Сайт, на котором она была размещена, давно прекратил своё существование, однако при желании можно обнаружить её в переразмещенном виде.
Ряд статей о BSD-системах вообще и FreeBSD, в частности, появлялся в короткий период существования UNIX-раздела в журнале Byte/Russia (1999-2000 годы); к сожалению, ни одна из них ныне в Сети недоступна...
Переломным с точки зрения популяризации FreeBSD в широких массах стал 2002 год. Во-первых, тогда был начат (и к настоящему времени практически завершен) проект тотального перевода официальной документации по этой ОС, размещавшийся первоначально на freebsd.org.ua, а ныне доступный на главном сайте проекта.
Во-вторых, начиная с 2002 года, статьи о FreeBSD заняли прочное место на страницах общекомпьютерных журналов.
И, наконец, в-третьих, в конце 2002 – начале 2003 года подряд вышли первые русскоязычные книжки по FreeBSD, две переводные (очень похожие, так как принадлежат перу одних и тех же авторов – Майкла Эбена и Брайана Таймэна) и одна отечественная (вашего покорного слуги). На протяжении 2003-2004 годов к ним прибавилось еще несколько изданий – Родерика Смита, Майкла Лукаса, а затем, в 2006 году, фундаментальная книга Керка МакКузика и Джорджа Невилл-Нила «FreeBSD: архитектура и реализация».
Конечно, среди изобилия книг о Linux, вышедших в последние годы, эти достижения книгоиздателей кажутся скромными. Однако следует учитывать, что FreeBSD – не Linux, и не распадается на такое множество дистрибутивов, каждый из которых требует отдельного описания.
Росло тем временем и количество русскоязычных Интернет-ресурсов, посвященных BSD-системам вообще и FreeBSD, в частности. Конечно, их число не поражает воображение, как количество Linux-сайтов. Однако к упомянутым ранее ресурсам присоединился специализированный bsdportal.ru.
На момент сочинения предыдущей онлайновой вресии этого материала (2009 год) можно было констатировать, что FreeBSD заняла в настольном секторе прочное, хотя и весьма скромное, положение. Которое, впрочем, было вскоре утрачено. Но это уже не история, а скорее хроника текущего момента.
Все операционные системы, о которых шла речь в предыдущих статьях, как и практически все их дистрибутивы, своими корнями уходят в прошлое тысячелетие. Однако и тысячелетие нынешнее, едва начавшись, ознаменовалось рождением новых операционок.
Об одной из них, системе, возникшей на наших глазах, на наших же глазах угасшей, но возродившейся вновь, хотя и под другим именем, я и хочу рассказать в этой статье. А в конце её попробую в очередной раз извлечь уроки из истории – тем более, что тема эта будет продолжена в ближайших главах. Итак, наша сегодняшняя героиня – AtheOS, позднее известная как Syllable.
Пролог
История горячего финского парня Линуса Торвальдса, в одиночку из ничего сочинившего операционную систему, знают все, интересовавшиеся историей ОСестроения. А вот история норвежского парня Курта Скавена (Kurt Skauen, за точность транскрибции не ручаюсь) широкой известности не получила даже в узких кругах. Хотя Курт занимался своей разработкой ещё более в одиночку и ещё менее из ничего. Возможно, потому, что он парень ещё более горячий, вследствие чего его деятельность не имела таких последствий.
Однако начнём по порядку. Все системы, описанные ранее в этом цикле, так или иначе, генетически или парагенетически, связаны с первозданным UNIX'ом.
Так, все BSD-клоны, в сущности, ни что иное, как UNIX, очищенный от проприетарного UNIX-кода. MINIX, о которой упоминалось ранее и к которой мы вернёмся в ближайшее время, представляла собой модельную (или «игрушечную» систему UNIX). Linux же исторически – попытка воспроизведения функциональности UNIX-систем, вообще не используя код UNIX, а опираясь только на стандарты. И даже Hurd, в котором декларируется отход от принципов UNIX-архаики, подчинен единой идее: сделать все, как в UNIX, но иначе. То есть в полном соответствие с известным рекурсивным высказыванием Ричарда Столлмана: GNU – GNU is Not UNIX. Правда, к счастью, всё, что до сих пор сделано в рамках проекта GNU, от этого меньшим UNIX'ом не стало. По крайней мере, пока.
Возникает вопрос – все ли в мире свободных ОС прямо и непосредственно происходит от UNIX? Как выясняется, не всё. И примером этому – некая свободная альтернативная операционная система, названная создателем AtheOS. Об этимологии её имени могу только гадать – но у меня оно ассоциируется и со славным городом Афинами, и с Афиной Палладой. Дальнейшую ассоциативную цепочку читатель легко построит сам.
Чем была AtheOS
Создателем AtheOS от начала и до конца всей истории выступал один-единственный человек – ранее упомянутый Курт Скавен. Согласно его декларации, AtheOS – своего рода tabula rasa (цитирую – «new clean desktop OS»), разработанная с нуля. То есть – не потомок UNIX, в отличие от BSD, и не реинкарнация ее, подобно Linux. И даже POSIX-совместимость Курт не возводил в абсолют, хотя и более-менее его стандартам следовал. В этом отношении напрашивается аналогия AtheOS с QNX, отнюдь не UNIX'ом, но местами сходной с ним операционкой. История которой, кстати, тоже весьма интересна, но мной не рассматривается по причине недостаточного знакомства.
Разработка AtheOS была начата Куртом во второй половине 90-х годов. Однако о своём создании он заявил миру весной 2000 года,разместив в открытом доступе её исходники под лицензией GPL (тогда ещё только за номером 2). А в начале 2001 (то есть уже однозначно в XXI веке) года под AtheOS был портирован Apache и сайт проекта http://www.atheos.cx/ заработал под управлением её же самой. И работал ещё несколько лет после прекращения разработки, без всякого участия автора. Так что всю короткую, но яркую историю AtheOS можно целиком считать принадлежащей к третьему тысячелетию.
AtheOS функционировала на любых Intel-совместимых процессорах, причем с очень эффективной поддержкой мультипроцессорных архитектур. Система написана почти целиком на Си – ассемблерная часть ядра составляет чуть больше 20 Кбайт. И потому теоретически она повязана с Intel-архитектурой не больше, чем любая иная POSIX-совместимая система.
Одна из отличительных особенностей AtheOS – поддержка в ядре графического интерфейса пользователя, основанного на архитектуре клиент-сервер, но отличного, тем не менее, от оконной системы X, привычной всем пользователям UNIX. Вместе с тем поддерживается и стандартный интерфейс командной строки в лице типичных UNIX’овых Shell’ов (штатно – bash, но и zsh был на эту ОС портирован). Ну и вообще декларируется поддержка, хотя и не полная, всяческих стандартов (типа POSIX).
Как она получалась...
Всё это было прочитано мной в далёком 2001 году. И вызвало желание ознакомиться с системой вживе. Разумеется, первым действом к тому было получение системы с сайта разработчика. Основной её комплект включал:
•
образы двух загрузочных дискет;
•
образ дискеты с данными, под коими имеется ввиду базовый набор компонентов;
•
обственно систему в виде единого тарбалла объемом около 20 Мбайт;
•
небольшую, но вполне внятную документацию, посвященную описанию инсталляции системы и параметров загрузки ядра.
Кроме этого, на сайте (в отдельном каталоге) имелся набор дополнительных пакетов (также в виде tgz-архивов), несколько ограниченный, но оригинальный по подбору: средства разработки (gcc, automake и подобные), web-сервер Apache, редактор emacs, основные UNIX-утилиты типа grep, gawk и т.д., включая даже Midnight Commander.
Как устанавливалась...
Для установки системы требовался винчестер со свободным разделом или не размеченным пространством, какой-либо носитель с файловой системой FAT (раздел диска или, например, Zip) и три трёхдюймовые дискеты. На FAT-носитель помещался базовый файл, на дискеты, посредством rawrite (в DOS/Windows) или dd (в UNIX/Linux), – образы загрузочных дискет и дискеты с данными.
Далее следовало выполнить загрузку с первой дискеты (вторая запрашивалась по ходу дела), после перехода в графический (VGA) режим требовалась дискета с данными. И тогда на экране появлялось цианидно-зелёное рабочее поле с единственным окном терминала, в котором была запущена командная оболочка bash (точно такая же, как в Linux того времени).
Все последующее было не просто, а очень просто. Для начала в bash запускалась программа DiskManager и на пустом пространстве целевого диска выделялся раздел под родную файловую систему afs (AtheOS File System. Разумеется, если не жалко, можно было уничтожить какой-либо из разделов существующих.
Программа создания разделов, как и все в этой системе, работала в графическом режиме (текстовый режим в AtheOS отсутствовал как класс) и была весьма удобной в обращении. Правда, номенклатура накопителей в ней, как это в обычае среди «крутых пацанов», отличалась от любой другой. Иерархия каталогов в AtheOS также значительно отличалась от типичной для большинства UNIX-систем. Но ко всему этому нужно было просто привыкнуть.
После этого на разделе или диске создавалась (командой format) файловая система afs и две точки монтирования – для FAT-устройства с базовым файлом и для afs-раздела для системы собственно. Установка же последней осуществлялась банальной распаковкой (командой tar с соответствующими опциями) базового тарбалл.