Свободная система для свободных людей

(С) Костромин В.А.
март 2005 г.
Линуксцентр

2005-05-24

назад | к началу | вперед

Дистрибутивостроение

В разделе о первых дистрибутивах было сказано, что к моменту выхода первой версии ядра Linux уже были выпущены несколько дистрибутивов: Debian, MCC, Slackware, Software Landing Systems (SLS), SUSE, TAMU, Yggdrasil. Основным способом распространения этих дистрибутивов были комплекты дискет. Интернет тогда только начинался, тем не менее все производители дистрибутивов уже тогда размещали дистрибутивы и на ftp-сайтах, а также на досках объявлений. Это был второй способ распространения Linux: пользователям надо было скачать всего около 50 МБайт (правда, через модем!).

Вскоре появился и третий, наиболее перспективный способ распространения Linux - на CD-ROM. По крайней мере 4 компании начали поставлять дистрибутивы на отдельном CD-ROM. Естественно, при этом появилась возможность добавить в дистрибутив массу дополнительных программ и документации, например, систему X-Windows, исходные коды программ, архивы документации с Интернет-сайтов, программное обеспечение от независимых производителей и многое другое. Первыми компаниями, которые начали выпускать дистрибутивы на CD, были: InfoMagic, Morse Telecommunication, Nascent, Red Hat Software, Trans-Ameritech, Walnut Creek и Yggdrasil Computing, Inc. Эти диски продавались по цене от 20 до 40 долларов. В сравнении со стоимостью дистрибутива на дискетах, который стоил 20 долларов, это было не дорого (правда, односкоростной дисковод для CD-дисков стоил еще 100 долларов, но ведь установка Linux была не единственным поводом для его покупки).

Стоит отметить, что нумерация дистрибутивов не была никак связана с нумерацией версий ядра. Например, версия дистрибутива могла иметь вид "the Fall 1993 release" или "the 2.0 release", хотя еще не было выпущено даже ядро версии 1.0. Иногда это приводило к некоторой путанице.

Самым широко известным из Linux-дистрибутивов является дистрибутив Red Hat Linux, выпускаемый одноименной команией. Фирма Red Hat была основана Марком Ивингом (Marc Ewing), а в 1995 году была куплена фирмой ACC Bookstores, принадлежавшей Бобу Янгу (Bob Young). В течение следующего десятиления, выпуская одну версию своего дистрибутива за другой, компания заработала для своих продуктов репутацию хорошей основы для создания разного рода серверов, легко устанавливающихся и обладающих неплохим набором инструментов для конфигурирования. RedHat - это самая известная и самая большая из компаний, чей бизнес полностью основан на Linux. Это первый из производителей дистрибутивов, акции которого котируются на бирже, и одна из немногих компаний, которой удалось достичь успеха в бизнесе на основе Linux. На примере ее дистрибутивов можно проследить, как шло развитие дистрибутивв вообще.

Первый публичный релиз Red Hat Linux появился чуть позже выхода дистрибутива Slackware, но задолго до того, как Linux получил сколь-нибудь широкое распространение. Хронология выхода дистрибутивов Red Hat приведена в следующей таблице, заимствованной с сайта fedora.redhat.com (источник):

Таблица 4. Хронология выхода дистрибутивов Red Hat.

22 сентября 2003 года фирма объявила о разделении своих продуктов на две линейки: полностью открытый и свободный проект Fedora Core и коммерческий, предназначенный для использования корпорациями, Red Hat Enterprise Linux (RHEL). Это решение вызвало противоречивые отклики в рядах сторонников Linux. Некоторые посчитали, что Red Hat полностью переориентировалась на корпоративные применения и бросила индивидуальных пользователей на произвол судьбы. Однако время показало, что ничего страшного не произошло, индивидуалы успешно перешли на Fedora Core (или другие дистрибутивы), а фирма Red Hat продолжает оказывать материальную поддержку проекту Fedora Core. И в материальном плане фирма от такого разделения только выиграла - ее доходы в первое время только возросли. Но в первом квартале 2005 года появились собщения о том, что некоторые корпорации вместо приобретения Enterprise Linux стали использовать на корпоративных серверах Fedora Core.

Red Hat - это только один (пусть и один из самых заметных) из огромного числа дистрибутивов, появившихся за эти годы. Как пишут в своих воспоминаниях многие разработчики дистрибутивов, они занялись созданием собственного дистрибутива потому, что их не устраивали те системы, которыми они пользовались. А поскольку такая неудовлетворенность естественно возникает у многих людей с творческой жилкой, число новых дистрибутивов постоянно растет. По состоянию на 14 января 2005 года сайт DistroWatch.com (на котором ведется учет разных дистрибутивов) насчитывал 373 дистрибутива. Поддержка некоторых из них уже прекращена, но все же еще более 300 разработок были “живы”. Только за 2004 год появилось более сотни новых дистрибутивов. И это еще не конец, потому что чуть ли не ежедневно появляются новые и новые дистрибутивы!

Однако совершенно новые системы возникают все же очень редко - в большинстве случаев разработка начинается на основе одного из ранее существовавших дистрибутивов. Таким образом сложились несколько "родовых семейств" дистрибутивов. Основных семейств три, их основоположниками являются три старейших дистрибутива: Red Hat, Debian и Slackware. На приводимом ниже рисунке 16 приведены обощенные данные о развитии этих "семейств". Цифры в окружностях в нижней части рисунка показывают число "потомков" основных дистрибутивов (по данным сайта DistroWatch за март 2005 года).

Рис. 16. Хронология развития основных дистрибутивов Linux.
(Перечни дистрибутивов в группах, образованных по признаку "происхождения", приведены на сайте DistroWatch.com.)

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

Наиболее известными (или распространенными) системами управления пакетами являются:

  • RPM/YUM — менеджер пакетов Red Hat. Сейчас аббревиатура RPM расшифровывается обычно рекурсивно (RPM = RPM Package Manager), но первоначально ее расшифровывали как менеджер пакетов Red Hat (Red Hat Package Manager), поскольку разработана она была для дистрибутива Red Hat. В настоящее время она используется и во многих других дистрибутивах.
  • dpkg/APT — система управления пакетами *.deb дистрибутива Debian, тоже портированная в настоящее время в другие дистрибутивы. Пакеты .deb представляют собой просто два tar-архива, сжатых с помощью gzip: в одном архиве содержится управляющая информация, в другом - данные. Стандартным средством управления такими пакетами является консольная программа dpkg, дополненная оболочкой APT (Advanced Packaging Tool).
  • tgz или tar.gz — стандартный набор из двух программ tar + gzip, иногда дополненный некоторыми дополнительными управляющими файлами. Используется в дистрибутиве Slackware и некоторых других, не обеспечивает разрешения зависимостей. От Source-based дистрибутивов эта система отличается тем, что внутри tar.gz-архивов находятся заранее скомпилированные программы.
  • система портежей дистрибутива Gentoo, которая представляет собой набор файлов ebuild, содержащих информацию о том, как получить (из любых доуступных источников - сети, локального диска и т.д.), скомпилировать и установить пакет в системе Gentoo, используя консольную команду emerge. Обычно пакет ПО в этом случае содержит исходные коды программ, и приложение компилируется прямо в процессе инсталляции, за счет чего оптимизируется для конкретной машины. Хотя этим способом могут устанавливаться и заранее откомпилированные программы, но такой вариант используется только в исключительных случаях, например, при инсталляции системы на очень медленные машины.
  • YaST - утилита, разработанная Novell и используемая в дистрибутиве SuSE.
  • Source-based дистрибутивы не имеют специальных средств управления пакетами, в них все программы компилируются из исходных кодов. Примерами таких дистрибутивов являются дистрибутивы Linux From Scratch или LFS (это даже не дистрибутив, а руководство по сборке собственного дистрибутива), Lunar, Sorcerer, Source Mage.

Еще одно различие между основными "семействами" дистрибутивов свзано с используемой со способом организации и размещения сценариев (или скриптов) начальной инициализации системы. Большая часть дистрибутивов Linux использует на этапе загрузки стиль System V. К этому классу относятся Debian, все клоны Red Hat, включая Mandrake и российские дистрибутивы ASPlinux и ALT Linux. В стиле BSD организована загрузка в дистрибутиве Slackware и его производных. Однако тот или иной стиль сценариев начальной загрузки выдерживается не очень четко. Поскольку стиль System V взят за основу при создании стандарта LSB (Linux Standart Base), дистрибутивы, ранее использовавшие стиль BSD, в последнее время заботятся о совместимости с System V. Slackware обеспечивает такую совместимость начиная с версии 7.0.

назад | к началу | вперед