FreeBook
FreeBSD
OtherBSD
SB Linux
OtherOS
FreeProgs
FreeNotes
FreeGeo
SiteMap

Алексей Федорчук
FreeBSD на столе
[Top]
[Prev]  [Content]  [Next]

1. Почему FreeBSD?

На вопрос ответить не трудно. Хотя бы - для восстановления справедливости. Среди потного вала вдохновенных (и не очень) описаний Linux'а, захлестнувшего в последние годы страницы компьютерных изданий, немногочисленные материалы о FreeBSD просто теряются. Хотя сама по себе система заслуживает внимания, как минимум, не меньшего. В том числе - и как настольная платформа универсального назначения.

Поэтому первое, что следует сделать в рамках данной темы - рассмотреть вопрос о том, а пригодна ли FreeBSD, при всех ее неоспоримых достоинствах, к настольному, в том числе домашнему, использованию? Конечно, я, скажем, использую ее в этом качестве уже года три - и вреда ни малейшего. Однако единичный опыт - не показатель...

Не секрет, что если Linux мало-помалу завоевывает место под солнцем, освещающим десктопы конечных пользователей, то про FreeBSD этого не может сказать даже самый ярко выраженный оптимист. Почему? ИМХО, главная причина неиспользования FreeBSD как настольной системы - в том, что никто ее в этом качестве не использует. Остальные же - производны от главной, хотя им и пытаются найти рациональные (скорее, псевдорациональные) объяснения. Среди них наиболее часто выступают:

  • большая (сравнительно с Linux) сложность установки и настройки;
  • сложность освоения;
  • худшая (опять же, если сравнивать с Linux) поддержка современного оборудования;
  • недостаточная поддержка периферийных устройств;
  • недостаточное количество приложений общего назначения.

Есть еще и объяснение иррациональное: FreeBSD - плохая (по сравнению с Linux, опять-таки) система, но о нем мы говорить не будем, поскольку это просто не так (прошу поверить на слово - доказательства будут представлены в последующих заметках цикла). А пока попробуем рассмотреть псевдорациональные объяснения.

О сложности FreeBSD

Начнем со сложности установки и настройки. Да, FreeBSD не имеет такого красивого графического инсталлятора, как Red Hat, Mandrake или ASPLinux. Free'шный установщик, sysinstall, функционирующий в текстовом, лишь слегка декорированном псевдографикой, режиме выглядит несколько аскетично (и даже архаично). Однако он вполне логичен и (по приобретении минимальных навыков) прост в использовании.

К тому же sysinstall - не просто инсталлятор, но еще и универсальный конфигуратор, до которого далеко и панели управления Red Hat, и Mandrake'вским Drake'ам. По универсальности с ним можно поставить в один ряд только Yast из Suse. При этом он отнюдь не препятствует ручному вмешательству в процесс конфигурирования, тогда как от общения с Yast'ом (не говоря уж о Drake) у меня осталось впечатление, что он и ручные настройки - две вещи несовместные.

С противоположной стороны, можно сказать, что sysinstall в своем универсализме проигрывает средствам установки и настройки таких Source Based дистрибутивов Linux, как Gentoo. Где специализированные инструменты установки и настройки просто отсутствуют - в этом качестве выступают командная оболочка и текстовый редактор (а что может быть универсальнее в мире POSIX-совместимых систем?).

Однако и это не вполне верно. FreeBSD можно установить, не обращаясь к sysinstall вообще. Хотя с точки зрения трудозатрат это - не самое оптимальное решение, однако в некоторых случаях может быть оправданным. А для постинсталляционной настройки прибегать к sysinstall вообще нет необходимости - того же текстового редактора хватит за глаза. Хотя, in contrario, у пользователя всегда сохраняется sysinstall'ная альтернатива, результаты работы которой, скорее всего, не будут идеальными, но - всегда разумны.

Сложность освоения? Бытует мнение, тщательно культивируемое в определенных кругах, что работа во FreeBSD требует более высокой квалификации, чем в Linux. По моему скромному мнению, это в корне не верно. Не то чтобы во FreeBSD можно работать, не имея никаких знаний. Отнюдь. Но и эффективное использование Linux, что бы не утверждали создатели всякого рода Lindows, без некоторого минимума подготовки абсолютно невозможно. Причем во FreeBSD это становится ясным с первого же запуска системы: ее первозданная Unix-сущность не маскируется ни теми же графическими инсталляторами, ни пропагандистскими лозунгами о том, что Linux стал проще Windows.

