Linux: вопросы праистории

Алексей Федорчук
Впервые опубликовано:  LinuxFormat, #145 (июнь 2011)

Преамбула

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

Правда, какой именно это был день — мнения расходятся. Одни историки вопроса за дату рождения Linux’а принимают 25 августа 1991 года, когда Линус Торвальдс отправил в список рассылки разработчиков ОС MINIX своё ставшее знаменитым письмо о том, что он разрабатывает новую бесплатную операционную систему, которая скоро будет готова.

С точки зрения других историков, датой, от которой следует отсчитывать жизнь Linux’а, является 17 сентября 1991 года — день, когда Линус разместил исходный текст своей разработке на общедоступном ftp-сервере, о чём оповестил заинтересованных лиц, в первую очередь пользователей MINIX. И предложил присоединяться к проекту.

Мы с Кириллом Степановым посоветовались, и пришли к единогласному, хотя и волевому, решению: вторая точка зрения более обоснована. Во-первых, именно в этот день Linux получил своё имя — по имени каталога, в котором лежали её исходники на ftp-сервере. А во-вторых, с этой даты начинается внедрение в софтверную индустрию того метода, который позднее Эрик Реймонд назовёт «базарным». Но который по справедливости следовало бы наречь именем его изобретателя — Тома Сойера: Линус лишь подхватил, расширил, укрепил и закалил в боях его идею.

В-третьих же, мы надеемся, что к 17 сентября 2011 года номер журнала Linuxformat со статьёй, посвящённой рождению Linux’а, его предпосылкам и последствиям, выйдет из типографии. И даже имеет шанс попасть в руки некоторых читателей. Оставшееся же до этой знаменательной даты время будет посвящено вопросам праистории и предыстории этой операционной системы.

Истоки и составные части

Было бы заманчиво, следуя заветам дедушки Ленина, свести праисторию Linux’а к трём истокам и трём составным частям. Однако реальная история чего бы то ни было гораздо сложнее (и интересней), нежели нам пытались внушить классики марксизма и их преложители. Так что с какой стороны ни смотри, а истоков и составных частей Linux’а оказывается куда больше трёх. И к тому же не всегда можно однозначно сказать, где кончаются истоки и начинаются составные части. Если, конечно, не внять мнению резонных людей из Одессы и не признать, что составные части начинаются именно там, где кончаются истоки.

Так что последуем их совету и рассмотрим истоки и составные части Linux’а одним списком, предоставив читателю самому решать, где кончается одно и начинается другое. Единственная вольность — я немного упорядочил этот список в соответствие со своими представлениями о хронологии событий.
Итак, начнём перечень.

Во-первых, это академическая и университетская Computer Science эпохи “больших машин”, в частности, работы по искусственному интеллекту.

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

В-третьих, это корпоративный UNIX и организации по упорядочиванию его стилей , иначе говоря, стандартизации.

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

В-пятых, это общественные движения — Open Source Software и Free Software. Здесь я немного отступаю от хронологии — второе формально предшествовало первому. До de facto первое явление существует как минимум со времён Ньютона и Лейбница.

В-шестых, это эволюция аппаратных платформ — от первых интерактивных рабочих станций до “народных” x86-совместимых компьютеров.

Как видите, получается куда больше, чем сакральная троица, которую так любит Бог и большевики. И это при том, что я не уверен, вспомнил ли я все истоки и все составные части — что не страшно, в этом цикле удастся осветить далеко не все даже из перечисленного.

О некоторых же истоках я умолчал сознательно, ибо нет у меня права о них говорить — например, об эпохе Eniac’а и БЭСМ’ов. Надеюсь, что…

Кто-нибудь услышит,
Снимет и напишет,
Кто-нибудь помянет…

… тех ребят. Они заслуживают этого не меньше, чем создатели первого реактора… Да и чем многие другие, которых тоже ещё не помянули.

А пока вернёмся с нашим истокам и нашим составным частям.

Computer Science и ARPANET

История академической Computer Science уходит в начало 60-х, время появления первых компьютеров, способных к интерактивной работе. Хотя они далеко ещё не были персоналками — но ведь ранее машины, как помнят читатели «Понедельника», почему-то начинавшегося тогда «в субботу», работали исключительно в режиме пакетных заданий. И влиять на это не могли не только маги вроде Кристобаля Хозевича и Фёдора Симеоновича, но даже всесильные научные администраторы, товарищи Камноедов и Лавр Федотыч.

