Дистрибутивы Linux сегодня: определение и классификация
О том, что такое дистрибутивы Linux и как их классифицировать, написано бессчётное количество статей и web-страничек. Казалось бы, к чему ещё? Алексей Федорчук
🕛 26.11.2009, 15:56
Да к тому, что понятие дистрибутива меняется со временем, и классифицировать их приходится по разному. Так что - очередное сочинение на одну из вечных тем по состоянию на осень 2009 года.Испокон веков считается, что универсальные дистрибутивы должны отличаться друг от друга, по крайней мере, по одному из следующих критериев:
* комплектация пакетами, * программа установки и (или) конфигурирования, * система инициализации, * файловая иерархия, * система управления пакетами.
Удельный вес этих критериев, конечно, разный, но попробуем рассмотреть их в роли видоопределяющих признаков дистрибутива.
Начнём с последнего, как наиболее очевидного. Многие дистрибутивы имеют свои уникальные системы пакетного менеджмента, такие как pacman в Archlinux, netpkg в Zenwalk, portage в Gentoo. Или, как Slackware, не имеют их вовсе, что тоже можно считать уникальной особенностью.
Однако ничуть не меньшее число дистрибутивов используют одну из распространённых систем управления пакетами. Например, apt, происходящий из недр Debian, широко используется не только его прямыми потомками, но и такими изначально далёкими от него дистрибутивами, как Altlinux. А есть и дистрибутивы, в которых на равных правах может использоваться несколько систем пакетного менеджмента, например, в Fedora - yum, PackageKit и apt.
С файловой иерархией, то есть логической организацией каталогов и файлов, дело ничуть не лучше. Да, многие дистрибутивы существенно отличаются друг от друга в этом отношении, но не меньше систем сходных и даже идентичных. К тому же, это скорее не видоопределяющий признак, а тяжёлое наследие прошлого, с которым вот уже сколько лет тщетно борются посредством FHS (Filesystem Hierarchy Standard - Стандарт Иерархии Файловой системы).
В области схем инициализации разработчики дистрибутивов в рамках двух основных её стилей, System V и BSD, всегда проявляли недюжинную изобретательность. Однако ныне различие между ними всё больше нивелируется внедрением распараллеленной схемы Upstart.
Программа установки некогда считалась неотъемлемым атрибутом уважающего себя дистрибутива. Однако ныне многие из них, кому никто не отказывает в праве на самостоятельность, спокойно используют инсталляторы, унаследованные от материнских систем, и ничуть от этого не страдают. Что же до программ конфигурирования - эту роль всё чаще берут на себя графические утилиты, входящие в состав интегрированных сред типа GNOME и KDE, которые от дистрибутива никак не зависят.
Остаётся комплектация пакетами. Когда-то этот критерий работал: майнтайнеры комплектовали свои дистрибутивы чуть ли не штучно. Ныне пакеты во всех универсальных дисрибутивах одни и те же. Разве что есть дистрибутивы большие, как Mandriva или Fedora, и маленькие, как Ubuntu или Zenwalk. Но маленькие они только в комплектации, распространяемой на установочных носителях: всё, чего нет на них, имеется в репозиториях.
Да и большие дистрибутивы, как правило, тоже имеют маленькие варианты. Потому что и они имеют свои репозитории, откуда облегчённые варианты установочных носителей легко могут быть наращены до полноразмерных. Причем - как правило, более свежими версиями.
Более того, всё большее распространение среди всех дистрибутивов получают носители для чисто сетевой установки - своего рода большие загрузочные дискеты, обеспечивающие только загрузку системы и запуск инсталлятора. Все компоненты, помимо них, берутся в Сети - из штатного репозитория дистрибутива, и тут уж точно в заведомо последних версиях.
Вот мы и подошли к главному, на мой взгляд, видоопределяющему признаку:
Самостоятельный дистрибутив должен иметь собственный, независимый от других дистрибутивов репозиторий и средства автоматического доступа к нему, обеспечивающие установку пакетов и обновление системы.
Под наличием репозитория я подразумеваю не просто каталог, физически доступный на сервере и содержащий пакеты, а систему их хранения, обновления, пополнения и, главное, поддержания целостности и непротиворечивости в отношении зависимостей.
Системы, использующие для этих целей какие-либо сторонние репозитории, строго говоря, следует называть ремиксами или респинами.
Проблема классификации дистрибутивов активно обсуждалась несколько лет назад, чему тогда неоднократно отдавал дань и автор этих строк.
С тех пор много воды утекло, и хотя никого из помнящих те обсуждения не замочили, большинство рассматривавшихся критериев классификации дистрибутивов потеряло значение.
Так, утратило силу краеугольное, казалось бы, разделение дистрибутивов на пакетные, то есть распространяемые в виде прекомпилированных бинарников, и Source Based, целиком собираемые из исходных текстов. Во-первых, из всего разнообразия дистрибутивов Source Based, столь активно развивавшихся ещё лет 5 назад, сколько-нибудь значимые позиции сохранил только Gentoo. Прочие же
* либо эволюционировали в направлении развитых пакетных систем, подобно Archlinux; * либо заняли ниши скорее конструирования решений, нежели дистрибуции решений готовых, как RockLinux и T2; * либо, наконец, так и не обрели популярности в народе (Sorcerer, SourceMage) или утратили её (CRUX).
Во-вторых (и это главное): различие между пакетными и Source Based дистрибутивами стирается и по существу. Так, развитые средства управления бинарными пакетами, например, APT, обладают не менее продвинутыми средствами для их сборки из исходников, вплоть до полной перекомпиляции системы одной командой, как в Gentoo. Для которой, напротив, вполне доступны бинарные сборки, полностью избавляющие от необходимости компиляции.
Безнадёжно запутался вопрос о генетике дистрибутивов, и попытка их классификации по происхождению от того или иного предка была бы невозможной - настолько велико ныне взаимовлияние идей и решений в мире FOSS. Да и смысла в такой классификации не много: как гласит мудрость Востока,
дети похожи не на своих родителей, а на своё время.
К дистрибутивам это приложимо в ещё большей мере, чем к людям.
Ни малейшего смысла сегодня нет и в разделении дистрибутивов на "большие", укомплектованные всевозможным софтом, и "маленькие", содержащие лишь ограниченный набор оного. В каком бы виде ни распространялся установочный носитель, на заполненном до краёв DVD или на установочном компакте в пару сотен мегабайт, это различие нивелируют штатные пакетные репозитории. А ведь ранее мы видели, что последние - главный видообразующий признак любого дистрибутива, заслуживающего этого титула.
Даже столь значимое некогда, на мой взгляд, разделение на дистрибутивы "для всех", ориентированные на потребности некоего усреднённого пользователя, и дистрибутивы "для себя", изначально рассчитанные на индивидуализацию, ныне не имеет значения.
С одной стороны, благодаря развитию средств конфигурирования и управления пакетами, большинство современных дистрибутивов "для всех" при потребности и желании можно индивидуализировать, не затратив больших усилий.
С другой же стороны, успешные дистрибутивы "для себя", набирая критическую массу пользователей, неизбежно превращаются в дистрибутивы "для всех". В противном случае, как показало время, их ждёт тихое увядание после того, как создатель утрачивает интерес к своему созданию.
Так что в сухом остатке мы имеем только старое доброе разделение дистрибутивов по формату используемых пакетов - ведь как-то классифицировать дистрибутивы всё равно надо, хотя бы в целях упорядочивания изложения при выборе системы.
Однако в классификации по формату пакетов есть и практический смысл. Ведь если считать, что дистрибутив - это в первую очередь репозиторий пакетов, то именно формат последних и определяет средства и методы доступа к нему.
Благо, устоявшаяся классификация по формату пакетов существует давно, включая дистрибутивы:
* rpm based; * deb based * tarball based.
Первые две группы, как легко догадаться, используют пакеты в одноименных им форматах. В третьей группе объединены дистрибутивы, использующие более или менее простые тарбаллы.
Конечно, при таком разделении несколько повисают в воздухе Gentoo и другие реликты эпохи расцвета "исходничества", а также дистрибутивы, использующие пакеты с "нетрадиционными" суффиксами в названии, вроде Pardus. Однако первые, распространяясь в бинарном виде, используют обычные тарбаллы. Тарбаллами же, при ближайшем рассмотрении, оказываются и вторые. Так что всех их можно смело включать в третью группу.
Впрочем, последние годы принесли ещё один, дополнительный, критерий классификации - по принципу подхода к установке. На протяжении многих лет инсталляторы наиболее прогрессивных дистрибутивов предоставляли пользователю всё большие возможности выбора пакетов. Их можно назвать Системами Селективной инсталляции (ССИ). Самым ярким их представителем является Debian.
Однако незадолго до середины текущего десятилетия наметилась прямо противоположная тенденция: появились дистрибутивы с безальтернативной установкой фиксированного набора приложений. Я бы назвал их Системами Быстрого Равёртывания (СБР - копирайт на обе аббревиатуры мой). Их типичные представители - Zenwalk и все варианты Ubuntu.