Red Hat: совсем для всех?

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

Ибо тем временем обозначилась первая сфера практического применения Linux за пределом круга разработчиков программного обеспечения — сервера сетевых служб, в том числе — web-сервера. Это вызвало к жизни вторую волну дистрибутивов (правда, по времени она практически пересеклась с первой — но в те героические годы счет велся на месяцы, если не на дни). Ими стали Red Hat и Suse, оба они создавались как дистрибутивы “для всех” — хотя, конечно, под понятие “все” тут попадали в первую очередь администраторы компьютерных сетей, время Linux’а для конечного пользователя еще не пришло. Но важно, что и Red Hat, и Suse представляли собой не наборы для конструирования собственной системы, как Slackware (да и Debian в те годы, до разработки apt, также скорее предполагал собственное конструирование, нежели готовое решение), а попытки создания систем, работающих “из коробки”.

История Suse ждёт своего летописца -- на параллельной странице я затрону её лишь вскользь. А вот о Red Hat расскажу поподробнее. Ибо было время на Руси, когда

Говоришь Linux -- подразумеваешь Red Hat.
Говоришь Red Hat -- подразумеваешь Linux.

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

Дистрибутив Red Hat -- третий в ряду ныне живущих патриархов дистростроения, после Slackware и Debian (хотя, повторяю, приоритет тут исчисляется первыми месяцами). Он разрабатывается с 1993 года, в октябре 1994 года появилась первая общедоступная бета-версия, а в мае 1995 года -- первый официальный релиз.

В отличие от Slackware, созданного и развивавшегося кустарём-одиночкой с персональным компьютером, и Debian, вокруг которого быстро сложилось сообщество разработчиков, за Red Hat с самого начала его разработки стояла одноимённая коммерческая компания. Основали её Боб Янг (Bob Young) и Марк Юинг (Marc Ewing) в 1993 году, имея целью поставить свободное слово на службу мировому капиталу.

Происхождение названия дистрибутива (красная шляпа) и соответствующего логотипа объясняют тем, что Эвинг в студенческие годы рассекал по колледжу в дедушкином шапо соответствующего колеру. Хотя Янг объясняет его тем, что красный цвет символизирует всякие хорошие качества.

Это была первая попытка монетизации свободного софта: сам дистрибутив распространялся свободно, в соответствие с лицензией GPL, и бесплатно (по цене носителей и доставки), деньги же предполагалось извлекать из технической его поддержки. А поскольку оплачивать таковую обычно готовы не частные лица, а организации, то Red Hat изначально был ориентирован на корпоративную сферу -- во-первых, и на дружелюбие к пользователю -- во-вторых.

Правда, следует учесть, что хотя шире стал круг пользователей, но связь с народом ближе стала несущественно: ибо расширился он за счёт сисадминов, до приобщения к Linux'у пользователей "простых" оставалось ещё несколько лет.

Однако настоящие сисадмины, как известно, люди занятые -- с одной стороны, и ленивые -- с другой. Возиться с конструированием системы им обычно не с руки. И потому Red Hat с самого начала отличался простотой установки -- максимально возможной в те времена.

Значительную роль в упрощении процедуры установки и поддержки сыграл формат пакетов RPM (что тогда расшифровывалось как Red Hat Package Manager) и одноимённая утилита для манипулирования такими пакетами, способная отслеживать зависимости и сообщать об их нарушении (но ещё не разрешать их автоматически). По сравнению с молчаливым пакетным инструментарием из Slackware, способным установить неработоспособную, из-за нарушения зависимостей, программу, это казалось большим прогрессом.

Происхождение системы rpm (будем понимать под этим и набор утилит, и формат пакетов, с которыми они работают) теряется во мраке веков. В первых версиях Red Hat использовалась система RPP, обеспечивающая установку пакетов одной командой, проверку зависимостей и запрос информации о них. Однако сборка пакетов для неё требовала существенной модификации исходников, что было напряжно для разработчиков.

Параллельно раннему Red Hat некоторое время развивался дистрибутив Bogus, ныне мало кому известный. В нём имелась собственная пакетная система -- PMS (Package Management System), написанная Рикардом Файтом (Rikard E. Faith). Она обладала слабым механизмом запросов информации о пакетах, а проверка их зависимостей просто отсутствовала. Но зато пакеты для PMS можно было собирать непосредственно из исходников, без всякой их модификации.

В ходе подготовки 2-го релиза Red Hat Рикард Файт вместе с Дугом Хоффманом (Doug Hoffman) по контракту с компанией написали систему PM, вобравшую в себя лучшие особенности RPP и PMS. Хотя практически она так и не была задействована, но послужила одной из основ для RPM.

Собственно система RPM была создана Марком Юингом (одним из сооснователей компании) и Эриком Троэном (Erik Troan), основываясь на всех достижениях предшественников -- RPP, PMS и PM. Вариант её, подготовленный для тестовых версий второго релиза, быстроты ради был написан на Perl'е, что создавало ряд проблем, например, при загрузке с дискеты (а в те времена это было достаточно обычным способом старта Linux'а). И непосредственно к выходу релиза Red Hat 2.0 система была полностью переписана на C, база данных пакетов перепроектирована для пущей надёжности и быстродействия, и создана библиотека rpmlib для использования функциональности RPM сторонними разработчиками. Иными словами, система RPM приобрела практически тот вид, в каком мы знаем её ныне, подвергаясь с тех пор только корректировке ошибок и косметическим доделкам.

Система RPM и одноимённый формат, став штатными и общедоступными в релизе Red Hat 2.0, вышедшей в сентябре 1995 года, сразу завоевали популярность и вне родительской системы. Вскоре они были использованы в Caldera Linux (позднее именовавшаяся OpenLinux), которая поначалу была точным клоном Red Hat. Вслед за тем на пакетирование в формате rpm перешел дистрибутив Suse (генетически, как уже было сказано, потомок Slackware). Разумеется, и все последующие клоны и дериваты Red Hat, например, Mandrake, также использовали RPM.

Могу свидетельствовать как очевидец, что к рубежу 1996--1997 годов (времени моих первых экспериментов с Linux) система и формат rpm были широко распространёнными, считались стабильно работающими и использовались далеко за пределами родного дистрибутива.

Сам формат, известный под именем RPM (со временем это стало расшифровываться как рекурсивное RPM Package Manager), неоднократно, но незначительно, видоизменялся, сохраняя совместимость сверху вниз, и в настоящее время официально законсервирован на уровне версии 4.X. Разработка версии 5, существенно усовершенствованной, но несовместимой с предыдущими, носит неофициальный характер.

Впрочем, это -- совсем отдельная история, которую мы затронем в рубрике о пакетах. А пока посмотрим, на дальнейшее развитие коммерческой линии Linux-дистрибуции в лице поминавшихся выше Suse и Caldera.


Теги: ,