Место же зарождения этой науки условно определим как крупнейшие американские университеты — Массачусетский Технологический Институт (MIT), Йель, Университет Карнеги-Меллона, Стэнфорд, Калифорнийский университет Беркли. Историческим центром этого движения долгое время была лаборатория искусственного интеллекта MIT (MIT AI — Artificial Intelligence). В недрах MIT AI родился, судя по многим свидетельствам, и термин “хакер” — так называли друг друга те, кто способен был “врубиться” в компьютерные науки. Но эта тема столь жёвана и пережёвана, что на ней мы останавливаться не будем

Работы же по созданию отказоустойчивой правительственной связи США, как нетрудно догадаться, начались по инициативе Министерства обороны этой страны. Ибо имели целью создание надёжной системы передачи информации на случай советского ядерного удара. Финансирование осуществлялась через ARPA — Агентство передовых исследовательских проектов (Advanced Research Projects Agency), которое позднее, без лишнего лицемерия, было переименовано в DARPA, с добавлением слова Defense (в данном контексте — Оборонных проектов). Запомним последнюю аббревиатуру — позднее эта организация сыграет немалую роль в нашей предыстории.

Непосредственная реализация системы связи была возложена на ряд американских университетов — Калифорнийский, Университет штата Юта, Стэнфорд. Потому что, как оказалось, кроме университетских хакеров из сферы Computer Science, разрабатывать и поддерживать её было попросту некому. А эти «ребята, за ту же зарплату», не только выковали электронный щит своей Родины в виде сети ARPANET (по имени организации-кормильца), но, будучи истинными учёными, воспользовались случаем в интересах науки. А именно — наладили бесперебойные каналы обмена информацией между своими Alma mater, создав таким образом сообщество ARPANET — прообраз грядущего Интернет-сообщества.

Первый сеанс связи в рамках проекта ARPANET состоялся 29 октября 1969 года в 21 час по местному времени. И оказался не вполне удачным: удалось передать только три символа, после чего сеть рухнула. Однако уже через два часа работоспособность её была восстановлена (учитесь, нынешние провайдеры!), и передача завершилась успешно. Интересно, что контроль передачи осуществлялся почти тем же методом, который изображён в фильме «Волга-Волга»: не с помощью рупора, конечно (от Лос-Анжелеса до Пало Альто докричаться проблематично), но по телефону.

Сеть ARPANET очень быстро охватила не только университеты, участвовавшие в её разработке, но и многие другие учебно-научные заведения Америки, а потом и сопредельных стран, став таким образом международной коммуникационной магистралью для обмена научной информацией. Правда, скоро её в этой роли сменила сеть Национального научного фонда США (NSF — National Science Foundation), создавшего свою сеть, NSFNet, обеспечивавшую большую пропускную способность. Именно на её базе и был создан современный Интернет.

Рождение UNIX

Зарождение UNIX, как и сообщества Computer Science, также связано с появлением компьютеров, пригодных к использованию в интерактивном режиме, что создало предпосылки к разработке тех самых систем разделения времени, допускающих как бы одновременное исполнение нескольких задач (time sharing), которые пришли на смену машинам, работавшим исключительно в пакетном режиме. Одной из первых таких систем была CTSS (Compatible Time Sharing System).

Без академической составляющей, представленной в данном случае MIT, не обошлось и здесь. В развитие CTSS в 1965 году фирмами AT&T и General Electric вместе с MIT был начат проект по созданию истинно многозадачной и многопользовательской системы, которая получила имя Multics. По замыслу она была столь прогрессивной, что в те времена оказалась нереализуемой, и в 1969 году проект был закрыт, оставив среди его участников тоску по интерактивной работе и идею системы разделения времени, вскоре воплотившуюся в UNIX.

Правда, сама ОС UNIX вышла из корпоративных недр компании AT&T, сотрудниками которой являлись его создатели — бывшие участники проекта Multics. Однако это ни в коей мере не была корпоративная разработка: Кен Томпсон и Деннис Ричи разрабатывали её для собственных потребностей — это был первый в истории IT пример создания “системы для себя”. В противоположность, например, системе VAX/VMS от фирмы DEC, которая претендовала на звание “системы для всех”.

Правда, понятие “все” в случае c VAX/VMS охватывало весьма узкий круг, даже не столько лиц, сколько организаций. Но остаётся фактом, что система VAX/VMS разрабатывалась не для личного использования. Это наложило отпечаток не только на неё, но и предопределило судьбу её прямого потомка — Windows NT/etc.

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

