Алексей Федорчук - Вопросы истории: UNIX, Linux, BSD и другие
Зарождение 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 году Томпсон и Ричи удостоились одной из высших наград государства, гражданами которого они являются[1]: – Национальной медали в области технологий (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-2 бытовых холодильника), а то, что они допускали интерактивное взаимодействие с пользователем – ввод задач посредством клавиатуры и вывод результатов на тот же телетайп (а потом и на экран монитора).
На одном из таких миникомпьютеров, PDP-7 производства фирмы DEC, и был разработан первозданный UNIX. Который, впрочем, быстро утратил связь с родительской платформой: после того, как основная системы часть была переписана на языке Си (специально созданном для разработки этой ОС), возникли условия для относительно легкого ее портирования на любое «железо». И долгое время миникомпьютеры различных типов (в основном PDP-11 и пришедшие им на смену во второй половине 70-х машины серии VAX), как наиболее демократические платформы того времени, оставались основной средой для разработки и использования UNIX.
Попавший в Беркли UNIX также первоначально был инсталлирован и работал на 16-битных миникомпьютерах PDP-11, и программные наборы 1BSD и 2BSD (собственно системами, как говорилось ранее, их назвать было еще нельзя) разрабатывались на них и для них.
Однако в 1977 году на свет вышли первые миникомпьютеры VAX, уже 32-битные. Разумеется, первозданный UNIX, ставший к тому времени вполне кросс-платформенным, обзавелся для них соответствующей версией, носившей имя UNIX/32V. Однако и берклианская ветвь не осталась в стороне от прогресса: 3BSD – первая целостная система из Беркли уже в 1979 году была портирована на VAX, причём с эффективным использованием всех его аппаратных возможностей, в частности, виртуальной памяти. Именно тогда и сложилась та самая парадоксальная ситуация, о которой я говорил выше: пользователи VAX-машин вынуждены были получать (то есть покупать) лицензию на использование 32V, однако устанавливали и применяли на практике 3BSD, а затем и 4BSD.
Однако миникомпьютеры доживали свой век – на смену им серверы и рабочие станции на фантастически мощных по тем временам RISC-процессорах, объединённые в сети с клиент-серверной архитектурой. Они уже имели вид, подобный обычным персоналкам – с системным блоком, монитором и клавиатурой, а затем и мышью, а рабочие станции к тому же находились в индивидуальном пользовании.