Linux: начало дистрибуции

Подобно первозданному UNIX’у, Linux изначально являлся типичной “системой для себя”. Более того, исходно единственным его назначением была разработка себя самого — никаких других целей Линус перед собой не ставил. Да и первые пользователи Linux’а устанавливали (точнее, собирали) систему для того, чтобы ее изучать и, по возможности, совершенствовать. Так что ни в каких дополнительных компонентах, кроме ядра и инструментария для его сборки, необходимости не возникало.

По свидетельству очевидцев, установка Linux в древние (до появления версии 1.0) времена была задачей не тривиальной даже для опытного компьютерщика (а иные, вероятно, Linux тогда и не ставили). И в формирующемся Linux-сообществе возникла идея облегчить эту процедуру. В результате чего родилось понятие дистрибутив Linux. Это — система комплектации ядра ОС дополнительными программами и способ ее распространения. Она предполагает наличие программы-установщика и средств управления пакетами — теми самыми дополнительными программами. Впрочем, что такое дистрибутив вообще и дистрибутив Linux в частности — было уже предметом отдельного разговора.

Так вот, уже через несколько месяцев после обнародования Линусом исходников первой (0.01) версии своего ядра, в начале 1992 года, появляются первые наборы программ, которые можно считать прототипами позднейших дистрибутивов Linux — MCC Interim Linux и TAMU. Они представляли собой комплекты разработчика, включающие в прекомпилированном виде ядро, шелл, компилятор gcc и средства сборки, а также основные пользовательские утилиты, что позволяло развернуть работоспособную систему на «чистой» машине.

В октябре 1992 года на свет появляется комплект, который можно назвать первым в истории настоящим дистрибутивом Linux. Он носил имя SLS (Softlanding Linux System) и был разработан Питером Мак-Дональдом. Помимо ядра Linux и утилит обрамления, дистрибутив SLS включал в себя оконную систему X и средства работы с сетью, то есть был уже вполне пригоден для конечного пользователя. Правда, не следует забывать, что конечными пользователями Linux в те годы по прежнему оставались исключительно его же разработчики.

Дистрибутив SLS просуществовал недолго — последняя его версия вышла в 1994 году. Однако он лег в основу целой линии дистростроения, протянувшейся в наши дни яркой нитью, и потому о нем стоит сказать несколько слов.

Дистрибутив SLS распространялся преимущественно на трехдюймовых дискетах объемом 1,44 Мбайт (это заслуживает упоминания, потому что в те годы вовсю еще использовались пятидюймовые дискеты объемом 1,2 Мбайт, и даже 360 Кбайт), в количестве 20-30 штук. Образы дистрибутивных дискет можно было получить по Сети, впрочем, у нас — практически только по служебным каналам, а также заказать на CD (хотя CD-приводы в то время на пользовательских машинах были не меньшей экзотикой, чем Интернет на дому).

О том, как «в те времена далекие, теперь почти былинные», выглядела установка Linux’а в условиях, приближенных к отечественным, — можно получить представление, прочитав статью Петра Врублевского (Польша) Unix для всех, русский перевод которой был опубликован в журнале «Мир ПК», 1995, #6. Очень рекомендую всем нынешним начинающим линуксоидам, жалующимся на трудности установки Mandriva или Ubuntu. Правда, для этого нужно иметь тот номер журнала, представляющий собой библиографическую редкость — онлайновой его версии нет и, увы, это ситуация, в которой Google бессилен. А с самой по себе системой можно ознакомиться в «историческом» разделе сервера Ibiblio.

Одной из знаковых особенностей SLS была схема инициализации в BSD-стиле — и пусть после этого кто-нибудь попробует доказать, что схема инициализации System V исконна для Linux. Хотя в дальнейшем последняя и возобладала в большинстве дистрибутивов майнстрима — «дистрибутивах для всех» (в том числе и в Suse — потомке Slackware), но инициация в BSD-стиле была унаследована Slackware и всеми её клонами, а также CRUX’ом, Archlinux’ом, отчасти Gentoo. То есть всем тем семейством, которое можно определить как «дистрибутивы для себя». Интересная закономерность, не правда ли?

Формат бинарных пакетов в SLS был предельно прост — tar-архив, компрессированный с помощью Gzip или compress (тогда они сосуществовали почти на равных), возможно — с постинсталляционным сценарием. Для установки и удаления пакетов использовалась утилита sysinstall — предтеча всех последующих систем пакетного менеджмента. Которая не только разворачивала архив и инкорпорировала его компоненты в файловую систему, но и фиксировала его в специальной базе данных — на предмет последующего удаления, если таковое потребуется. Хотя о контроле зависимостей тогда речи еще и не возникало.

Прекращение разработки SLS связывается в источниках с его переходом на формат бинарных файлов ELF (не путать с форматом пакетов — это совершенно разные вещи) вместо общепринятого тогда в Linux и вообще в Unix формата a.out. Хотя ELF более “прогрессивен”, нежели a.out, тогда это оказалось шагом преждевременным — до победы ELF в мировом масштабе оставалось еще почти десятилетие (кажется, последним отказался от a.out Debian — уже в нашем тысячелетии). Но, возможно, дело было просто в потере интереса разработчика к своему произведению — ситуация в мире Open Source нередкая.

О SLS ныне мало кто помнит, однако роль его в дальнейшем дистростроении трудно переоценить: именно он лёг в основу старейшего дистрибутива из числа доживших до наших дней -- Slackware, о чём будет рассказано на одной из ближайших страниц.

А нам пора вернуться к тому самому технологическому детективу, о котором я столько говорил раньше.


Теги: ,