Более того, для пользователя, не затронутого тлетворным влиянием Windows, FreeBSD может оказаться даже проще в освоении, нежели Linux. Причина в том, что FreeBSD - одна, тогда как Linux'ов - много:-). И можно быть уверенным, что все, написанное о FreeBSD, относится именно к этой системе в целом, а не какой-либо ее разновидности.

Освоение FreeBSD облегчается прекрасной документированностью этой системы. Здесь и пошаговое руководство по инсталляции, и знаменитый FreeBSD Handbook - незаменимый источник сведений для пользователя, и подробное руководство по архитектуре системы, и множество документов по частным вопросам. Причем, что особенно отрадно, практически все эти материалы доступны ныне в русских переводах (см. каталог ресурсов).

О поддержке оборудования

Относительно поддержки оборудования - вопрос очень и очень спорный, и потому заслуживающий подробного рассмотрения. Казалось бы, с одной стороны, Linux последнее время пользуется некоторым вниманием со стороны производителей "железа" - подчас, например, принтеры комплектуются "родными" драйверами, которых для FreeBSD заведомо не сыскать. Часто можно найти Linux-драйвера для ATA RAID-контроллеров, новых чипсетов и тому подобного. Однако это - палка о двух концах. Такие фирменные драйвера практически всегда поставляются в бинарном виде, и скомпилированы под определенные (как правило, устаревшие на момент выхода) версии ядра, а то и под конкретные дистрибутивы из числа наиболее распространенных (как правило, Red Hat, иногда - Suse). И работоспособность их в произвольной Linux-системе не то что не гарантируется, но иногда и прямо отвергается.

С другой стороны, факт, что поддержка существенно нового "железа", не зависящая от его производителей и фирменных драйверов, во FreeBSD обычно появляется несколько позже, чем в Linux. Однако буде она все же появилась - реализация ее, как правило, изначально лучше. Хотите примеры? Их есть у меня.

Во FreeBSD с USB-устройствами любого рода не возникало ни малейших проблем с того момента, как она вообще узнала о существовании этой шины. В Linux же некоторые шероховатости в работе с USB-устройствами время от времени отмечались еще долго (хотя ныне это, похоже, в прошлом).

В любой версии FreeBSD, с которой я имел дело (а это - начиная с 4.2) все прошедшие через мои руки ATA RAID-контроллеры опознавались и работали безупречно. Поддержка тех же устройств в Linux появлялась часто более чем через год. И, как я говорил, фирменные драйвера, которые можно найти на серверах Promise или HighPoint, дела в общем случае не спасают...

Часто отдельно встает вопрос о видеокартах. Однако, строго говоря, он не относится к компетенции ни Linux, ни FreeBSD: в текстовом режиме обеих этих операционок поддерживается практически любая когда-либо существовавшая карта. Графический же режим - прерогатива оконной системы Икс, которая идентична и в Linux'е, и во FreeBSD. Конечно, драйверы для видеокарт от производителей (в сущности, модули ядра) специфичны для ОС. Однако в последнее время Nvidia выпускает драйверы к своим чипам для FreeBSD столь же исправно, что и для Linux, прочие же (а их и осталось-то - ATI да Matrox, не считая размазанных по чипсетам SiS и Intel), как показывает история, будут вынуждены последовать их примеру.

Относительно поддержки периферии, особенно той, что еще недавно считалась за экзотическую (от сканеров и фотореалистических принтеров до цифровых камер) - сказать затрудняюсь. Вполне готов поверить, что печать фотографий в Linux осуществляется лучше (хотя в данном случае уместнее было бы сказать - менее плохо). Однако для профессионалов цифровой фотографии любая Unix-платформа, скорее всего, неприемлема, а для развлечений на любительском уровне прикрутить цифровую камеру к BSD-машине ничуть не сложнее, чем к Linux-боксу.

Немаловажный вопрос для конечного пользователя - легкость использования оборудования. И тут, не побоюсь этого слова, FreeBSD просто вне конкуренции. На заре знакомства с этой системой я долго недоумевал, почему так мало пишут о настройке сети или модемного подключения во FreeBSD (по причине существенно оффлайнового образа жизни эти вопросы в Linux часто оказывались для меня камнем преткновения). Пока однажды не попробовал проделать это сам. И тут выяснилось - писать-то просто нечего: настройка и сети, и DialUp соединения во FreeBSD выполняется не просто. А - очень просто.

