2005 г.

Дистрибутивы Linux: и опять классификация!

Дмитрий Царьков aka ddc aka czarker

Из десяти девять не знают отличия тьмы от света,
истины от лжи, чести от бесчестья, свободы от рабства.
Такоже не знают и пользы своей."
Трифилий, раскольник


If I have seen further it is by standing
on ye shoulders of Giants."
Isaac Newton

Оглавление

  1. Вступление
    1. Необходимые пояснения
    2. Базис
  2. Методология
    1. Варианты
    2. Авторское видение
  3. Классифицируем!
    1. Установка, обновление и удаление
    2. Живой диск
    3. Учёт и контроль
  4. Итого

Вступление

Необходимые пояснения

Вообще-то эта статья изначально готовилась как краткий анализ результатов опроса, проведённого на Linuxforum. Но суровая действительность в виде раскладки сил внесла свои коррективы.

Так или иначе, речь пойдёт о классификациях т.н. дистрибутивов Linux[1] во всём их многообразии, ограниченном компетентностью автора: мало того, что я пробовал не все дистрибутивы, так я ещё даже и не смотрел на дистрибутивы, позиционируемые как серверные и коммерческие. Поэтому классифицируем мы сегодня только дистрибутивы для индивидуального личного использования.

Базис

Как это ни странно, я вовсе не первый человек, заинтересовавшийся проблемой классификации дистрибутивов. И из всех сочинений на эту тему, написанных до сегодняшнего дня, я бы хотел выделить работы Виктора Костромина, известного под именем vicos (Периодическая таблица дистрибутивов Linux) и Алексея Федорчука, известного как alv (Еще раз про любовь, или что же такое дистрибутивы Linux).

Почему именно эти? На то есть две причины: во-первых, эти публикации исторически ближе всего подошли к дню сегодняшнему; во-вторых, все выводы, которые я собираюсь излагать в настоящей статье, были сделаны по итогам применения материалов этих статей к суровой действительности. Поэтому всем, кто дошёл до этой строки и всё ещё собирается читать дальше, я настоятельно рекомендую освежить в памяти указанные материалы.

Итак, к делу!

Методология

Варианты

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

  • ориентация (или назначение) дистрибутива на конкретную область применений
  • требования к аппаратному обеспечению
  • используемая графическая оболочка
  • наличие средств локализации, обеспечивающих поддержку необходимых вам языков
  • носитель, с которого может запускаться система
  • организация процедуры начальной загрузки системы (BSD или System V)
  • используемая система управления пакетами
  • структура каталогов файловой системы
  • родословная или история происхождения дистрибутива
  • состав базового устанавливаемого ПО
  • доступность дополнительных пакетов
  • наличие и состав коммерческих программ, включенных в дистрибутив
  • процедура определения аппаратуры
  • предоставляемые инструменты управления системой

Более сдержанно подходит к вопросу Алексей:

  • Способ комплектации
  • Назначение

Естественно, я не согласен с обоими авторами (а как бы иначе появилась эта статья?). Однако в большей степени я не согласен с Виктором, который предлагает классифицировать дистрибутивы преимущественно по внешним признакам. Действительно, насколько чувствительны отличия, связанные с используемой графической оболочкой по умолчанию (благо дистрибутивов, не предлагающих выбор из букета различных графических оболочек, практически не осталось)? Так ведь можно дойти и до классификации по цвету фона рабочего стола по умолчанию.

Не согласен я и с Алексеем, поскольку назначение дистрибутива очень слабо поддаётся типизации: все дистрибутивы личного пользования рассчитаны на взаимодействие с пользователем, причём подавляющее большинство дистрибутивов не требует от своего пользователя каких бы то ни было знаний о Linux (в противовес общим знаниям об устройстве компьютера и базовых навыков управления им, которые требуются от пользователя любого дистрибутива). Между тем "способ комплектации", на мой взгляд, заслуживает куда более пристального внимания.

Авторское видение

Своё видение вопроса критериев классификации дистрибутивов я составил уже относительно давно. Однако процесс решения задачи предполагает построение ответа на доказательстве. Итак, приступим.

Для начала, стоит определиться с тем, чем в принципе могут отличаться дистрибутивы. Можно отталкиваться от особенностей дерева каталогов (что позволяет воссоздать генеалогическое древо дистрибутивов Linux), можно рассматривать скрипты инициализации (чтобы поделить все дистрибутивы на BSD-like и SysV-like и спорить до посинения, что же должны использовать ЧИСТА КАНКРЕТНЫЕ ПАЦАНЫ и c00l hAx0rS), однако такое деление не поможет нам сформировать хоть сколько-нибудь полезную классификацию. Можно, как предлагал Виктор, исходить из фенотипа: происхождения дистрибутива, выбора ПО в базовой поставке, оконного менеджера по умолчанию и стандартных "обоев". Но если поразмыслить трезво, то неожиданно окажется, что эти фенотипические черты являются очень абстрактными: через пару месяцев работы от изначальных настроек почти ничего не останется, появится дополнительное ПО, а что-то из базового комплекта так и не окажется установленным, т.е. фенотип изменится. А имеет ли смысл классифицировать дистрибутивы по признакам, которые так быстро исчезают?

С другой стороны, можно рассмотреть средства и способы установки, конфигурирования и поддержания в работоспособном состоянии дистрибутивов дабы получить деление на "администраторские" и "пользовательские" дистрибутивы. Однако такое разделение требует не только досконального знания каждого дистрибутива, но и некоторого объективного измерителя "пользователь <-> администратор", чем едва ли кто-то может похвастаться.

И вот, рассмотрев обе стороны монеты, я пришёл к выводу: надо брать эту монету за третью сторону. ;-) На мой взгляд, классификация дистрибутивов должна быть основана на анализе подсистемы установки и удаления программ. Но только отличие более системное, нежели предложил Алексей. Как это будет выглядеть? Смотрите...

Классифицируем!

Установка, обновление и удаление

В этом отношении мы можем выделить несколько оснований для классификации:

  • Учёт. Дистрибутив может предлагать средства учёта установленных пакетов для сборки из исходных кодов, из бинарных пакетов или для каждой из этих категорий[2].
  • Степень автоматизации. Фактически вопрос сводится к тому, кто ищет пакет, подлежащий установке: пользователь или система управления пакетами.

Таким образом, у нас сформировалось шесть делений классификации. Дадим им названия[3]:

Из исходников Смешанный тип Бинарные
Автоматическая закачка пакетов BSD-подобные APT-основные Репозитарные
Ручная закачка пакетов Самодельные RPM-основные Классические

Приведём примеры на каждую группу:

BSD-подобные Gentoo, SourceMage, MyGeOs, CRUX
APT-основные ArchLinux, Debian, Alt, Ubuntu, MyGeOs-B
Репозитарные Slackware[5], VectorLinux
Самодельные Linux From Scratch, LRs-Linux
RPM-основные FEDORA, Mandriva, Novell/SuSE, ASPLinux
Классические GoboLinux, Stampede, Yoper

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

Живой диск

В последнее время стали всё более популярны LiveCD - дистрибутивы, загружающиеся с компакт-диска (основные представители - Knoppix, Mepis, SLAX и популярный в наших краях BLin). Виктор предложил выделить LiveCD в отдельную группу дистрибутивов, однако что-то подсказывает мне, что он тут (и тут тоже - и опять в отличие от меня! ;-)) оказался неправ.

Дело в том, что все эти LiveCD представляют собой скорее способ загрузки соответствующей системы[4] (Debian в случае Knoppix и Mepis, Slackware - SLAX и т.д.), т.е. наследуют все особенности и характерные черты родителей, а будучи установленными на жёсткий диск окончательно превращаются в свои прототипы. И поэтому я принял решение отказать LiveCD в праве считаться особым видом дистрибутивов.

