За свободный десктоп, или FreeBSD на столе

Компоненты Distributions в подавляющем своем большинстве — оригинальные разработки проекта FreeBSD и его исторических предшественников. Говоря о классических утилитах Unix, я не случайно употребил термин «аналоги» — это, как правило, функционально расширенное их воспроизведение (достаточно посмотреть на утилиту more, которая по своим функциям гораздо более походит на Linux’овый less, нежели на свою тезку из систем-потомков System V). Самобытность компонентов Distributions подчеркивается лицензией, под которой они распространяются, и которая носит имя BSD-лицензии. В отличие от широко известной лицензии GPL, она не возбраняет распространение основанных на ней разработок без исходных текстов (здесь не место обсуждать вопрос о том, какая из этих лицензий более соответствует идеалам свободы и демократии). Справедливости ради нужно заметить, что в состав FreeBSD Distributions исторически входит некоторое количество компонентов, заимствованных из разработок проекта GNU и, соответственно, подпадающих под лицензию GPL (наиболее показательный пример — компилятор gcc: это тот же самый компилятор, который входит в состав любого дистрибутива Linux). Однако существует устойчивая тенденция по замене GNU-программ оригинальными разработками FreeBSD (правда, именно до gcc, похоже, дело дойдет не скоро).

Еще одна отличительная особенность компонентов FreeBSD Distributions — система их документации. Все они сопровождаются полным описанием в классическом для POSIX-систем формате man-страниц. В программах GNU в последнее время можно заметить тенденцию подмены manual pages на документацию в формате info (ИМХО, самая GNU’тая из всех GNU-разработок). Однако даже GNU-программы, включенные в Distributions, содержат подробнейшие man-страницы — для примера сравните man (1) gcc из современных версий FreeBSD с оригинальным GNU man-pages для этого же пакета. Компоненты Distributions при инсталляции системы разворачиваются из бинарных тарбаллов. Однако предусмотрен механизм их автоматической тотальной пересборки с учетом пользовательских настроек — make world. Ну и, разумеется, перекомпиляция ядра системы (в текущих версиях — операция make buildkernel) — неотъемлемый атрибут индивидуального конфигурирования FreeBSD. Порты FreeBSD — концепция, воздействие которой на мир Open Sources трудно переоценить, и потому заслуживает особого рассмотрения. В текущем же контексте достаточно сказать, что это — система автоматического получения исходников (по Сети, с мастер-сайтов разработчиков), отслеживания их зависимостей, адаптации (то есть наложения FreeBSD-специфичных патчей), сборки (компиляции и линковки с разделяемыми библиотеками) и установки (то есть инкорпорации в файловую систему FreeBSD) практически любых программ, свободно распространяемых и доступных в исходных текстах.

Она предусматривает также генерацию бинарных пакетов, пригодных для автономного (с учетом зависимостей) распространения — именно в таком виде портированные программы входят в состав полного дистрибутива FreeBSD. Важно подчеркнуть, что если сама по себе система портов — неотъемлемая часть FreeBSD Distributions, то порт любой программы из ее состава не содержит ни исходных текстов, ни исполнимых модулей: исходники любой портированной программы — абсолютно те же самые, на которых основаны пакеты любого Linux-дистрибутива, а бинарники генерируются автоматически из системы портов. И потому во FreeBSD в принципе доступно все то же многообразие открытых и свободных программ, что и в Linux. Обособленность портированных программ от FreeBSD Distributions подчеркивается отличием лицензионных соглашений: все портированные программы распространяются под теми лицензиями, которые определены для них авторами (GPL — для программ из проекта GNU и соплеменных, лицензия X-консорциума — для оконной системы X, и так далее). Сам по себе FreeBSD Distributions — весьма мощный программный комплекс, пригодный для решения многих пользовательских задач. Разумеется, в его составе — низкоуровневые системные утилиты, утилиты для управления файловыми системами, процессами, получения информации и т.д.

Однако в Distributions можно найти множество пользовательских утилит — средства работы с файлами, включая столь универсальное, как find, весьма сложные программы обработки текстов — от экранного редактора ee и строчных редакторов ed и sed до awk, средства поиска текстовых фрагментов — grep, а также инструменты форматирования текстов (семейство groff). Имеется ftp-клиент, почтовая система sendmail, базовые средства работы с сетями (в том числе и для модемного соединения). Наконец, средств Distributions вполне достаточно для наращивания функциональности системы путем сборки программ. Для этого в нем предназначены компилятор gcc и полный комплекс утилит поддержки, начиная с языковых анализаторов и кончая универсальной make. Тем не менее, для комфортной работы (не говоря уже о развлечениях) средств Distributions явно недостаточно. И тут на помощь приходит система портов FreeBSD — в виде ли средства получения и сборки исходников, или как метод генерации бинарных пакетов. Установка программ из системы портов или в виде прекомпилированных пакетов во FreeBSD чрезвычайно проста — настолько, что прямо-таки провоцирует пользователя устанавливать и устанавливать программы. А поскольку она еще включает и развитые средства для «чистого» удаления всего того, что оказалось ненужным, развлечения эти проходят практически безболезненно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *