Предыстория Linux: "железная" интермедия

Данный цикл статей посвящен развитию Linux в целом и российского Linux в частности - от SLS и до наших дней

[Алексей Федорчук (alv@posix.ru)]

И всех, кто мог чего-нибудь помнить, -
давным давно замочили
Гоблин, Братва и кольцо

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

Некогда компьютеры были большими - и не просто большими, а очень большими. И работали они исключительно в так называемом пакетном режиме, то есть, получив кучу задач, для ввода которых использовались перфокарты, они обсчитывали их одно за другим, выдавая результат на печатающее устройство типа телетайпа, без всякого взаимодействия с пользователем. Собственно, и пользователей как таковых в те времена не существовало, а существовало понятие оператора ЭВМ.

Потом компьютеры стали поменьше, получили имя микрокомпьютеров и допускали интерактивное взаимодействие с пользователем - ввод задач посредством клавиатуры и вывод результатов на тот же телетайп (а потом и на экран монитора). На одном из таких миникомпьютеров, PDP-7 производства фирмы DEC, и создавался Unix.

Однако Unix быстро утратил связь с родительской платформой: после того, как основная ее часть была переписана на языке Си (специально созданном для разработки этой ОС), возникли условия для относительно легкого ее портирования на любой "железо". Тем не менее, вплоть до середины 80-х годов миникомпьютеры - наиболее демократические платформы того времени, - оставались основной средой для разработки и использования Unix.

Начиная с середины 80-х годов, на смену миникомпьютерам пришли серверы рабочие станции на фантастически мощных по тем временам RISC-процессорах. Они уже имели вид, подобный обычным персоналкам - с системным блоком, монитором и клавиатурой, а затем и мышью, находившимися в индивидуальном использовании. Объединение их в клиент-серверные сети, в качестве серверов которых могли применяться как большие машины, так и те же RISC-компьютеры, дало новый толчок развитию Unix: именно под такие распределенные компьютерные системы создавались корпоративные варианты этой ОС - от Sun, пионера в использовании Unix на рабочих станциях, IBM, Hewlett-Packkard, DEC и еще нескольких, ныне забытых. Каждая из которых была способна работать только на собственной аппаратной платформе, в основе которой лежали собственные же, несовместимые друг с другом, RISC-процессоры.

А что же собственно персоналки, именовавшиеся в те годы IBM PC-совместимыми компьютерами? А поначалу - ничего. Первый широко распространившийся персональный компьютер, собственно IBM PC и развивавший его линию IBM PC/XT, базируясь на внутренне 16-разрядных процессорах Intel 8088 и 8086, работать под исходно 32-битной Unix не мог, как не способна была на это и персоналка следующего поколения, IBM PC/AT на процессоре Intel 80286.

Только появление в 1985 году первого 32-разрядного процессора от Intel - 80386, дало возможность использовать Unix на дешевых и общедоступных персоналках. Чем немедленно воспользовались чисто софтверные фирмы, не разрабатывавшие собственных аппаратных платформ, среди первых из которых оказались уже упомянутые ранее SCO и Microsoft, создавшие свои варианты Unix для очередной демократической платформы. Которая с тех времен и зовется - платформа i386, хотя сколько поколений Intel-совместимых процессоров сменилось после 1985 года - на память сразу и не скажешь.

Линия IBM-совместимых компьютеров (или, как их стали называть с преобладанием клонов, Intel-совместимых, а со временем - и просто PC) была не единственной. Широким распространением пользовались также процессоры Motorolla 68XXX, на которых базировались компьютеры Macintosh от фирмы Apple и Amiga от Commodore. Они работали под управлением собственных проприетарных ОС. Однако, поскольку процессоры Motorolla были изначально 32-битными (хотя младшие их версии имели "обрезанную" разрядность), то препятствий к работе под Unix не имели.

И действительно, портирование Unix на платформу 68XXX осуществлялось. Мало кто ныне помнит, но, например, Apple разрабатывала собственную версию ее, под названием AUX, задолго до MacOS X - чуть не сразу после появления первого Mac'а.

И, конечно же, венцом синтеза архитектуры 68XXX и Unix стал знаменитый NEXT конца 80-х - элегантный черный куб, начиненный самым прогрессиным оборудованием (включая CD ROM и аудиосистему, которые для PC того времени были не просто экзотикой - раритетами из раритетов). Внутри него работала Unix-подобная операционка, образованная микроядром Mach, системным окружением из BSD-мира и графическим интерфейсом собственного производства, к созданию которого приложили руки не последние мастера дизайна.

Однако магистральная линия массовой компьютеризации пролегала в другой плоскости. NEXT, обладавший ценой, несколько более чем адекватной его многочисленным достоинствам, постепенно прекратил существование как аппаратная платформа, сохранившись только в качестве программного комплекса NextStep (предшественника современной MacOS X), Amiga пришла в упадок (а потом и вовсе почила, на горе ее многочисленным поклонникам), Apple Macintosh оказался вытесненным в нишевые области - преимущественно сферу высокой полиграфии. По всему миру шло триумфальное шествие Советской власти (то есть, пардон, Intel-совместимых PC).

Надо сказать, что за десять лет существования этой архитектуры персоналки в аппаратной своей части претерпели кардинальные изменения. Появление в 1989 году процессора Intel 80486 вплотную приблизило их производительность к вычислительной мощности рабочих станций на RISC-процессорах. Росли объемы оперативной памяти, емкость жестких дисков, совершенствовалась видеосистема, появлялась первая мультимедийная периферия. А самое главное PC становились все многочисленнее, стандартизованней и дешевле: триединство факторов, против которого все иные архитектуры, в качестве массовых платформ общего назначения, оказались бессильны.

Главным фактором этого триумфа, конечно же, было удешевление железа. Я помню свое состояние, близкое к шоку, когда в 1992 году персоналки класса "бескомпромиссный high-end", стоимостью в 10-12 тысяч долларов, о которых, к тому же, можно было только прочитать в переводных обзорах, в одночасье стали доступны в Москве по цене две - две с половиной тысячи ихних же денег.

Однако, а под чем же работало все это аппаратное богачество? Да в подавляющем большинстве - под MS DOS, 16-разрядной операционной системой, созданной еще для первых IBM PC и несущей в себе массу неустранимых ограничений: принципиальную однозадачность, отсутствием многопользовательского доступа, возможность использовать "по прямому назначению" лишь 640 Кбайт оперативной памяти, примитивную организацию файловой системы, не менее примитивные средства работы в текстовом режиме - единственно возможном силами "черного" DOS.

Конечно, предпринимались многочисленные попытки заретушировать "родимые пятна" DOS. Разрабатывались средства для использования всего физического объема оперативной памяти и многозадачности, такие, как QuaterDesq и Geoworks, содержащие подчас и встроенные или опциональные системы работы в графическом режиме. Некоторые пользовательские DOS-приложения обзаводились собственными средствами управления памятью и графическими интерфейсами (как тут не вспомнить старика Лотуса - табличный процессор Lotus 1-2-3, первопроходца на этой ниве?). Однако почти вся эта многочисленная DOS-косметика была либо неудачной, либо не получила распространения. Ибо пальму первенства в не очень отдаленной перспективе судьба отдала одной из (многих) графических оболочек для DOS, как-то способной эмитировать работу в многозадачном режиме. Ею оказалась приснопамятная Windows до того, как с версией Windows 95 была повышена в звании до операционной системы (без всяких, впрочем, на то оснований - но это совсем другая история).

Конечно, существовали и альтернативы - например, разрабатывавшаяся в IBM операционка OS/2, первая 32-разрядная ОС, специально написанная для PC. Однако и она, не смотря на весьма прогрессивный базис, не пользовалась ни популярностью, ни распространением. О причинах тому можно было бы вспоминать долго - не последней оказалось исключительно пофигистское отношение производителя к своему детищу.

Выше я упоминал про первые Unix для архитектуры PC, от Santa Cruz Operations - SCO Unix (в последующем UnixWare), - и от Microsoft (последняя носила имя XENIX, и представляла собой многозадачную систему с обрезанной возможностью многопользовательского доступа). Однако и им не досталось народной любви - вследствие высокой стоимости и малого количества приложений, а для XENIX еще и урезанной функциональности.

Сложилась парадоксальная ситуация: "народная", то есть общедоступная, платформа не имела адекватной "народной" же операционки, способной использовать ее возможности. Собственно, проект FreeBSD и начался как попытка заполнения "святого места". Но, как мы помним, развитие его затормозилось вследствие привходящих обстоятельств юридического характера. Да и не ориентировались разработчики на конечного пользователя (как не делают этого и по сей день). Так что судьба стать "народным Unix для народной платформы" выпала на долю Linux.

А "свято место" массовой операционки для настольных персоналок оставалось пусто вплоть до 1995 года - появления Windows 95. Началась эра гегемонии платформы Wintel (то есть машин на Intel-совместимых процессорах под управлением ОС Windows). Не смотря на все успехи Linux в последние годы, гегемония эта почти не поколеблена и по сей день.

Сейчас уже мало кто об этом помнит, но попытки борьбы с Wintel-монополией, путем утверждения в качестве пользовательских декстопов, неоднократно предпринимались и "сверху" - со стороны рабочих станций на RISC-процессорах под управлением проприетарных Unix. И надо сказать, некоторые предпосылки к тому имелись: в те времена былинные под Unix развивалось некоторое количество обычных пользовательских приложений. Лучший текстовый процессор всех времен и народов - WordPerfect, замечательная электронная таблица Wings, предвосхитившая большинство достижений Excell, Frameworks - единственная настольная издательская система, пригодная для верстки очень больших и очень сложно структурированных документов, - все они имели и версии под большинство проприетарных Unix-систем.

На моей памяти было три эпизода инфильтрации рабочих станций на столы пользователей - правда, все они относятся к 90-м годам. Первым на этом полей решил сыграть Hewlett-Packard со своей RISC-платформой HP-PA (Precission Architecture) и Unix-операционкой HP-UX. Где-то в 1993-1994 годах появились сообщения о создании пользовательского варианта таких машин, в несколько урезанной (с точки зрения памяти и дискового пространства) комплектации, но зато по вполне "пользовательской" цене, сопоставимой со стоимостью PC-брендов типа IBM или Compaq. А в начале 1995 года машины эти демонстрировались на первой отечественной выставке UnixExpo - и, должен заметить, впечатление производили изрядное, особенно в отношении 3D flying ("облета" виртуального трехмерного ландшафта) и воспроизведения видео в реальном времени - на PC ни то, ни другое были еще практически недоступны.

Вторым вступил в игру DEC с компьютерами на базе процессоров Alpha - первыми в те времена с точки зрения номинального быстродействия и к тому же 64-разрядными. Эти машины были способны работать под управлением нескольких ОС - собственных VAX/VMS и DEC Unix (True64 Unix), Windows NT; существовал тогда уже и порт Unix под процессоры Alpha (кстати, вообще первый порт этой ОС на платформу, отличную от i386). DEC пошел иным путем: предоставил возможность сторонним производителям собирать машины на базе своих процессоров и материнских плат, прочие же компоненты Alpha-компьютеров к тому времени (примерно 1997 год) уже использовались стандартные, те же, что и для PC. Я знал две или три фирмы в Москве, собиравшие на заказ такие, называвшиеся "детскими", машины, также по цене, не превосходящей высококлассные персоналки. Хотя производительность они имели весьма "взрослую". А комплектовались они, по желанию заказчика, любой из поддерживаемых ОС - правда, за отдельную мзду.

В третьем раунде борьбы за пользовательские десктопы (гонг прозвучал в самом конце 90-тых) выступила компания Sun. Она также обратилась к услугам сторонних партнеров, в числе которых были и крупные российские компьютерные фирмы (например, если мне не изменяет память, R-Style). Они продавали самые обычные компьютеры Sparc, комплектовавшиеся, однако, в целях кардинального снижения цены, стандартной для PC видеосистемой (а с 3D Creator, который требовал дорогущего фирменного монитора) и IDE-дисками. Ну и с предустановленной Solaris, разумеется.

Все три проекта потерпели, как говорят в народе, полную фетяску. Причин к тому было несколько:

  • и дороговизна стульев (пардон, десктопов) для трудящихся всех стран, привыкших уже к дешевому и относительно качественному самосбору и утративших привычку меряться брендами;
  • и неудачность комплектации - так, HP-PA в "пользовательском" исполнении скорее напоминал сетевую рабочую станцию, а сфера применения "самосборных" Sparc вообще оказывалась неясной;
  • и прекращение развития большинства пользовательских приложений для проприетарных Unix;
    • и, наконец, просто утвердившаяся среди конечных пользователей привычка к Windows всякого рода.

Не последнюю роль в неудаче проприетарных Unix-десктопов сыграло и то, что к тому времени уже существовал Linux. Причем активно распространялся среди тех самых "продвинутых" пользователей, которые могли бы составить целевую аудиторию настольных Unix-машин.

В заключение заметки можно было бы порассуждать на темы альтернативной истории. Например, о том, что было бы, если бы платформа Alpha с ОС Linux на борту во второй половине 90-тых завоевала бы хоть какую-то популярность. Но история не имеет сослагательного наклонения. И единственное, что мы можем извлечь из нее, - это память об ошибках. Ибо забытая история мстит - тем, что имеет обыкновение повторяться...

Назад Дальше


Впоросы истории Unix, Linux и Open source, затронутые в настоящих заметках, можно обсудить на форуме posix.ru в специальной теме: http://forum.posix.ru/viewtopic.php?id=111

[ опубликовано 14/02/2006 ]

Алексей Федорчук (alv@posix.ru) - Предыстория Linux: "железная" интермедия   Версия для печати