Учёт и контроль

Но ведь каждые результаты нуждаются в проверке! И вот здесь мы вспомним мою первоначальную задачу - подведение итогов голосования.

Для начала приведём собственно результаты опроса:

Название Голоса Проценты
Microsoft Windows NT/2000/XP 35 20,23%
Gentoo Linux 29 16,76%
FreeBSD 16 9,25%
Slackware Linux 12 6,94%
Alt Linux 11 6,36%
MandrakeLinux 11 6,36%
ArchLinux 10 5,78%
Debian GNU/Linux 9 5,20%
Microsoft Windows 9x/ME 8 4,62%
ASPLinux 7 4,05%
SuSE Linux 7 4,05%
Red Hat / FEDORA 6 3,47%
DragonFlyBSD 2 1,16%
Linux From Scratch 2 1,16%
Ubuntu 2 0,58%
NetBSD 1 1,16%
MacOS X 1 1,16%
BeOS 1 0,58%
Plan9 1 0,58%
OpenBSD 0 0,00%
Другая ОС 2 0,58%

И что же мы видим? Какие выводы мы можем сделать из наблюдаемой картины? А выводы самые разные.

  1. Во-первых, мы видим, что не более 47 человек (а на самом деле меньше, но не меньше 35) пользуется Windows. Т.е. Linux, BSD или MacOS X не делят жёсткий диск с продуктами Microsoft на трети (а возможно и половине) компьютеров респондентов.
  2. Во-вторых, характерно, что FreeBSD вышла на второе место среди NIX-like (и, соответственно, на третье место в общем зачёте). По свидетельствам очевидцев, этот опрос можно считать первым, который показал такие хорошие для FreeBSD результаты.
  3. В-третьих, достаточно интересно разложились голоса между дистрибутивами Linux. Так, доля дистрибутивов, активно использующих RPM, очень резко сократилась, а доля Gentoo - сильно выросла. Более того, Gentoo оказался победителем среди *NIX! Всегда считавшийся слишком сложным и "дорогим" в терминах ресурсоёмкости, этот дистрибутив обогнал своего преследователя почти вдвое.
  4. В-четвёртых, окончательно выветрились прочие дистрибутивы Linux.

Что касается Windows, FreeBSD, MacOS X и вопросов совместного проживания разных ОС, вопросов практически не возникает. Отчасти это продиктовано отсутствием внятной статистики по этим вопросом, отчасти прозрачностью самих вопросов: свободные UNIX-подобные системы в последнее время оказались достаточно развиты для того, чтобы необходимость использования Windows для большинства домашних пользователей просто отпала. В то же время, проекты *BSD наконец-то разделались с вопросом обновления кода и актуализации аппаратной базы, что позволило им вступить в конкуренцию с дистрибутивами Linux, нацеленными на "продвинутых" пользователей. Что же касается MacOS X, то речь идёт о качественной и стабильной ОС, которая, благодаря переходу от устаревшей классической платформы к BSD-подобной Mach2-основной *NIX-среде Darwin, обеспечению совместимости с X11 в реализации от XFree86 и прочим технологическим новшествам повсеместно завоёвывает всё новых и новых поклонников.

Однако в плоскости рассматриваемого вопроса эти результаты сами по себе ценности не представляют, поскольку отражают лишь статику - текущие позиции дистрибутивов, которые слишком от многих факторов зависят, чтобы быть информативными. А потому я позволю себе привести табличку, которая обобщает эти результаты с результатами опросов, опубликованными В. Костроминым в статье "Какие дистрибутивы Линукс используются в России?"[6].

