Алексей Федорчук
Книгу о любой операционной системе принято начинать с формального определения, что она собой представляет. Попробуем и мы не отступить от этой традиции — насколько получится.
Эта книга посвящается FreeBSD — одной из открытых и свободных операционных систем семейства Unix-подобных (или, точнее, POSIX-совместимых). Она во многом сходна с ОС Linux, которая, по крайней мере, в имени своём приобрела в наши дни широкую известность не только в компьютерных кругах. Однако, наряду с общими чертами, обусловленными родовой принадлежностью, FreeBSD обладает и своей спецификой. И то, и другое послужит предметом рассмотрения в этой книге.
Содержание
- Начнём со штампов
- Это сладкое имя «свобода»
- К вопросу о лицензиях
- Кто кому подобен
- FreeBSD в её двуединстве
- И всё же о специфике
- О талисманах и деймонах
Начнём со штампов
До недавнего времени почти каждую книгу о FreeBSD, как, впрочем, и о Linux’е, можно было начать фразой о её особенностях, столь же стандартной, как любая строчка в «Азиатском орнаменте» Остапа Бендера. А именно: что это открытая и свободная Unix-подобная операционная система, кросс-платформенная (с перечислением поддерживаемых архитектур в скобках), 32-разрядная (а ныне в значительной мере уже и 64-разрядная), многопользовательская, многозадачная, использующая защищённый режим работы процессора i386, поддерживающая сетевой доступ и так далее.
Как и положено устоявшемуся штампу, каждое слово в этой фразе верно — но вместе они ни на шаг не приближают нас к пониманию того, что такое FreeBSD, и в чём заключается её специфика. Ибо ныне никого не удивить ни 32-разрядностью, ни работой в защищённом режиме, ни истинной, то есть вытесняющей многозадачностью, ни многопользовательским, в том числе, и удалённым доступом. Эти же слова можно было бы сказать не только о Linux или каком-либо другом представителе BSD-семейства, но даже и о Windows — с отмиранием линии Windows 3.X/95/98/ME и эта система утратила последние реликты 16-битности, работы в реальном режиме, однопользовательского доступа и кооперативной многозадачности.
Так что остановимся на тех аспектах трафаретного определения, которые, с одной стороны, требуют более развёрнутых комментариев, а с другой — действительно могут скрывать в себе специфику именно FreeBSD, определяющую её своеобразие в ряду собратьев.
Это сладкое имя «свобода»
Начнём с именования системы. Компонент BSD в её имени представляет собой аббревиатуру от Berkeley Software Distribution. Что это такое, будет подробно рассказано в следующей главе. Пока же достаточно знать, что это — система распространения программного обеспечения, разработанного в Калифорнийском университете Беркли (The University of California, Berkeley, обычно его называют просто университетом Беркли). Она дала начало целому семейству операционных семейств, включающему, кроме нашей героини, NetBSD, OpenBSD, DragonFlyBSD и ныне прекратившую своё развитие BSDi.
Первый же компонент в имени FreeBSD отражает тот самый аспект свободы и неразрывно связанной с ней открытости, который фигурировал выше в нашем трафарете. Под открытостью FreeBSD подразумевается доступность её исходных текстов, из которых собирается работающая система и все входящие в её состав программы (Open Source Software): любой желающий может получить их и заниматься изучением в своё удовольствие. Свобода же FreeBSD включает в себя три взаимосвязанных элемента:
- свободу использования в любых целях и на любом количестве машин;
- свободу изучения и модификации системы;
- свободу распространения как исходной системы, так и её модифицированных разновидностей.
Во избежание недоразумений подчеркну, что свобода распространения FOSS-программ отнюдь не предполагает их бесплатности. Хотя сами по себе программы, попадающие под определение FOSS, действительно всегда можно получить в виде исходных текстов, как правило, не платя ни копейки их разработчику ни за сам факт получения, ни за факт распространения — иначе говоря, они свободны от лицензионных отчислений.
Однако не факт, что разработчик программы или её майнтайнер не захочет оценить в денежном эквиваленте свои усилия по сборке программы, её сопровождению и тому подобным дополнительным действиям. И в любом случае придётся заплатить либо за трафик при скачивании, либо за носитель и доставку при физическом получении.
Более того, получив в своё распоряжение FOSS-программу, пользователь может и сам заняться её распространением за деньги. Причём — за любую цену, которая покажется ему подходящей. Если же его мнение по этому вопросу разойдётся с мнением покупателей — что же, любой желающий имеет и право, и возможность распространять ту же программу по более адекватной цене.
Ибо главное ограничение, налагаемое на распространение FOSS-программ и вытекающее из самой их сути — это запрет на ограничение прав других на реализацию перечисленных выше принципов, в том числе, и на ограничение свободы распространения. Запрет как юридический, выраженный в пунктах соответствующих лицензий, о которых скоро пойдёт речь, так и просто физический: ведь исходники свободной программы остаются физически доступными, и любому вольно собрать на их базе собственную программу или систему. То есть создать клон — более или менее точное воспроизведение оригинала, возможно, с добавлениями или усовершенствованиями — или форк — ответвление от генеральной линии развития первоисточника. Причём нельзя исключить возможности того, что именно бывший форк и станет со временем воплощением новой генеральной линии.
Впрочем, обо всём этом говорилось и писалось столько, что в очередной раз я это повторяю только для того, чтобы пользователь, впервые сталкивающийся с FOSS-системами, понимал разницу между свободой и халявой. И всегда помнил бы высказывание одного из основоположников движения FOSS, Ричарда Столлмена: «Говоря Free Software, мы подразумеваем свободное слово, а не бесплатное пиво».
И доступность исходных текстов, и свобода использования и распространения не являются чем-то уникальным для FreeBSD: эти особенности отличают все программы мира FOSS от проприетарного программного обеспечения, распространяемого исключительно в виде закрытых, не допускающих модификации и распространения бинарных файлов. Свойственны они в равной мере как всем ныне здравствующим представителям BSD-семейства (BSDi, распространявшаяся по схеме, в ряде аспектов сходной с таковой для проприетарных программ, фактически прекратила своё существование в 2004 году), так и OC Linux, ряду других операционок, не получивших широкого распространения и известности (например, Hurd, MINIX3, Syllable, MenuetOS), представителям оконных систем X (XFree86 и Xorg), обеспечивающим для всех них графический метаинтерфейс, а также бессчётному множеству приложений. Короче, всему тому множеству, которое и образует мир FOSS, само имя которого является производным от понятий свободы и открытости.
К вопросу о лицензиях
Однако именно тут и начинаются разночтения и буквы, и духа негласного устава мира FOSS. Ибо существует две основные формы распространения входящих в него программ, в юридических терминах описываемые соответствующими лицензиями: GPL (General Public License GNU) и BSD.
Лицензия GPL была сформулирована в 1988 году упомянутым выше Ричардом Столлменом и ныне существует в двух версиях (GPLv2 и GPLv3), существенно различающихся в ряде моментов, что, прочем, для нас сейчас как раз несущественно. Потому что два главных постулата обеих версий этой лицензии одинаковы:
- для всех программ, распространяемых под лицензией GPL, в том или ином виде должны быть доступны исходные тексты;
- все программы, в которых каким бы то ни было образом используется исходный код, лицензированный под GPL, должны распространяться под этой же лицензией.
То есть: использовать GPL-лицензированные программы или их компоненты в закрытом проекте (если, конечно, результаты этого проекта в той или иной форме распространяются публично) категорически не допустимо.
Мы не будем обсуждать здесь вопросы, сводящиеся к тому, хороша или плоха лицензия GPL. Для наших целей сейчас важно уяснить, что вне зависимости от её достоинств или недостатков существование GPL — медицинский факт, как сказал бы товарищ Бендер. И под этой лицензией в различных ее версиях и вариантах (последние представлены лицензиями LGPL и GFPL) распространяется ядро Linux (GPLv2) и подавляющее большинство всего программного обеспечения FOSS.
Если GPL-лицензия достаточно сложна и, особенно в своей 3-й версии, весьма длинна, то лицензия BSD, напротив, проста, как правда, и настолько кратка, что я не отниму много читательского трафика, процитировав её почти полностью:
Copyright 1994-2008, проект FreeBSD. All rights reserved.
Разрешается повторное распространение и использование как в виде исходника, так и в двоичной форме, с модификациями или без при соблюдении следующих условий:
- При повторном распространении исходного кода должно оставаться указанное выше уведомление об авторском праве, этот список условий и нижеследующий отказ от гарантий.
- При повторном распространении двоичного кода должно воспроизводиться указанное выше уведомление об авторском праве, этот список условий и нижеследующий отказ от гарантий в документации и/или в других материалах, поставляемых при распространении.
- Ни название (Калифорнийского — А.Ф.) Университета, ни имена его сотрудников не могут быть использованы для поддержки или продвижения продуктов, основанных на этом ПО без предварительного письменного разрешения.
После чего следует стандартный отказ от гарантий. Полный перевод, выполненный Андреем С. Кухаром, можно найти здесь или в Википедии, оригинал — на сайте проекта FreeBSD.
Ранее BSD-лицензия содержала ещё так называемую «оговорку о рекламе», шедшую 3-м пунктом:
3. Все рекламные материалы, ссылающиеся на возможности или использование этого ПО, должны содержать следующее уведомление:
Этот продукт включает ПО, разработанное Университетом Калифорнии, Беркли и его сотрудниками.
Но позднее она была снята, о чем подробнее будет рассказано в историческом очерке.
Лицензия BSD в мире FOSS применяется не так широко, как GPL. Однако под ней или под её вариантами, известными как лицензии BSD-стиля, распространяются, как это ни странно звучит, все операционные системы BSD-семейства, а также такой важный компонент современных Unix-подобных систем, как оконная система X (о последней будет подробнее говориться в посвящённой ей главе).
В частности, и наша героиня, ОС FreeBSD, в базовой своей части распространяется под лицензией BSD-стиля. Она еще короче, чем прародительница, и состоит всего из двух пунктов, аналогичных пунктам 1 и 2 основной лицензии, с добавлением в конце, после дисклаймера, фразы:
Взгляды и утверждения, содержащиеся в программном обеспечении и документации, принадлежат их авторам, и не должны рассматриваться как выражение официальной политики проекта FreeBSD.
Сущность BSD-лицензии применительно к FreeBSD обыденными словами лучше всего отражена в одном из ответов на Часто задаваемые вопросы по FreeBSD:
… слово «free» используется здесь в двух смыслах, один означает бесплатность, а другой — свободу делать всё, что угодно. За исключением пары вещей, которые вы не можете делать с FreeBSD, например, претендовать на то, что являетесь её разработчиком, на самом деле, можно делать с ней всё, что вам заблагорассудится.
Если обратиться к практическим следствиям, вытекающим из формулировок лицензий BSD-стиля, то вкратце они таковы: на базе программ, подпадающих под их действие, можно создавать собственные решения, в том числе, и предназначенные для коммерческого распространения, но при этом не распространять исходные тексты модифицированных компонентов. Хотя права (да и возможности) закрыть исходники лежащей в основе программы она не даёт.
Лицензии BSD-стиля часто называют также «университетскими» лицензиями. И не только потому, что их первопредок — собственно лицензия BSD вышла из лона Калифорнийского университета. И даже не потому, что большинство распространяемых под лицензиями этого типа систем и программ начинало разрабатываться как проекты таких организаций, как Массачуссетский технологический институт (MIT), Университет Карнеги-Меллона и им подобных. Причина в ином.
Ведь если вчитаться в немногие строки BSD-лицензии, нетрудно заметить, что она коротко и ясно формулирует принципы, под которыми распространялись и распространяются результаты работ в любых областях науки со времён Ньютона и до наших дней. И которые представляются научным работникам всех времён и народов не просто естественными, но единственно возможными.
Надо отметить для общего сведения, что лицензии мира FOSS не исчерпываются GPL и лицензиями BSD-стиля: лицензий в нём достаточно много, и все они в равной степени свободны, хотя некоторые из них полагаются свободнее других. Правда, в вопросе, что считать более свободной лицензией, а что — менее, существуют принципиальные разногласия. Однако мы не будем вдаваться в споры о том, какая из лицензий в наибольшей степени соответствует идеалам свободы. Главное для нас то, что программы, подпадающие под действие лицензий, которые рассматриваются организацией OSI (Open Source Initiative) как свободные, могут быть использованы в рамках одного проекта. На сайте этой организации можно найти полный список таких «совместимых друг с другом» лицензий, классифицированных по названиям или по категориям.
Кто кому подобен
Прости мою дерзость,
Твое преподобье,
Но все говорят,
Что мое ты подобье!
Из переводов Маршака
С политикой лицензирования FreeBSD тесно связан вопрос о её Unix-подобии. Последнее означает, что FreeBSD представляет собой функциональный аналог коммерческих, или проприетарных UNIX-систем (к коим относятся, например, Sun Solaris или IBM AIX). Однако название UNIX, являющееся зарегистрированной торговой маркой, права на которую, долгое время переходили из рук в руки и ныне принадлежат консорциуму The Open Group, к FreeBSD прилагаться не может по двум причинам.
Во-первых, FreeBSD, как будет показано в историческом очерке, не содержит проприетарного кода первозданного UNIX, разрабатывавшегося в подразделении Bell Labs компании AT&T, право на который позднее переходило из рук в руки.
Во-вторых же, и это главное, FreeBSD никогда не проходила сертификацию на соответствие стандартам The Open Group (так называемым Single UNIX Specification), каковое, с точки зрения последней, только и даёт право на использование слова UNIX в названии операционной системы.
Отступление: соответственно сказанному в предыдущих параграфах, здесь и далее во всей книге под UNIX™ будет пониматься имя собственное — торговая марка, а также системы, прошедшие сертификацию на соответствие оной. Термин же Unix будет для краткости прилагаться ко всем Unix-подобным системам, вне зависимости от их официального статуса.
Специфика FreeBSD как раз и проявляется в характере её Unix-подобия в сравнении с другой ОС этого семейства — с Linux’ом. Последняя действительно является воспроизведением функциональности Unix с «чистого листа», основанном только на соответствии общему стандарту POSIX.
Система же FreeBSD имеет с проприетарными UNIX’ами общего генетического предка — первозданный UNIX из Bell Labs. А её непосредственные предшественницы, операционки из университета Беркли долгое время развивались параллельно и во взаимодействии с ней. Причём взаимодействии настолько тесном, что они носили имя BSD UNIX, а при формальном «разводе» этих линий отделить код первозданного UNIX от берклианских разработок оказалось нелёгкой задачей.
Более того, многие функции, без которых немыслимы современные Unix-системы, появились впервые именно в прототипах BSD-систем. В качестве примеров достаточно вспомнить «быструю» файловую систему из Беркли (FFS — Fast File System), в которой впервые появились по настоящему длинные имена файлов, протокол TCP/IP, лёгший в основу современного Интернета, оболочку C-shell, впервые продемонстрировавшую интерактивные возможности при работе в командной строке, текстовый редактор vi… список этот можно продолжать очень долго.
Но о Unix-подобии вообще, об истории FreeBSD и связанном с ней юридическом крючкотворстве мы еще поговорим в следующей главе. Пока же достаточно осознать, что FreeBSD имеет те же особенности и предоставляет пользователю в общем и целом те же возможности, что и любой из представителей клана Unix. А в некоторых отношениях её возможности шире, нежели у коммерческих UNIX’ов или родственных Unix-подобных систем.
FreeBSD в её двуединстве
Вопрос функциональности FreeBSD тесно связан с характерными особенностями её внутреннего устройства. Она достаточно чётко разделяется на две части: базовую систему и систему портов.
Базовая система и представляет собой результат деятельности собственно проекта FreeBSD, почему обычно именуется FreeBSD Distributions. Она включает в себя, во-первых, ядро операционной системы и драйверы устройств, обеспечивающие функционирование системы, во-вторых, утилиты системного окружения, ответственные за управление ею, и в-третьих, пользовательские утилиты, позволяющие решать во FreeBSD весьма широкий круг практических задач — от разработки программного обеспечения и системного администрирования до обеспечения коммуникаций, управления данными, обработки текстов.
Ядро и драйверы устройств, с одной стороны, системные и пользовательские утилиты — с другой, функционируют в изолированных областях памяти компьютера — так называемых пространстве ядра и пользовательском пространстве, почему за ними и закрепились названия Kernelland и Userland соответственно.
Однако и Kernelland, и Userland представляют собой единый комплекс программного обеспечения, разрабатываемый одной и той же командой в тесном взаимодействии друг с другом. И потому любые изменения в функциональности ядра мгновенно влекут за собой адекватную коррекцию всего системного ПО и пользовательского его обрамления. То есть встраивание в ядро какой-либо новой функции (например, файловой системы) сопровождается и созданием инструментария для её использования (в примере с файловой системой — средств создания, монтирования, проверки таковой). И инструментарий этот становится неотъемлемой частью Userland’а и, шире, всей FreeBSD Distributions.
Такая организация внутреннего устройства FreeBSD резко отличает её от соплеменного Linux’а. Каковой, как известно, состоит из ядра вместе со считанным количеством системных утилит, а также более или менее аморфного конгломерата утилит и приложений самого разного назначения. Причём все они, в том числе, и утилиты типа системных, предназначенные, например, для работы с теми же файловыми системами, разрабатываются в рамках независимых проектов, развитие которых лишь косвенно связано с разработкой ядра (а то и практически не связано вовсе).
Собственно, системную целостность, пригодную к практическому использованию, Linux приобретает только в руках майнтайнеров его дистрибутивов. Отсюда и пошла тенденция понимать под Linux только ядро, а собранные на нём готовые системы именовать GNU/Linux. Вопрос этот очень спорен, но к теме настоящей книги не относится, поэтому вдаваться в него мы не будем.
Возвращаясь к FreeBSD, следует оговориться, что не все базовые компоненты изначально были её частью, а некоторые из них, причём ключевые (например, компилятор gcc), и по сей день развиваются в рамках совершенно самостоятельных проектов. Однако они очень тесно инкорпорированы в состав Distributions, образуя в нём самостоятельную группу Contributions — но, в принципе, и без них FreeBSD может быть установлена и успешно функционировать, хотя и с определёнными ограничениями, которые станут ясны из дальнейшего рассмотрения.
Далее, следует подчеркнуть, что весь базовый комплекс FreeBSD, несмотря на мощь входящих в его состав пользовательских утилит, способен решать лишь ограниченный круг задач, требуя дополнения сторонними программами, особенно относящимися к сфере настольного применения. И такое дополнение и расширение функциональности FreeBSD обеспечивает система портов.
Система портов (ports) — это комплекс правил и инструментов для
- получения исходных текстов программ независимых от проекта FreeBSD разработчиков,
- их адаптации для FreeBSD посредством тех или иных модификаций оригинального кода разработчика и
- последующей сборки в виде исполняемых бинарных модулей и сопровождающих их файлов типа конфигурационных, документации, инсталляционных сценариев и так далее — всего того, что охватывается понятием индивидуального порта.
После сборки порта возможны варианты: компоненты порта могут быть
- или установлены непосредственно в систему, на которой они собирались,
- или скомпонованы в виде готового набора файлов — так называемого пакета (package), пригодного к автономному распространению и установке на совсем другой машине, уже независимо от системы портов.Важно понимать, что, хотя сама по себе система портов (то есть набор правил построения порта, инструментов для их реализации и модифицирующих фрагментов) является неотъемлемой частью FreeBSD, её объекты — портированные программы, не имеют к ней никакого отношения, разрабатываясь в рамках самостоятельных проектов — обычно для любых POSIX-совместимых операционных систем или, реже, под какую-нибудь конкретную ОС (в последнее время, скорее всего, под Linux). Что, тем не менее, не мешает им исправно функционировать, будучи установленными во FreeBSD любым из двух описанных способов — благодаря тем самым модификациям (так называемым патчам).Пакеты же, сгенерированные посредством системы портов, являются частью полного дистрибутива FreeBSD постольку, поскольку они приспособлены для работы именно в этой системе (для определённой её версии под конкретную аппаратную платформу). Но в состав FreeBSD Distributions они не входят.Базовые компоненты FreeBSD и программы, установленные из портов или пакетов, по умолчанию никогда не смешиваются в системе друг с другом, так как устанавливаются в разные её части — различные ветви файловой иерархии. Да и обновление тех и других, как мы увидим со временем, осуществляется различными методами.Далее, в состав FreeBSD Distributions входят исключительно программы, написанные на чистом Си — языке ядра операционной системы. Программы же, охваченные системой портов, пишутся на тех языках, которые предпочли их авторы. И которые, в свою очередь, тоже поддерживаются через систему портов.
Наконец, различие между FreeBSD Distributions и программами из системы портов проявляется и в их лицензиях. Базовая часть операционной системы, как уже говорилась, подпадает целиком под лицензию BSD. Отдельные же её компоненты, распространяемые под иными лицензиями, выделены в самостоятельные группы Contributions, такие как GNU Contributions и CDDL Contributions. И без них FreeBSD способна к существованию, хотя в ней становятся недоступными многие важные функции.
Так, отказ от GNU Contributions делает невозможной сборку приложений из системы портов, потому что она требует наличия компилятора GCC и сопутствующего ему сборочного инструментария, которые были разработаны в рамках проекта GNU и распространяются под GPL. А отказ от CDDL Contributions делает недоступной новую файловую систему ZFS, созданную фирмой Sun и вместе с инструментарием для её поддержки подпадающую под лицензию CDDL (Common Development and Distribution License),
Однако повторю ещё раз: и без компонентов Contributions базовая система FreeBSD сохраняет не только работоспособность, но и возможность наращивания за счёт установки бинарных пакетов, не требующих компиляции и, соответственно, инструментов для неё.
Программы, включённые в систему портов, как легко догадаться, распространяются на условиях, которые определили их авторы, и тут можно найти весь зоопарк лицензий, перечисленных на сайте OSI.
Именно система портов вместе с производной от неё коллекцией пакетов и определяет мощь и удобство FreeBSD с точки зрения конечного пользователя. Потому что ею охвачены практически все программы, разработанные в мире FOSS: дерево портов, по данным сайта Freshports, ведущего учёт и контроль в этой системе, на момент, когда пишутся эти строки (2009/09/30), насчитывает 20717 наименований. А поскольку каждому порту, за немногими исключениями, соответствует прекомпилированный бинарный пакет, то это число можно распространить и на них. Правда, с некоторым округлением в нижнюю сторону: в дереве портов иногда представлено несколько версий одной и той же программы, тогда как в коллекцию пакетов, как правило, включена лишь одна из них.
Для сравнения: в стабильной ветке Debian — одном из самых полных дистрибутивов Linux, — на то же самое время имеется 28255 пакетов. Может создаться впечатление, что по широте охвата программного обеспечения FreeBSD существенно (примерно на 20%) отстаёт от Linux’а (по крайней мере, в лице Debian’а). Однако это не совсем так: порты и пакеты FreeBSD в большинстве случаев соответствуют авторским пакетам в том виде, в каком они скомпонованы их разработчиками. Система же пакетного менеджмента Debian допускает дробление авторского пакета на несколько (иногда — много) пакетов дистрибутивных, поэтому суммарное количество последних оказывается существенно больше, чем число охваченных программ. По личному опыту могу заметить: за всё время общения с FreeBSD не было еще случая, чтобы заинтересовавшая меня программа (порой весьма узкоспециальная) не обнаруживалась бы в дереве портов FreeBSD, тогда как с репозиторием Debian такое, хоть и редко, но случалось.
Я говорю об этом так подробно, дабы подчеркнуть, что пользователю FreeBSD доступны абсолютно все свободные программы, которыми комплектуются самые полные дистрибутивы Linux. Единичные исключения касаются программ проприетарных, распространяемых исключительно в бинарном виде, без исходных текстов и написанных для использования сугубо в Linux’е (подчас даже в определённых его дистрибутивах). Однако в большинстве случаев и их можно запустить в так называемом режиме совместимости с Linux, причем почти без потери производительности (некоторые даже утверждают, что с её приростом, но я на этом настаивать не буду).
При этом потенциальный пользователь FreeBSD должен понимать, что программы, устанавливаемые в этой ОС из портов или пакетов — абсолютно те же самые, что он видит в любом дистрибутиве Linux’а, ибо и там, и там они собраны из одних и тех же исходных текстов: нет какого-либо специально FreeBSD’шного Xorg или KDE, GIMP или OpenOffice.org. Конечно, в портах могут присутствовать системно-специфические патчи, как могут различаться и опции конфигурирования при сборке пакетов — но эти явления имеют место быть и в большинстве дистрибутивов Linux.
И всё же о специфике
Однако я, во-первых, существенно забежал вперёд — вопросы портов и пакетов будут предметом подробного рассмотрения в соответствующей главе, а во-вторых, отдалился от основной темы главы нынешней — определения специфики FreeBSD в ряду других Unix-подобных систем, как свободных, так и не очень.
Хотя основные черты этой специфики мы вроде бы рассмотрели. Если подытожить всё сказанное ранее, они будут выглядеть так:
- FreeBSD — открытая и свободная операционная система, и это отличает её, как и её собратьев по BSD-семейству и Linux’а, от проприетарных операционок, носящих марку собственно UNIX;
- во внутреннем устройстве FreeBSD чётко обособляются базовая часть системы, обеспечивающая её функциональность, и система установки привлечённых сторонних приложений, обуславливающая её расширяемость и приспособленность к решению конкретных пользовательских задач;
- базовая часть системы (FreeBSD Distributions) разрабатывается в рамках единого проекта, а не являет собой, подобно Linux’у, конгломерат из ядра, утилит и приложений различного происхождения;
- наконец, FreeBSD лицензирована на условиях BSD-стиля, что допускает включение в неё компонентов, распространяемых под любыми свободными лицензиями.
На этом специфику FreeBSD можно считать однозначно определённой? Не совсем. Потому что три пункта из приведённых четырёх, отличая FreeBSD от Linux’а, в то же время объединяют её со всеми остальными представителями BSD-семейства. Значит ли это, что между ними нет никакой разницы?
Ответ будет отрицательным. Конечно, все BSD-системы, происходя из общего корня, сохранили множество общих черт, и, с точки зрения пользователя, разница между ними на глаз меньше, чем между такими дистрибутивами Linux, как Slackware и Mandriva. Однако если обратиться к назначению отдельных BSD-систем, то их своеобразие проявится достаточно выпукло.
Для начала вспомним еще об одном пункте из трафаретного определения FreeBSD в начале этой главы, о котором речь пока более не заходила — о кросс-платформенности.
Исторически сложилось так, что первозданный UNIX стал кросс-платформенной системой если не со дня своего рождения, то с весьма юного возраста. Эта его черта была свойственна не только развивавшимся в Беркли BSD UNIX, но наследовавшей последнему NetBSD и её форку — OpenBSD.
FreeBSD же с самых первых дней своего существования была адаптирована для использования на единственной и самой демократичной платформе того времени — на IBM PC в лице процессора архитектуры x86. Да, со временем она была портирована на компьютеры с процессором Alpha, а затем на остальные 64-битные архитектуры — PowerPC, Sparc64, Itanium (IA-64) и, наконец, на AMD64 (она же Intel EM64T или x86_64). Однако список этот не идёт ни в какое сравнение даже со списком платформ, поддерживаемых OpenBSD, не говоря уже о NetBSD, в котором, кажется, фигурируют процессоры всех времён и народов.
Кроме того, создаётся впечатление, что кросс-платформенность во FreeBSD существует более «для галочки», нежели из реальной потребности на всех архитектурах, кроме x86 и x86_64. Ибо архитектура Alpha, как это ни прискорбно, давно мертва морально, а последние её представители приближаются и к физической смерти. Прочие же платформы из нашего списка распространяются с собственными ОС, не оставляя широкой ниши для инсталляции на них FreeBSD. Так что магистраль её развития по-прежнему совпадает с вектором движения x86 и продолжающей её линию x86_64. Каковые, кстати, остались и единственными платформами массовых компьютеров для конечного пользователя.
Да, как это ни покажется странным сегодня, когда FreeBSD рассматривается как преимущественно серверная ОС (а то и сугубо серверная, не пригодная к десктопному использованию), в годы её зарождения она позиционировалась как система для конечного пользователя. Другое дело, что конечными пользователями её выступали преимущественно её же разработчики (аналогично тому, как это было и на раннем этапе развития Linux’а). Но в любом случае ни основоположники NetBSD, ни, позднее, создатели OpenBSD конечного пользователя не принимали в расчёт ни в каком виде.
И вот это сочетание — ориентация на массовую платформу PC-машин и учёт интересов конечных пользователей, пусть и весьма специфических, и предопределил пятую характерную особенность FreeBSD, в сочетании с тремя предыдущими делающую её уникальной в кругу FOSS-операционок.
О талисманах и деймонах
Впрочем, есть и последняя, шестая, особенность FreeBSD — некая окутывающая её таинственность, нашедшая своё выражение в исконном талисмане этой системы — деймоне по имени Beastie, ныне в качестве официальной эмблемы заменённого на нечто вроде якорной морской мины. Однако для меня символом этой ОС остаётся Devilette — женщина-деймон, которая, подобно демоническим женщинам древних мифов, готова подвергнуть своего избранника тяжким испытаниям и требовать от него соответствия своему идеалу. Но при таком соответствии, в конце концов, дарует победу…
В наши дни потенциальная ориентированность FreeBSD на конечного пользователя, заложенная её создателями, может реализоваться неожиданном образом. Ибо не выглядит ли пользователь просто любознательный (а любознательность — необходимый атрибут потенциального пользователя этой системы) белой вороной на фоне потребителей, ожидающих, пока им «сделают пес…то»?
К ним, белым воронам мира потребления, и обращена эта книга — в надежде убедить, что FreeBSD — система, заслуживающая их внимания, и что они проникнутся её демоническим очарованием. Вне зависимости от того, приходят они к ней от юзерофильных дистрибутивов Linux’а, из мира Windows или вообще делают первые шаги в освоении компьютера.
Эта книга посвящается FreeBSD — одной из открытых и свободных операционных систем семейства Unix-подобных (или, точнее, POSIX-совместимых). Она во многом сходна с ОС Linux, которая, по крайней мере, в имени своём приобрела в наши дни широкую известность не только в компьютерных кругах. Однако, наряду с общими чертами, обусловленными родовой принадлежностью, FreeBSD обладает и своей спецификой. И то, и другое послужит предметом рассмотрения в этой книге.