CITKIT.ru - свободные мысли о свободном софте
Деловая газета CitCity.ru Библиотека CITForum.ru Форумы Курилка
Каталог софта Движение Open Source Дискуссионный клуб Дистрибутивы Окружение Приложения Заметки Разное
17.09.2019

Последние комментарии

ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)
24 December, 22:53
Kubuntu Feisty (15)
24 December, 18:42
Один на один с Windows XP (3758)
24 December, 11:46

Каталог софта

Статьи

Дискуссионный клуб
Linux в школе
Open Source и деньги
Open Source и жизнь
Windows vs Linux
Копирайт
Кто такие анонимусы
Лицензии
Нетбуки
Нужен ли русский Linux?
Пользователи
Дистрибутивы
Идеология
Выбор дистрибутива
Archlinux & CRUX
Debian
Fedora
Gentoo
LFS
LiveCD
Mandriva
OpenSolaris
Slackware
Zenwalk
Другие линуксы
BSD
MINIX
Движение Open Source
История
Классика жанра
Окружение
shell
Библиотеки UI
Графические среды
Шрифты
Приложения
Безопасность
Управление пакетами
Разное
Linuxformat. Колонки Алексея Федорчука
Заметки
Блогометки
Файловые системы
Заметки о ядре

Дистрибутивы :: BSD :: FreeBSD

FreeBSD как она есть
Героиня выходит на сцену

CITKIT.ru

Страницы: предыдущая :: 1 :: ... :: 3 :: 4 :: 5 :: 6 :: 7 :: следующая

Содержание

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, ведущего учёт и контроль в этой системе, на момент, когда пишутся эти строки (2008/09/26), насчитывает 19209 наименований. А поскольку каждому порту, за немногими исключениями, соответствует прекомпилированный бинарный пакет, то это число можно распространить и на них. Правда, с некоторым округлением в нижнюю сторону: в дереве портов иногда представлено несколько версий одной и той же программы, тогда как в коллекцию пакетов, как правило, включена лишь одна из них.

Для сравнения: в стабильной ветке Debian — одном из самых полных дистрибутивов Linux, — на то же самое время имеется 23159 пакетов (Generated: Fri Sep 26 10:35:16 2008 UTC). Может создаться впечатление, что по широте охвата программного обеспечения FreeBSD существенно (примерно на 20%) отстаёт от Linux'а (по крайней мере, в лице Debian'а). Однако это не совсем так: порты и пакеты FreeBSD в большинстве случаев соответствуют авторским пакетам в том виде, в каком они скомпонованы их разработчиками. Система же пакетного менеджмента Debian допускает дробление авторского пакета на несколько (иногда — много) пакетов дистрибутивных, поэтому суммарное количество последних оказывается существенно больше, чем число охваченных программ. По личному опыту могу заметить: за всё время общения с FreeBSD не было еще случая, чтобы заинтересовавшая меня программа (порой весьма узкоспециальная) не обнаруживалась бы в дереве портов FreeBSD, тогда как с репозиторием Debian такое, хоть и редко, но случалось.

Я говорю об этом так подробно, дабы подчеркнуть, что пользователю FreeBSD доступны абсолютно все свободные программы, которыми комплектуются самые полные дистрибутивы Linux. Единичные исключения касаются программ проприетарных, распространяемых исключительно в бинарном виде, без исходных текстов и написанных для использования сугубо в Linux'е (подчас даже в определённых его дистрибутивах). Однако в большинстве случаев и их можно запустить в так называемом режиме совместимости с Linux, причем почти без потери производительности (некоторые даже утверждают, что с её приростом, но я на этом настаивать не буду).

При этом потенциальный пользователь FreeBSD должен понимать, что программы, устанавливаемые в этой ОС из портов или пакетов — абсолютно те же самые, что он видит в любом дистрибутиве Linux'а, ибо и там, и там они собраны из одних и тех же исходных текстов: нет какого-либо специально FreeBSD'шного Xorg или KDE, GIMP или OpenOffice.org. Конечно, в портах могут присутствовать системно-специфические патчи, как могут различаться и опции конфигурирования при сборке пакетов — но эти явления имеют место быть и в большинстве дистрибутивов Linux.




Страницы: предыдущая :: 1 :: ... :: 3 :: 4 :: 5 :: 6 :: 7 :: следующая

Комментарии

Страницы комментариев: 1 :: 2 :: 3 :: следующая

аноним, Mon Jan 5 08:43:39 2009:
а вообще чего вы хотите от этого ведь это полный бред
Виктор Коновалов, Sat Dec 20 06:23:01 2008:
Эхх... почитаешь эдакое и поневоле забываешь о подводных камнях и острых углах.
Это я о том, что на практике вырисовывается ситуация:
на бюджетно-ширпотребное железа _особенно_
на шине USB дров НЕТ.
Точнее они появляются через год-два после того как железка уже ушла из топа прайсов, а то и вообще из продажи пропала.
Похоже пока фря не отвоюет заметный сегмент десктопного рынка внимания на неё не обратят...
8-(
nitrate, Sat Nov 22 16:52:34 2008:
2 аноним
>>"пес...то" - не понял
синоним "очень хорошо"

беллетристика может и присутствует...ну так этож не howto. так что критику, мол, "раздуто", - фтопку. идеальных работ не бывает, ибо все мы пока еще по земле ходим. лично я читаю и пока доволен. Алексей, спасибо.
Алексей Федорчук, Mon Nov 17 08:57:33 2008:
2 аноним, суббота, 15 ноября 2008 г. 19:11:38:
Спасибо, поправил
аноним, Sat Nov 15 19:11:38 2008:
"в дереве портов иногда представлено несколько версий одной и той же программы, тогда как в коллекцию портов, как правило, включена лишь одна из них"

по смыслу здесь вместо одного из слов "портов" должно фигурировать слово "пакаджей".
аноним, Sun Nov 9 21:38:16 2008:
Отличная статься, по крайней мере для меня, совершенно не знакомого с nix, но "пес...то" - не понял
аноним, Sun Nov 9 21:36:22 2008:
не понял "пес...то"
аноним, Sat Oct 25 11:52:46 2008:
Вадим, суббота, 25 октября 2008 г. 10:58:51:
"Однако я, во-первых, существенно забежал вперёд.... а во-вторых, отдалился от основной темы главы нынешней..."

"техническая" беллетристика
------

каждый человек думает - как умеет. так и пишет. хоть че-то написал.
аноним, Sat Oct 25 11:46:54 2008:
2 Вадим

Должны же за что то платить. За количество страниц, например:D И за перевод.
Вадим, Sat Oct 25 10:58:51 2008:
Ужасный авторский стиль, очень много воды, статья раздута.

"Однако я, во-первых, существенно забежал вперёд.... а во-вторых, отдалился от основной темы главы нынешней..."

"техническая" беллетристика

Страницы комментариев: 1 :: 2 :: 3 :: следующая

Комментарии заморожены.

Новости:

Все новости на CitCity.ru

Компании месяца

 
Последние комментарии
Почему школам следует использовать только свободные программы (101)
20 Декабрь, 14:51
ОСТОРОЖНО: ВИНДОФИЛИЯ! (2250)

24 Декабрь, 22:53
Linux в школе: мифы про школу и информатику (334)
24 Декабрь, 22:43
Kubuntu Feisty (15)
24 Декабрь, 18:42
Software is like sex: it's better when it's free.
©Linus Torvalds