Вариант ответа 1999 2000 2002 2005
Gentoo Linux -- -- 0,3% 27,4%
Slackware 16,0% 22,1% 13,6% 11,3%
Alt Linux -- -- 13,6% 10,4%
Debian 8,1% 8,6% 12,6% 10,4%
Mandrake 8,8% 16,8% 16,3% 10,4%
ArchLinux -- -- -- 9,4%
ASPLinux -- 1,0% 11,3% 6,6%
Suse 3,4% 5,6% 4,3% 6,6%
Red Hat / FEDORA 46,1% 29,1% 25,5% 5,7%
LFS 1,7% н.д. н.д. 1,9%
Другой 0,3% 1,4% 0,3% 0,0%

Что мы видим? А ничего!!! Но теперь наложим на результат мою классификацию:

Вариант ответа 1999 2000 2002 2005
APT-основные 8,12% 8,61% 26,2% 30,2%
RPM-основные 72,6% 66,7% 59,5% 29,3%
BSD-подобные 0,0% 0,0% 0,3% 27,4%
Репозитарные 0,0% 0,0% 0,0% 11,3%
Самодельные 1,7% н.д. н.д. 1,9%
Классические 17,5% 24,8% 13,9% 0,0%

О, чудо! Просматривается ряд актуальных тенденций:

  • Во-первых, растёт доля пользователей BSD-подобных и APT-основных дистрибутивов.
  • Во-вторых, стремительно падает доля RPM-основных дистрибутивов.
  • В-третьих, доля самодельных дистрибутивов практически не меняется.
  • В-четвертых, доли классических и репозитарных дистрибутивов говорят о том, что их пользователи скорее сохраняют лояльность по отношению к бренду, нежели к стилю работы с менеджером ПО - вместе со смещением Slackware из одного сектора в другой сместилась и аудитория.

Итого

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

Примечания

[1] Вообще-то автор склонен считать, что операционной системы "Linux" нет, а есть ОС GNU, одна из реализаций которой - GNU/Linux (или, как это теперь модно, GNU-Linux) - стала широко дистрибьюироваться. Так или иначе, словосочетание "дистрибутив Linux" устоялось, и именно его автор намеревается использовать в дальнейшем.

[2] Но в применении этого правила нужно соблюдать некоторую тонкость, которую мы продемонстрируем на примере Gentoo: система портэжей имеет возможности по учёту как собранных исходных кодов, так и установленных бинарных пакетов. Однако все "вкусности" emerge (флаги USE, глубокая оптимизация, автоматическое скачивание) доступны только для исходных кодов, тогда как бинарные пакеты используются чаще для быстрого развёртывания сети в однородном парке, что обуславливает ограниченность системы управления ими.

[3] К этим названиям не стоит относиться слишком буквально. Например, не все дистрибутивы, усиленно использующие RPM, относятся к группе т.н. RPM-основных, и не все дистрибутивы, относящиеся к этой группе, поддерживают RPM. Вообще названия даны исходя скорее из общих принципов построения.

[4] Также они бывают узкоспециализированными, или даже серверными, но это уже совсем отдельный разговор - ведь нашей целью является изучение дистрибутивов для личного использования.

[5] Прежние версии Slackware и его ответвлений стоит относить к "Классическим" дистрибутивом (собственно отсчёт в этой категории ведётся именно от Slackware), однако инструмент slapt-get, который уже прокрался в сердца пользователей, позволил им перейти в категорию "Репозитарных" дистрибутивов. В скором времени аналогичный переход (но уже не в репозитарные, а в "Смешанные" ожидает и FEDORA с теми её клонами, которые обзавелись APT-get'ом, но пока этот инструмент играет второстепенную роль.

[6] В целях обобщения данных, некоторые строки были удалены, некоторые переименованы. В тех же целях Debian был объединён с Ubuntu. Также коррекции были подвергнуты и столбцы: были убраны абсолютные единицы измерения.
Читатель не должен удивляться тому, что значения по одним и тем же дистрибутивам в сводной таблице оказываются выше, чем в таблице результатов последнего голосования: это происходит потому, что в сводной таблице в 100% не входят варианты BSD, MacOS X и прочие не-linux-основные ОС.

Связь с редакцией