Впрочем, это можно сказать и об использовании почти любого другого оборудования из числа поддерживаемого. Для включения современной звуковой PCI-карты на более-менее распространенных чипах достаточно пересобрать ядро с добавлением 1-й (одной!) строки. А можно и просто обойтись подгружаемым модулем. Не намного сложнее осуществить и поддержку старых (в том числе некогда полагавшихся высококлассными - да пожалуй, что такими и оставшихся) ISA-карт.

Запись CD-R/RW дисков (на распространенных нынче ATA-приводах) во FreeBSD не требует манипуляций (не всегда однозначных и не сказать чтобы интуитивно прозрачных) с опциями эмуляции SCSI-интерфейса через IDE в ядре системы, или передачи ядру параметров при загрузке (как это делается в Linux). Все заботы о функционировании пишущего привода берет на себя штатная утилита burncd, пригодная к употреблению в свежеустановленной системе изначально.

Хотя и включение эмуляции SCSI в ядре не возбраняется. И, соответственно, можно использовать не только обще-Unix'овую программу cdrtools, но и многочисленные front-end'ы к ней.

Сказанное об использовании оборудования было характерно для FreeBSD всегда (по крайней мере, на моей памяти). Однако ныне положение стало еще лучше. Ибо в версиях 5-й ее ветки реализована поддержка файловой системы устройств (devfs), без которой трудно эффективно использовать преимущества, например, устройств "горячего" подключения. И, вследствие целостной модели разработки FreeBSD, поддержка эта не отягощена родимыми пятнами "обратной совместимости".

До недавнего времени у Linux'а был один неоспоримый козырь против FreeBSD - более широкий круг поддерживаемых платформ: вплоть до 4-й ветки включительно, последняя работала только на Intel-совместимых машинах и на компьютерах с процессором Alpha. Однако для настольного использования в нашей Отчизне это вряд ли когда-нибудь было актуальным. А теперь и вовсе, с приобретением в 5-й ветке внутренней 64-разрядности, FreeBSD способна функционировать и на PowerPC, и на Sparc'ах. Есть версии ее и для 64-разрядных x86-систем, причем как от Intel, так и от AMD.

О недостатке софта

Тезис о недостаточном количестве приложений общего назначения, разрабатываемых для FreeBSD, даже не нуждается в опровержении. Ибо база пользовательских программ для Linux и FreeBSD - абсолютно одна и та же, и включает в себя все многообразие открытого и свободного софта, созданного человечеством. Для сравнения: число пакетов, входящих в дистрибутив Debian GNU/Linux, составляет около 8 тысяч, количество же портов FreeBSD недавно перевалило за десять тысяч позиций (и число это постоянно возрастает). Более того, практически любая программа, не охваченная системой портов, написанная ли под абстрактный Unix, или под Linux, доступная в исходных текстах, может быть скомпилирована для работы во FreeBSD.

Разумеется, есть некоторое количество Linux-специфичных программ, не имеющих BSD-версий и не доступных в исходных текстах (то есть не принадлежащих к миру Open Sources). Тут обычно называют такие имена, как Kylix или RealPlayer. Однако и для них не все потеряно на платформе FreeBSD. Ибо последняя позволяет запускать бинарные Linux-программы в т.н. режиме совместимости, не только без потери производительности, как при эмуляции Windows-приложений, но даже, как утверждают некоторые, с приращением оной. К слову сказать, эмуляция Windows-программ через Wine во FreeBSD реализована столь же хорошо (или столь же плохо), как и в Linux.

Таким образом, все объективные причины к неиспользованию FreeBSD на десктопе на поверку оказываются либо не существенными, либо просто не имеющими место быть. В то же время для FreeBSD можно констатировать некоторые специфичные особенности, не свойственные Linux, которые могут выступать в качестве показаний к такому использованию.

FreeBSD и Linux в сравнительном аспекте

И первым в этом ряду нужно назвать то, что FreeBSD - одна, а Linux'ов - много. И эту фичу первой операционки переоценить трудно. Любой пишущий о Linux вынужден либо давать массу дистрибутив-специфичных оговорок, либо просто делать вид, что других дистрибутивов, кроме им используемого и описываемого, на свете не существует. А каково при этом читателю, особенно начинающему? FreeBSD же, будучи единой и неделимой, от этого свободна. Что, к слову сказать, делает ее идеальным объектом для первичного изучения POSIX-систем вообще (именно изучения, а не ознакомления).

