22 года с первого стабильного релиза Linux

22 года назад, 14 марта 1994 года, Линус Торвальдс выпустил первый стабильный релиз Linux под версией 1.0.0. Он содержал 176 тысяч строк кода (версия 4.1 содержит 19.5 млн строк) и вносил ряд существенных исправлений и дополнений по сравнению с версией 0.99. Выяснили, как это было.

OLYMPUS DIGITAL CAMERA

Дискеты с Linux 0.12

История Linux началась с того, что обыкновенный финский студент решил ради развлечения сделать свободный клон операционной системы MINIX. Первая версия этого клона под номером 0.0.1 весила (в сжатом виде) 62 килобайта и насчитывала в себе всего 10 тысяч строк кода.

Изначально Линус планировал назвать своё детище Freaks, от слов “free” (свобода), “freak” (чудак) и “X” (UNIX). Своё современное имя ядро получило с лёгкой руки Ари Лемке, который по просьбе Торвальдса размещал его у себя на FTP-сервере, но вопреки просьбе создал директорию “pub/OS/Linux”.

Slackware на Linux 0.99.12

Slackware на Linux 0.99.12

В 1992 году появился первый дистрибутив от Slackware (тогда название было “Slackware Linux System”, SLS), т.е. первая полноценная операционная система, работающая на Linux Kernel.

По мере развития проекта, в адрес Торвальдса начали идти обвинения в том, что он прямо копировал код некоторых подсистем MINIX. Однако Эндрю Таненбаум, автор MINIX, поручил одному из студентов провести детальное сравнение кода Minix и первых публичный версий Linux. Результаты исследования показали наличие только 4 несущественных совпадений, обусловленных требованиями POSIX и ANSI C.

SLS на версии ядра Linux 1.0

SLS на версии ядра Linux 1.0

После двух лет выпусков тестовых релизов 0.99.*, наконец вышла теоретически стабильная версия 1.0. Если вы хотите ощутить, каково это было — на kernel.org лежат исходники, экспериментируйте

Перенос Linux с PC на другие платформы стал темой магистерской диссертации Торвальдса. В 1995 Торвальдс стал научным сотрудником Хельсинского университета, в котором обучался, таким образом он впервые начал получать деньги за свою работу над Linux. “Когда в марте 1995-го мы выпустили версию 1.2, ядро уже включало в себя 250 тысяч строк кода, новый журнал “Linux Journal” хвалился десятитысячным тиражом, a Linux могла работать на процессорах Intel, Digital и Sun SPARC. Это был большой прогресс”, — рассказывает Линус.

По часовой стрелке: 1: uname -a и date, часы, калькулятор, gcc --version 2: Файловый менеджер Xfm, tex, «Hello, World!» собранный gcc, vim с кодом «Hello, World!»'а 3: Lock screen 4: emacs, программа для работы с таблицами XSpread

По часовой стрелке:
1: uname -a и date, часы, калькулятор, gcc –version
2: Файловый менеджер Xfm, tex, «Hello, World!» собранный gcc, vim с кодом «Hello, World!»’а
3: Lock screen
4: emacs, программа для работы с таблицами XSpread

Разумеется, со временем разработка перестала быть делом одного Линуса. Вот, как он описывает процесс развития ядра:

Я управляю ядром Linux, которое лежит в основе всего, потому что до сих пор все связанные с Linux люди доверяют мне больше, чем кому-либо другому. Управляя проектом с сотнями тысяч разработчиков, я действую точно так же, как в студенческие времена: никому ничего не поручаю, а просто жду, пока кто-нибудь сам вызовется. Это началось с того, что я сложил с себя менее интересные обязанности, например, составление кода пользовательского уровня. Нашлись добровольцы, которые взяли на себя отдельные подсистемы. Ко мне все попадает через этих руководителей подсистем. Я утверждаю или отвергаю их работу, но по большей части позволяю событиям идти своим путем. Если два человека ведут сходные направления, то я принимаю работу обоих, чтобы посмотреть, чья начнет использоваться. Иногда используются обе, но они начинают развиваться в разные стороны. Однажды между двумя людьми была сильная конкуренция: каждый из них настаивал на том, чтобы были использованы его заплатки, которые конфликтовали с заплатками соперника. Я перестал принимать заплатки от обоих, пока один из разработчиков не потерял интерес. Так поступил бы царь Соломон, если бы руководил детским садом.

Пётр Соковых, транслятор двоичного кода в русский язык