Линус Торвальдс и его ядро

Пока в Беркли и его окрестностях думали, что делать с наследием BSD и CSRG, на другом конце света, в Финляндии, некий студент по имени Линус Торвальдс размышлял, что же ему делать с только что приобретённым IBM PC. И, как ни странно, результаты его размышлений оказали не меньшее влияние на нашу историю, нежели многолетний труд исследователей, финансируемых правительством мировой державы.

Впрочем, историю о том, как программа терминального доступа к удаленной университетской машине на протяжении 1991 года постепенно превратилась в полноценную ОС, не описывал только ленивый. Известна она и в версии от создателя — самого Линуса Торвальдса (в его книге Just for Fun, что Максим Отставнов удачно, на мой взгляд, предложил перевести так: Для прикола). Так что пересказывать ее в очередной раз я не буду. А подчеркну лишь те моменты, которые мне представляются наиболее существенными. И которые, как мне кажется, вытекают из всего написанного ранее.

Ранее неоднократно говорилось, что толчком для написания Линусом собственного ядра послужила MINIX — операционка, сочиненная Энди Танненбаумом специально для обучения студентов UNIX’у, в силу этого, принципиально ограниченная функционально (дабы не пудрить неокрепшие юношеские мозги), и потому не способная к выполнению какой-либо практической работы (см. страницу про студенческую ОС). Что многочисленные (в масштабе тех времен) пользователи MINIX пытались исправить с помощью всякого рода патчей.

Однако как раз Линус не занимался “доведением MINIX до ума”. Не использовал он также и код какой-либо из реализаций UNIX или BSD. Он воссоздал функциональность ядра UNIX с нуля — руководствуясь описаниями системных вызовов, данными в соответствующем стандарте POSIX (см. Битву за стандарты). И потому Linux не является клоном ни System V, ни BSD — хотя в ней и использована схема инициализации в стиле первой, да и идейное влияние второй, безусловно, имело место.

Linux создавался на машине с процессором i386 для архитектуры Intel и первоначально -- только для нее. Более того, долгое время Линус вообще сомневался, что его система когда-либо сможет быть портирована на любую иную аппаратную платформу. И потому соответствие стандартам в данном случае преследовало целью не переносимость Linux самого по себе, а в первую очередь возможность компиляции в этой ОС всего ранее созданного программного ассортимента для UNIX и POSIX-совместимых систем вообще.

Лично Линусу принадлежит честь разработки ядра Linux и файловой системы ext (то есть Extended — расширение для файловой системы Minix), как и сменившей ее впоследствии ext2. В качестве среды для работы он выбрал bash — командную оболочку, разрабатываемую в рамках проекта GNU. А для сборки своего кода использовал тот самый gcc, о котором только что говорилось, а главной общесистемной библиотекой функций языка Си выступала GNU-реализация ее, glibc. Все прочее системное окружение ядра (комплекс пакетов, который ранее мы назвали Base Linux) также имеет в основном GNU’тое происхождение. Да и при выборе политики распространения Линус в конце концов остановился на лицензии GPL — порождении RMS и FSF.

На основании сказанного выше часто полагают, что ОС Linux должна на самом деле именоваться GNU/Linux. Но как говорилось на одной из страниц предыдущей рубрики, это мнение, с которым я не согласен, и здесь могу привести дополнительные аргументы уже исторического характера.

Ранее подчёркивалось, что неотъемлемой чертой набора Base Linux является альтернативность его комплектации. И потому ОС Linux — не только (а может быть, и не столько) ядро и набор базовых программ, а в первую очередь алгоритм для построения такого набора. И создание такого алгоритма — второе, после написания кода ядра, великое достижение Линуса.

Наконец, Линус оказался создателем уникального метода разработки масштабных проектов Open Source, того самого, который Эрик Реймонд позднее назовет методом большого базара. Впрочем, справедливости ради следует отметить, что в данном случае и он изобрет велосипед — аналогичный способ привлечения дармовой рабочей силы использовал Том Сойер в своих “Приключениях”. Однако, если инструментами Тома были сердцевина от яблока и крыса с привязанной к хвосту веревкой, чтобы удобнее размахивать ей над головой, то орудием Линуса оказался Интернет.

Вот так и сплелись воедино все сюжетные линии, о которых шла речь в преамбуле. Но об этом тогда никто не знал -- казалось, что главные события происходят в Беркли, куда мы сейчас и вернёмся.


Теги: