Периодическая таблица дистрибутивов Linux
Операционная система Linux состоит из многочисленных компонентов, важнейшим из которых является ядро (kernel), сообщество разработчиков которого возглавляет Линус Торвальдс. Но операционная система состоит не только из ядра. Для ее работы необходима еще масса других программных средств: драйверы аппаратных устройств, утилиты управления файловой системой, программы для организации взаимодействия с пользователем и так далее. В отличие от других типов операционных систем (например, Windows, Solaris или HP-UX) отдельные компоненты операционной системы разрабатываются и поддерживаются не какой-то одной фирмой, а независимыми группами разработчиков, которые работают на принципах Open Source и отдают разработанные ими продукты в общественное пользование на условиях Стандартной Общественной Лицензии (General Public License — GPL). Уже к моменту появления ядра Linux значительная часть программных компонент, необходимых для запуска системы, была разработана в рамках проекта GNU, что, собственно, и позволило Торвальдсу в достаточно сжатые сроки создать ОС, которая получила его имя. Можно еще добавить, что кроме операционной системы, для работы пользователя необходимы различные прикладные программы. В случае Linux эти программы в большинстве своем тоже разрабатываются группами энтузиастов «на общественных началах» и распространяются под лицензией GPL.
Поскольку все компоненты Linux-систем распространяются на условиях GPL, может сложиться впечатление, что любой человек может собрать коллекцию свободного ПО и установить Linux на свой компьютер. И какая-то степень правдоподобия в таком утверждении есть. Однако тот, кто задумал осуществить такой проект, должен по крайней мере представлять, какие исполняемые файлы и библиотеки необходимы для того, чтобы успешно запустить систему, а также знать, где должны размещаться системные файлы, как организовать загрузку системы и как правильно ее сконфигурировать. Кроме того, необходимо обеспечить разрешение взаимозависимостей и противоречий между разными пакетами (и версиями пакетов), что является довольно нетривиальной задачей. Самые первые версии Linux, появившиеся в 1991 году, состояли из двух дискет. Первая дискета была загрузочной и содержала ядро, а вторая — корневую файловую систему и основные утилиты, разработанные в рамках проекта GNU. Копии этих дискет можно было загрузить с сервера университета в Хельсинки. Конфигурирование и настройка системы производились вручную и были очень сложными. Поэтому до появления первых дистрибутивов установить Линукс на свой компьютер мог только достаточно подготовленный специалист, можно сказать эксперт в UNIX.
Положение изменилось после появления так называемых дистрибутивов. Дистрибутив Linux отличается от простого набора пакетов программного обеспечения в первую очередь наличием программы инсталляции, которая позволяет рядовому пользователю установить систему на свой компьютер, причем сделать это не привлекая высококвалифицированного эксперта. Если попытаться дать формальное определение дистрибутива, то получится что-то вроде:
Дистрибутив Linux – это набор пакетов программного обеспечения, включающий базовые компоненты операционной систем (в том числе, ядро Linux), некоторую совокупность программных приложений и программу инсталляции, которая позволяет установить на компьютер пользователя операционную систему GNU/Linux и набор прикладных программ, необходимых для конкретного применения системы.
Первые дистрибутивы Linux появились вскоре после того, как Линус Торвальдс выпустил разработанное им ядро Linux под лицензией GPL. Поскольку значительная часть другого необходимого программного обеспечения уже была разработана в рамках проекта GNU, отдельные программисты (и группы программистов) начали разрабатывать как программы инсталляции, так и другие прикладные программы, пользовательский интерфейс, программы управления пакетами и выпускать свои дистрибутивы Linux.
Первый дистрибутив Linux был создан Оуэном Ле Бланк (Owen Le Blanc) в Манчестерском компьютерном центре (Manchester Computing Centre, MCC) в Англии. Первый релиз этого дистрибутива, получившего имя MCC Interim Linux, стал доступен для всех желающих с ftp-сервера Манчестерского университета в феврале 1992 г.
Примерно в то же время сотрудниками университета Техаса был создан дистрибутив TAMU.
В октябре 1992 появился разработанный Питером Мак-Дональдом (Peter McDonald) дистрибутив Softlanding Linux System (SLS), который был первым дистрибутивом, включающим в себя такие элементы, как X Window System и поддержка TCP/IP.
Ни один из этих дистрибутивов не имел хорошей поддержки. В конце 1992 года Патрик Фолькердинк (Patrick Volkerding) выпустил дистрибутив, в значительной части основанный на SLS, который он назвал «Slackware» и который является старейшим дистрибутивом из тех, которые до сих пор активно развиваются.
На основе дистрибутива Slackware германской фирмой S.U.S.E (акроним от немецкого «Software- und System Entwicklung), основанной в 1992 году как консультативная группа по ОС UNIX, был создан дистрибутив SuSE Linux, версия 1.0 которого вышла в 1994 году. Позже SuSE интегрировал дистрибутив Jurix Флориана Ла Роше (Florian La Roche).
Еще один проект по разработке дистрибутива, Debian, был начат Яном Мёрдоком (Ian Murdock) 16 августа 1993 года как альтернатива коммерческим дистрибутивам Linux. Ян хотел создать систему, распространяемую абсолютно свободно и открыто, в духе Linux и GNU. Позже разработка Debian была профинансирована проектом GNU: Free Software Foundation, который выделил деньги на один год, с ноября 1994 по ноябрь 1995, что позволило Я.Мердоку в течение этого периода уделять проекту Debian все свое время.
Дистрибутив Red Hat, который включал в себя некоторые аспекты дистрибутива Bogus (например, механизм пакетов), был основан в 1993 году. На основе Red Hat было создано множество других дистрибутивов, в том числе многие коммерческие дистрибутивы, например, Caldera, Mandrake и TurboLinux.
С тех пор число дистрибутивов постоянно растет, возможно, в силу той относительной легкости, с которой дистрибутив может быть создан из отдельных пакетов, поставляемых независимыми разработчиками. По состоянию на 14 января 2005 года сайт DistroWatch.com (на котором ведется учет разных дистрибутивов) насчитывал 373 дистрибутива. Поддержка некоторых из них уже прекращена, но все же еще более 300 разработок были “живы”. Только за 2004 год появилось более сотни новых дистрибутивов. И это еще не конец, потому что чуть ли не ежедневно появляются новые и новые дистрибутивы!
Как же сориентироваться в этой массе дистрибутивов, чем отличаются разные дистрибутивы, по каким критериям можно их как-то классифицировать? И как выбрать тот вариант системы, который более всего подходит для конкретной ситуации?
2. Критерии классификации дистрибутивов
Приведенные выше цифры количества дистрибутивов, конечно, впечатляют, но давние пользователи Linux знают, что ядро и большинство программ одинаковы во всех дистрибутивах, и что состав пакетов, входящих в разные дистрибутивы, различается в основном версиями или сборками от конкретного производителя. Кроме того, пользователь может добавить в свою систему практически любой необходимый ему пакет, в крайнем случае скомпилировав его из исходных кодов или разработав самостоятельно (при наличии соответствующей квалификации, разумеется). Так что, с одной стороны, практически не существует двух одинаковых экземпляров операционной системы Linux, а с другой стороны, необходимую для конкретного применения конфигурацию системы можно получить, взяв за основу любой из существующих дистрибутивов. Однако трудоемкость настройки системы на конкретное применение все же существенно зависит от того, какой дистрибутив взят за основу.
Поскольку число дистрибутивов Линукс очень велико, ознакомиться на практике с каждым дистрибутивом, чтобы сделать обоснованный выбор, уже не представляется возможным. Следовательно, актуальной становится проблема какой-то классификации дистрибутивов, выделения существенных характеристик, которые могут служить критериями выбора дистрибутива. Достаточно много материалов, дающих хотя бы частичный ответ на поставленные вопросы, можно найти на уже упоминавшемся сайте DistroWatch.com ([1]). Эти материалы и легли в основу настоящей статьи, в которой будет предпринята попытка классификации дистрибутивов Линукс по нескольким критериям.
Признаков, по которым различаются отдельные дистрибутивы существует очень много. Вот только некоторые из них:
- ориентация (или назначение) дистрибутива на конкретную область применений ( например, для организации файервола, для работы в качестве маршрутизатора, для создания особо защищенной системы или для использования на домашнем компьютере обычного пользователя с упором на мультимедийные приложения) ,
- требования к аппаратному обеспечению ( некоторые дистрибутивы ориентированы (оптимизированы) на компьютеры класса Pentium, другие устанавливаются и на 486-е; SUSE LiveCD 9.2, например, не запускается на компьютере у которого объем ОЗУ меньше 256 МБайт ),
- используемая графическая оболочка ( например, KDE, GNOME или XFce ),
- наличие средств локализации, обеспечивающих поддержку необходимых вам языков ( например, в некоторых LiveCD дистрибутивах не предусмотрена поддержка русского языка, так что русскоязычным пользователям придется приложить дополнительные усилия для русификации системы ),
- носитель, с которого может запускаться система ( например, одна или несколько дискет, CD, только установка на жесткий диск) ,
- организация процедуры начальной загрузки системы ( BSD или System V ),
- используемая система управления пакетами ( например, dpkg в Debian, RPM в Fedora Core ),
- структура каталогов файловой системы (см. [5,6]),
- родословная или история проихождения дистрибутива ( Новые дистрибутивы создаются, в основном, не на пустом месте, а на основе одного из уже существующих дистрибутивов. )
- состав базового устанавливаемого ПО (см. [7]),
- доступность дополнительных пакетов,
- наличие и состав коммерческих программ, включенных в дистрибутив,
- процедура определения аппаратуры,
- предоставляемые инструменты управления системой,
- и так далее .
Давайте попытаемся выделить из этого списка те признаки, которые могут служить основой для какой-то классификации дистрибутивов. Начнем с того, что отбросим некоторые критерии, не имеющие практического значения.