Впрочем, усилия разработчиков были оценены должным образом, и достаточно быстро: в 1983 году Томпсону и Ричи была присуждена премия Тьюринга — самая престижная награда в информационной сфере. Которую по значимости можно сравнить с премией, учреждённой некогда Альфредом Нобелем «за выдающиеся научные исследования, революционные изобретения или крупный вклад в культуру или развитие общества». Что поделать — Нобель не мог и предполагать, что информационные технологии окажут на развитие общества не меньшее влияние, чем изобретённый им динамит.

А в 1999 году Томпсон и Ричи удостоились одной из высших наград государства, гражданами которого они являются: — Национальной медали в области технологий (National Medal of Technology, ныне — National Medal of Technology and Innovation). Которую им лично вручил человек, прославившийся обсуждением вопроса, является ли оральный секс основанием для обвинения в лжесвидетельстве. Ну и прочими мелочами, типа приказа о бомбардировке Югославии…

На дальнейшую судьбу UNIX огромное влияние оказали юридические коллизии тогдашнего текущего момента. Незадолго до создания этой системы корпорация AT&T подверглась антимонопольному преследованию, в результате чего претерпела поражение в правах — на деятельность её был наложен ряд ограничений. В частности, она не имела права торговать программными продуктами, в число коих попадала и новорождённая UNIX.

Разумеется, материнская корпорация постаралась пристроить к делу создание своих сотрудников — в частности, UNIX с его инструментарием использовался в AT&T для подготовки технической и патентной документации. Что, кстати, представляет собой типичную пользовательскую задачу. И скажите мне теперь, что UNIX не пригоден для применения конечными пользователями.

Однако, как уже было сказано, в силу юридических ограничений AT&T не могла сделать из UNIX коммерческий продукт. И потому исходники этой системы, начиная с 1974 года, стали распространяться в университетах — в образовательных, как это тогда задумчиво называлось, целях. На условиях по тем временам достаточно либеральных, в том числе, и просто явочным порядком, лично Брайаном — люди с психологией сталинских наркомов, которые могли сказать: “под мою ответственность”, встречались не только в Советском Союзе…

Передача UNIX в университетские структуры не была свободным распространением в том смысле, который вкладывается ныне в понятие FOSS. Хотя система, точнее, тогда ещё не более, чем её прототип, и передавалась в исходных текстах с правом их изучения, модификации, доработки и прочего потрошения.

Однако, во-первых, все эти действия требовали обладания лицензией на исходный код UNIX, которая передавалась AT&T вместе с ней самой и её исходниками, но — за деньги, хотя и не очень большие по масштабам американских организаций середины 70-х годов прошлого века. В личное же пользование лицензии на UNIX тогда ещё не приобретали.

А во-вторых, и это главное, условия лицензии не допускали дальнейшего свободного распространения ни системы целиком, ни отдельных ее компонентов, содержащих исходный код UNIX. Что, собственно, и создало сюжет дальнейшей детективно-технологической интриги.

Однако до развёртывания сюжета грядущего технологического детектива было ещё далеко. А пока университеты с радостью приобщались к новой операционной системе, в которой были реализованы все передовые идеи того времени. И к тому же в принципе способной функционировать практически на всем спектре тогдашнего оборудования. Напомню, что речь идёт о середине 70-х годов прошлого века: Стив Джобс еще не помышлял о продаже калькулятора и использовал родительский гараж по прямому назначению, а Билл Гейтс не освободил мир своим MS DOS’ом от засилья CP/M.

Выйдя за стены Bell Labs, UNIX зажил самостоятельной жизнью, крепко окопавшись в той же университетско-академической среде Computer Science. Одним из её центров в данном случае оказался Калифорнийский университет Беркли — учреждение, известное всем, интересовавшимся историей как точных наук, так и их влиянием на нашу жизнь.

Получив, благодаря профессору Бобу Фабри (Bob Fabry), в 1974 году ОС UNIX вместе с её исходниками и лицензией на их использование, университет Беркли поддержал и развил традицию “систем для себя”, свойственную первозданному UNIX. Но об этом речь пойдёт в следующей заметке.

1 комментарий к “Linux: вопросы праистории

  1. По непроверенным слухам Интернет, как работоспособная сеть, практически в полном объеме начала работать в 1962 году, связывая американские военные базы

Обсуждение закрыто.