Писать обзоры дистрибутивов — занятие по большей части бессмысленное. Но для пользовательских разновидностей FreeBSD следует сделать исключение. Эта система весьма сильно отличается от базирующихся на GNU/Linux и почти незнакома рядовым пользователям. Считается, что “фряшка” мало пригодна для использования в качестве настольной ОС. Сегодня мы попробуем разобраться, насколько это мнение справедливо. Тем более что есть хороший повод — не так давно вышла FreeBSD 9.0 и несколько основанных на ней продуктов.
Отличия от GNU/Linux
Долго говорить о технических отличиях систем семейства BSD не будем — скрипты инициализации, стратегия разработки, принципы нумерации версий и тому подобные вещи не очень интересны массовому потребителю. Важно знать, что в отличие от состоящих из “кубиков” дистрибутивов GNU/Linux (которые представляют собой ядро Linux с окружением GNU) во FreeBSD есть весьма развитая базовая система. Помимо ядра в неё входят различные библиотеки и программы (MTA, консольные оболочки и утилиты, интерпретатор perl, консольные текстовые редакторы и многое другое), которые в Linux оформлены как отдельные пакеты. Разумеется, далеко не все программы базовой ОС разработаны в рамках проекта, но они включаются в единое древо исходных текстов. В этом смысле идеология FreeBSD похожа на идеологию некоторых проприетарных ОС. Это не лучше и не хуже, чем принято в дистрибутивах GNU/Linux — просто другой подход, когда есть система и сторонние приложения.
Программы во FreeBSD устанавливаются через так называемую коллекцию портов (находится в /usr/ports), представляющих собой инструкции для автоматизированной сборки бинарных пакетов из исходных текстов штатными средствами операционной системы. Исходники при этом скачиваются из Сети, а собранные программы инсталлируются при помощи менеджера пакетов и регистрируются в специальной базе данных. Разумеется, этап сборки можно пропустить и ставить уже готовое ПО, автоматически скачанное с серверов проекта. Средства управления пакетами во FreeBSD хорошо развиты (поддерживаются зависимости между программами, есть средства установки, удаления и обновления), хотя и не так, как в современных дистрибутивах Linux.
Ещё один интересный момент — обновление базовой ОС. В дистрибутивах Linux мы просто заменяем пакеты их более свежими версиями — неважно что это, ядро, системная библиотека или пользовательское приложение. Во FreeBSD всё по-другому: поскольку базовая система не является набором пакетов, процесс её обновления выглядит иначе, чем процесс обновления установленного из портов/пакетов софта. В то время, когда я активно пользовался FreeBSD (90-е годы), приходилось держать древо исходных текстов (/usr/src), применять к нему вышедшие патчи (или обновлять исходники целиком с помощью одной из поддерживаемых систем контроля версий), самостоятельно компилировать и устанавливать собранное ПО. Процесс этот довольно неплохо формализован и автоматизирован, но занимает некоторое время (на слабых машинах значительное). Теперь все изменилось — бинарные обновления базовой ОС появились во FreeBSD уже давно. Нет даже необходимости держать на диске исходные тексты ядра, если вы используете ядро по умолчанию (т. н. GENERIC), хотя для собственных конфигураций они по-прежнему нужны.
VirtualBSD 9.0
Говоря про основанные на FreeBSD системы стоит понимать, что они отличаются от дистрибутивов GNU/Linux большей зависимостью от родительского проекта. Обычно здесь нет собственной пакетной базы или репозиториев — ОС собирается из исходных текстов FreeBSD, а все собственные наработки (если они есть) интегрируются в коллекцию портов. То есть мы имеем дело с некой предварительно сконфигурированной сборкой FreeBSD, а не с самостоятельным продуктом. Подобных примеров достаточно и в мире Linux — взять, скажем, развиваемый сообществом дистрибутив Kubuntu.
Первой мы рассмотрим сборку FreeBSD 9.0, предназначенную для запуска в контексте виртуальной машины VMWare/VirtualBox — VirtualBSD 9.0. Система поставляется в виде готового образа. В комплект входит среда Xfce 4.8, панель wbar и некоторое количество свободных (LibreOffice.org, Gimp, Firefox, Thunderbird, Pidgin, Xchat, Transmission и др) и проприетарных (Skype, Adobe Flash и кодеки) приложений. Ядро FreeBSD поддерживает режим бинарной совместимости с Linux. Это не гарантирует корректной работы любой Linux-программы, а кроме того, приложение может потребовать установки дополнительных компонентов.
Программы инсталляции здесь нет — достаточно создать машину и подключить к ней образ диска. Впрочем, если вы используете VirtualBox, то придётся почитать инструкцию: необходимо в консольном режиме скачать с сайта проекта небольшую программу, удаляющую “гостевой” софт для VMWare и устанавливающую соответствующее ПО для VirtualBox. Для входа в систему используется GDM (логин и пароль virtualbsd). Автоматический вход разработчики не настроили, чтобы можно было выбрать локализацию. Рабочий стол описывать особого смысла нет — он стандартный. Графических средств управления пакетами и обновления базовой ОС мне обнаружить не удалось — есть только штатные консольные утилиты FreeBSD. Что касается настройки среды рабочего стола — пользователю доступны средства Xfce.
Темы оформления рабочего стола и шрифты мне не понравились, хотя для использования в виртуальной машине внешний вид не критичен — для повседневной работы такая система явно не предназначена. Хотя для первичного знакомства с FreeBSD этот вариант неплох.
GhostBSD 2.5
Наш второй “пациент” больше похож на полноценную настольную ОС. GhostBSD доступна в двух вариантах — с GNOME 2.32 и с LXDE 0.5.5 (сборки для i386 и amd64). Универсальные образы разработчики делать не стали — если хотите записать дистрибутив на флэшку, то нужно сразу скачивать соответствующий файл. Система может работать в live-режиме, а кроме того, здесь есть написанный на Python графический установщик ginstall. Выглядит он скромно, но всеми необходимыми возможностями обладает. Программа инсталляции, к сожалению, не локализована и не позволяет выбрать локализацию. В варианте с GNOME они устанавливаются все, а для входа в систему используется GDM (в live-режиме логин и пароль ghostbsd), который позволяет указать язык сеанса.
Набор программного обеспечения типовой. В сборке с GNOME 2, кроме стандартных для этой среды приложений, устанавливаются Firefox, Thunderbird, LibreOffice и проприетарные компоненты Skype для Linux и Adobe Flash. В LXDE Thunderbird заменили на Sylpheed, LibreOffice — на AbiWord и Gnumeric, а штатные проигрыватели GNOME — на Audacious и Mplayer. Стоит отметить наличие удобного интерфейса для настройки беспроводных соединений и пакета e2fsprogs (поддержка ext2, ext3 и ext4). Специальных графических средств для администрирования ОС и настройки среды обнаружить не удалось, есть только штатные утилиты GNOME/LXDE и Bxpkg — графическая оболочка системы управления пакетами. Программы ставятся и обновляются из репозитория FreeBSD, а вот обновлять базовую ОС придётся с помощью консольных утилит.
На мой взгляд, это довольно неплохая сборка FreeBSD и GNOME 2 с приятными глазу темами оформления. Сравнивать её с современными пользовательскими дистрибутивами GNU/Linux сложно (те обладают гораздо более “дружелюбными” средствами настройки ОС и управления установленным ПО), но поставить и настроить GhostBSD новичку проще, чем предназначенные для опытных пользователей реализации Linux. Если говорить про вариант с LXDE — на пользовательскую ОС он не похож вовсе. Главная проблема состоит в невозможности настроить русскую локализацию графическими средствами. Для входа в систему там используется легковесный LXSession, который также не позволяет выбрать язык. Добавьте сюда отсутствие в сборке проприетарных приложений (которые есть в GhostBSD с GNOME), и вам станет понятно, что для начинающих пользователей этот вариант совершенно непригоден.
PC-BSD 9.0
Старейшую пользовательскую ОС, основанную на FreeBSD, я решил оставить напоследок. Когда проект PC-BSD только запускался, в сообществе откровенно посмеивались над этой инициативой. Недавно вышла PC-BSD 9.0, а созданный её разработчиками графический инсталлятор используется во FreeBSD 9.0 по умолчанию (курирующая разработку системы компания iXsystems активно участвует в развитии FreeBSD и спонсирует некоторые инициативы проекта). Для загрузки доступно несколько вариантов образов (CD/DVD/USB — универсальных образов, к сожалению, нет) установочных дисков и live-систем для архитектур i386 и amd64. Программа установки выглядит не так красиво, как в популярных пользовательских дистрибутивах Linux (за исключением Mandriva/РОСА — там инсталлятор ещё страшнее), но в смысле удобства и функционала претензий к ней у меня не возникло.
Пользователь может выбрать язык системы, настроить таймзону и синхронизацию времени через Сеть, а также раскладки клавиатуры. Впрочем, переключить во время инсталляции раскладку с помощью сочетания клавиш я так и не смог (в окне установщика есть кнопки переключения и вызова экранной клавиатуры). Дальше нужно выбрать сценарий установки системы (настольная PC-BSD или серверная FreeBSD), а также источник данных — DVD/USB или Интернет. В программе разметки дисков есть даже возможность форматирования разделов в ZFS (рекомендуется для 64-разрядных машин с 4 Гб оперативной памяти), вместо используемой по умолчанию UFS. Кстати, UFS довольно сильно отличается от привычных пользователям Linux-вариантов. Не будем заострять внимание на технических особенностях, нам достаточно знать, что внутри одного раздела здесь создаётся несколько файловых систем (так называемых слайсов).
Дальнейшие шаги установки также типовые: создание пользователей, выбор сред рабочего стола (доступны KDE 4.7.3, GNOME 2.32, XFCE 4.8, LXDE 0.5.5 и некоторое количество не поддерживаемых разработчиками проекта оконных менеджеров). Стоить отметить возможность установки драйверов HPLIP, Handheld, Nvidia, а также Compiz и гостевых дополнений для VMWare/VirtualBox OSE и т. п. Любители поковыряться с системой могут поставить исходные тексты базовой ОС и древо портов FreeBSD (впрочем, особой необходимости в этом нет).
После первой загрузки пользователь увидит окно настройки дисплея и сможет выбрать используемый видеодрайвер, разрешение и глубину цветов. Для входа в систему служит GDM (даже если установить только предлагаемую по умолчанию KDE, что лично мне показалось странным).
Описывать среды рабочего стола я не стану — они одинаковы и в Linux, и в FreeBSD. Интересно другое, в PC-BSD 9.0 были значительно доработаны средства управления пакетами: поддерживается обновлённая версия собственного формата PBI и есть репозиторий приложений. Основная идея здесь — включение всех необходимых библиотек в один пакет, что освобождает от зависимостей и упрощает процедуру установки, обновления и удаления программ. В последней версии PC-BSD реализован механизм совместного использования библиотек и файлов разными пакетами, поддерживается обновление через установку бинарных патчей для пакетов и установки ПО в один клик с сайта pbidir.com/. Также появились мета-пакеты и другие полезные вещи.
Разумеется, возможность установки ПО из портов/пакетов FreeBSD сохранена. Самое главное — в PC-BSD 9.0 есть графические средства для бинарного обновления базовой системы. Напоследок стоит отметить наличие удобной панели управления для настройки ОС, напоминающей аналогичный по назначению инструмент Ubuntu “Кафе приложений” (AppCafe), а также утилиты для автоматизированного обновления и средств настройки резервного копирования на FreeNAS или другую работающую через SSH/rsync систему. Из всех рассмотренных вариантов, PC-BSD — наиболее зрелая ОС. Единственная серьёзная к ней претензия — довольно убогие (на мой вкус) шрифты и темы оформления рабочего стола. Впрочем, эту проблему решить несложно.
Выводы
Сравнение FreeBSD с пользовательскими дистрибутивами GNU/Linux будет не в пользу “фряшки” из-за аппаратной (список поддерживаемого оборудования здесь более короткий) и программной (далеко не все доступные для Linux приложения есть под FreeBSD) проблем. Режим бинарной совместимости с Linux позволяет решить большую часть проблем с наличием софта, хотя и не все. Лично мне понравилась PC-BSD 9.0, которую можно считать зрелой пользовательской ОС с развитыми графическими средствами управления системой и установленными приложениями. Идея формата пакетов PBI очень интересна — она позволяет избавиться от головной боли с зависимостями и устанавливать любой софт без риска сломать систему. Насколько я понимаю, подход позаимствован из Mac OS X и применим только там, где есть развитая базовая ОС. В состоящем из кубиков-пакетов GNU/Linux подобное едва ли возможно. Стоит ли менять Linux на FreeBSD? Скорее нет, чем да. Но ведь целью статьи не был “холивар” на тему “что лучше?” — мне хотелось найти ответ на вопрос о пригодности пользовательских сборок FreeBSD для десктопа. По-моему, на сей раз общественное мнение ошиблось и “жизнь” на FreeBSD есть.