Дмитрий Царьков aka ddc aka czarker
Вообще-то эта статья изначально готовилась как краткий анализ результатов опроса, проведённого на Linuxforum. Но суровая действительность в виде раскладки сил внесла свои коррективы.
Так или иначе, речь пойдёт о классификациях т.н. дистрибутивов Linux[1] во всём их многообразии, ограниченном компетентностью автора: мало того, что я пробовал не все дистрибутивы, так я ещё даже и не смотрел на дистрибутивы, позиционируемые как серверные и коммерческие. Поэтому классифицируем мы сегодня только дистрибутивы для индивидуального личного использования.
Как это ни странно, я вовсе не первый человек, заинтересовавшийся проблемой классификации дистрибутивов. И из всех сочинений на эту тему, написанных до сегодняшнего дня, я бы хотел выделить работы Виктора Костромина, известного под именем vicos (Периодическая таблица дистрибутивов Linux) и Алексея Федорчука, известного как alv (Еще раз про любовь, или что же такое дистрибутивы Linux).
Почему именно эти? На то есть две причины: во-первых, эти публикации исторически ближе всего подошли к дню сегодняшнему; во-вторых, все выводы, которые я собираюсь излагать в настоящей статье, были сделаны по итогам применения материалов этих статей к суровой действительности. Поэтому всем, кто дошёл до этой строки и всё ещё собирается читать дальше, я настоятельно рекомендую освежить в памяти указанные материалы.
Итак, к делу!
Не секрет, что успех любой классификации определяется выбором признаков. Прежде чем заняться их подбором, посмотрим, как решили этот вопрос "гиганты". Вот список, который предлагает Виктор:
Более сдержанно подходит к вопросу Алексей:
Естественно, я не согласен с обоими авторами (а как бы иначе появилась эта статья?). Однако в большей степени я не согласен с Виктором, который предлагает классифицировать дистрибутивы преимущественно по внешним признакам. Действительно, насколько чувствительны отличия, связанные с используемой графической оболочкой по умолчанию (благо дистрибутивов, не предлагающих выбор из букета различных графических оболочек, практически не осталось)? Так ведь можно дойти и до классификации по цвету фона рабочего стола по умолчанию.
Не согласен я и с Алексеем, поскольку назначение дистрибутива очень слабо поддаётся типизации: все дистрибутивы личного пользования рассчитаны на взаимодействие с пользователем, причём подавляющее большинство дистрибутивов не требует от своего пользователя каких бы то ни было знаний о Linux (в противовес общим знаниям об устройстве компьютера и базовых навыков управления им, которые требуются от пользователя любого дистрибутива). Между тем "способ комплектации", на мой взгляд, заслуживает куда более пристального внимания.
Своё видение вопроса критериев классификации дистрибутивов я составил уже относительно давно. Однако процесс решения задачи предполагает построение ответа на доказательстве. Итак, приступим.
Для начала, стоит определиться с тем, чем в принципе могут отличаться дистрибутивы. Можно отталкиваться от особенностей дерева каталогов (что позволяет воссоздать генеалогическое древо дистрибутивов Linux), можно рассматривать скрипты инициализации (чтобы поделить все дистрибутивы на BSD-like и SysV-like и спорить до посинения, что же должны использовать ЧИСТА КАНКРЕТНЫЕ ПАЦАНЫ и c00l hAx0rS), однако такое деление не поможет нам сформировать хоть сколько-нибудь полезную классификацию. Можно, как предлагал Виктор, исходить из фенотипа: происхождения дистрибутива, выбора ПО в базовой поставке, оконного менеджера по умолчанию и стандартных "обоев". Но если поразмыслить трезво, то неожиданно окажется, что эти фенотипические черты являются очень абстрактными: через пару месяцев работы от изначальных настроек почти ничего не останется, появится дополнительное ПО, а что-то из базового комплекта так и не окажется установленным, т.е. фенотип изменится. А имеет ли смысл классифицировать дистрибутивы по признакам, которые так быстро исчезают?
С другой стороны, можно рассмотреть средства и способы установки, конфигурирования и поддержания в работоспособном состоянии дистрибутивов дабы получить деление на "администраторские" и "пользовательские" дистрибутивы. Однако такое разделение требует не только досконального знания каждого дистрибутива, но и некоторого объективного измерителя "пользователь <-> администратор", чем едва ли кто-то может похвастаться.
И вот, рассмотрев обе стороны монеты, я пришёл к выводу: надо брать эту монету за третью сторону. ;-) На мой взгляд, классификация дистрибутивов должна быть основана на анализе подсистемы установки и удаления программ. Но только отличие более системное, нежели предложил Алексей. Как это будет выглядеть? Смотрите...
В этом отношении мы можем выделить несколько оснований для классификации:
Таким образом, у нас сформировалось шесть делений классификации. Дадим им названия[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% |
И что же мы видим? Какие выводы мы можем сделать из наблюдаемой картины? А выводы самые разные.
Что касается 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% |
О, чудо! Просматривается ряд актуальных тенденций:
Выводы из всего сказанного выше едва ли удивят парадоксальностью: как ни странно, мне предложенная мною же классификация кажется невероятно логичной, что, на мой взгляд, подтверждают результаты моего классификаторского порыва. В общем, чтобы не пересказывать изложенное выше, я просто предложу всем желающим выдвигать свои варианты и аргументы.
[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-основные ОС.