Вторая особенность FreeBSD, выгодно отличающая ее от Linux'а, вытекает из первой. Это - целостность системы. Если Linux - более или менее удачная попытка синтеза ядра системы с набором системных и прикладных утилит разного (преимущественно GNU'того) происхождения, то во FreeBSD базовый комплекс утилит составляет с ядром неразрывное единство. И потому их совместимость как бы не подвергается сомнению (разумеется, в ветках, классифицированных в качестве стабильных). Именно этим единством обусловлена большая устойчивость FreeBSD - а отнюдь не превосходством ее ядра или утилит обрамления. Впрочем, вопрос сравнительной устойчивости я обсуждать категорически отказываюсь...

Третье мое утверждение может показаться парадоксальным, но оно основано на собственном опыте: FreeBSD устроена существенно проще Linux'а. Чтобы поверить в это, достаточно ознакомиться с системой ее инициализации, то есть стартовыми сценариями каталога /etc. Здесь нам не придется иметь дело ни с загадочными для начинающего пользователя runlevels (кстати, любой русский перевод этого термина способен только еще более ввести этого самого пользователя в заблуждение), ни с кучей подкаталогов типа /etc/init.d/rc.#, содержащих ссылки на скрипты интуитивно не всегда ясного назначения (да еще и разнящиеся не только от дистрибутива к дистрибутиву, но от от версии к версии), ни на прочие атрибуты загрузки в стиле System V, характерного для большей части дистрибутивов Linux. Во FreeBSD же для старта системы абсолютно необходим лишь единственный стартовый сценарий (/etc/rc) и пара конфигурационных файлов (/etc/rc.conf и /etc/ttys) очень прозрачной структуры.

Предвижу два возражения: что система инициализации в стиле System V обеспечивает более гибкое управление процессом загрузки, и что BSD-сценарии плохо масштабируемы и теряют эффективность при большом количестве стартовых сервисов. Не могу с этим не согласиться, в принципе - так оно и есть. Однако у нас сейчас речь идет о настольной системе, а часто ли там возникает необходимость в запуске большого количества стартовых сервисов? Как правило, наоборот - пользователю любого "могучего" Linux-дистрибутива при настройке под себя приходится затрачивать немало усилий по разгрузке инициализационной схемы от излишеств, которые составители посчитали необходимостью. Не случайно же в последнее время ряд Linux-дистрибутивов обнаруживает тенденцию к замене излишне усложненного стиля загрузки, унаследованного от System V, более простым BSD-стилем. А вот противоположных попыток что-то не наблюдается...

И последнее. Система управления пакетами FreeBSD, т.н. система портов, выглядит на первый взгляд достаточно специфичной. Однако при внимательном рассмотрении оказывается, что основана она на механизме make-файлов, универсальном для всех POSIX-систем. Тогда как управление пакетами в Linux, как правило, настолько дистрибутив-специфично, что виртуозное владение техникой rpm-билдинга мало чем может помочь при работе с deb-пакетами. Опять же показательно, что передовые идеи в Linux-дистрибутивостроении (портежи Gentoo, порты CRUX, ABS из Archlinux, sorcery из Sorcerer с потомками) генетически происходят из BSD-мира.

Резюмируя все сказанное, попробую сформулировать главное различие между Linux и FreeBSD. Первая - система по сути своей альтернативная. Это выражено в том, что абсолютно любой компонент ее, кроме ядра, может быть заменен функциональным аналогом. Что, конечно, придает ей обаяния - любой пользователь Linux-системы может почувствовать себя соучастником ее разработки и конструктором системы собственной. FreeBSD же - монолитное сооружение, из которого, как из сложенной в соответствие со стихотворным размером поэмы, невозможно ни выкинуть ни единого слова, ни, практически, добавить хоть запятую. Хорошо это или плохо - но для начинающего пользователя POSIX-систем, не имеющего, к тому же амбиций разработчика, это может оказаться существенным плюсом.

А вообще-то все, что я сказал в сравнительном аспекте - не к тому, что FreeBSD лучше Linux'а, или наоборот. Ибо это опять же один из тех вопросов, которые я затрагивать не собираюсь ("мне нравятся очень... обои", как сказал великий русский поэт Алексей Константинович aka Толстой). Приведенные рассуждения лишь служат иллюстрацией того, что FreeBSD для настольной системы подходит ничуть не меньше (хотя, возможно, и не больше), чем Linux. Разумеется, для тех задач, для которых использование операционок POSIX-типа вообще оправдано. Но это - уже совсем другая история.


[Prev]  [Content]  [Next]
[Top]