Алексей Федорчук - Вопросы истории: UNIX, Linux, BSD и другие
Однако миникомпьютеры доживали свой век – на смену им серверы и рабочие станции на фантастически мощных по тем временам RISC-процессорах, объединённые в сети с клиент-серверной архитектурой. Они уже имели вид, подобный обычным персоналкам – с системным блоком, монитором и клавиатурой, а затем и мышью, а рабочие станции к тому же находились в индивидуальном пользовании.
Первые рабочие станции выпустила в 1981 году фирма Apollo. Они были основаны на процессоре Motorola 68000, имели сетевые интерфейсы и объединялись в клиент-серверные сети. Однако операционной системой для них был не UNIX, а собственная разработка – Aegis, позднее переименованная в DOMAIN/OS. Впрочем, ни под тем, ни под другим именем с UNIX она была несовместима, хотя, как говорят, и была с ней сходна внешне, в частности, своим командным интерфейсом.
Машины Apollo, носившие название DN100, были сами по себе дороги, а разработка софта для них, вследствие своеобразия закрытости операционки, обходилась ещё дороже. Что открывало путь к созданию альтернативных решений – более дешёвых и совместимых.
И такое решение появилось мгновенно. В том же 1981 году аспирант Стэнфордского университета Энди Бэчтольшайм (Andy Bechtolsheim), участвуя в работах по созданию сети для своей альма-матер, из отходов производства собрал машину на том же процессоре Motorola 68000. А в 1982 году он вместе Винодом Хосла (Vinod Khosla) основал компанию SUN, что первоначально расшифровывалось как Stanford University Networks, но быстро обрело «солнечную» символику – интересно, не читали ли основатели Луч света в тёмном царстве? Чуть позже третьим к ним присоединился Скотт МакНили (Scott McNealy).
«Трое появились не случайно» – они поставили себе целью создать мощный, но относительно дешёвый компьютер, основанный на стандартных промышленных компонентах. Затея эта удалась – и на протяжении 80-х годов одна за другой выпускаются машины Sun-1, Sun-2, Sun-3, основанные на процессорах Motorola 68XXX.
Стандартизация аппаратной части требовала столь же стандартной операционной системы, каковая могла основываться только на UNIX. И разработкой её занялся Билл Джой, тот самый, который, как мы увидим в главе второй, до того активно участвовал в создании BSD. И нет ничего странного в том, что именно она и была положена в основу новой ОС.
То был отнюдь не единственный пример портирования UNIX на платформу 68XXX. Мало кто ныне помнит, но, например, Apple разрабатывала собственную версию ее, под названием AUX, задолго до MacOS X – чуть не сразу после появления первого Mac’а.
Однако UNIX портировался не только – и не столько – на машины с процессором 68XXX. «Дурной пример» Sun оказался заразительным – и этим путём пошли такие разработчики собственных платформ, как IBM, Hewlett-Packard, DEC. Именно они стали и разработчиками собственных же вариантов UNIX.
Компьютеры для народа
А что же собственно персоналки, именовавшиеся в те годы IBM PC-совместимыми компьютерами? И ныне для большинства пользователей ассоциирующиеся с самим понятием компьютера.
А поначалу – ничего. Первый широко распространившийся персональный компьютер, собственно IBM PC и развивавший его линию IBM PC/XT, базируясь на внутренне 16-разрядных процессорах Intel 8088 и 8086, работать под исходно 32-битной UNIX не мог, как не способна была на это и персоналка следующего поколения, IBM PC/AT на процессоре Intel 80286.
Только появление в 1985 году первого 32-разрядного процессора от Intel – 80386, дало возможность использовать UNIX на дешевых и общедоступных персоналках. Так что именно здесь пролегала магистральная линия массовой компьютеризации – по всему миру шло триумфальное шествие Советской власти (то есть, пардон, Intel-совместимых PC).
Но под чем же работало все это аппаратное богачество? Да в подавляющем большинстве – под MS DOS, 16-разрядной операционной системой, созданной ещё для первых IBM PC и несущей в себе массу неустранимых ограничений: принципиальную однозадачность, отсутствие многопользовательского доступа, возможность использовать «по прямому назначению» лишь 640 Кбайт оперативной памяти, примитивную организацию файловой системы, не менее примитивные средства работы в текстовом режиме – единственно возможном силами «черного» DOS.
Конечно, предпринимались многочисленные попытки заретушировать «родимые пятна» DOS. Разрабатывались надстройки над ней, способные использовать вес физический объём оперативной памяти и многозадачность, такие, как QuaterDesq и Geoworks. Которые включали также и системы работы в графическом режиме. Некоторые пользовательские DOS-приложения (табличные процессоры Lotus 1-2-3 и QuattroPro, текстовый редактор WordPerfect) обзаводились собственными средствами управления памятью и графическими интерфейсами.
Вся эта многочисленная DOS-косметика была либо неудачной, либо не получила распространения. Конечно, существовала и альтернатива ей – разрабатывавшаяся в IBM операционка OS/2, первая 32-разрядная ОС, специально написанная для PC. Однако и она, не смотря на весьма прогрессивный базис, не приобрела широкой популярности. О причинах этого можно было бы вспоминать долго – не последней оказалось исключительно пофигистское отношение производителя к своему детищу.
Сложилась парадоксальная ситуация: «народная», то есть общедоступная, платформа не имела адекватной «народной» же операционки, способной использовать её возможности. И в следующей главе мы проследим зарождение и развитие первой претендентки на этот титул.
Увы, претензии эти оказались не реализоваными. А «свято место» массовой операционки для настольных персоналок оставалось пусто вплоть до 1995 года – появления Windows 95. Началась эра гегемонии платформы Wintel (то есть машин на Intel-совместимых процессорах под управлением ОС Windows). И гегемония эта практически не поколеблена и по сей день. Не смотря на несколько попыток борьбы с ней в 90-е годы. Не смотря на тщившиеся стать народными Mac'и во всех их проявления. Не смотря на все успехи последних лет в продвижении Linux. Но об этом – позднее.
Глава вторая. Берклиада
История возникновения и раннего развития BSD-систем, а в дальнейшем наиболее популярной из них – FreeBSD, поистине эпична сама по себе. И к тому же она оказалась поворотной точкой в дальнейшей судьбе всех открытых и свободных операционок. И потому заслуживает подробного рассмотрения, которое, начавшись в этой главе, будет продолжено в главах пятой и седьмой.
«Похищение Елены Прекрасной»
В разделе о зарождении UNIX предыдущей главы упоминался профессор Фабри, который принёс свет UNIX’овой мысли в стены Университета Беркли. Где система попала в условия открытого общения специалистов в области Computer Science самого разного ранга, от профессоров до аспирантов – именно такой статус имели во второй половине 70-начале 80-х годов прошлого века Билл Джой (Bill Joy, в последующем, как мы уже видели, один из основателей компании Sun), Маршалл Керк МакКузик (Marshall Kirk McKusick), Озалп Бабаоглу (Özalp Babaoğlu). Их усилиями, вкупе с другими сотрудниками университета, система UNIX медленно, но верно превращалась именно в то, чем она стала ныне. Достаточно сказать, что на счету «ранних берклианцев» разработка системы управления виртуальной памятью, концепции сокетов для взаимодействия между процессами, текстовый редактор vi, ставший в лице своего клона Vim неотъемлемой частью всех UNIX-подобных систем, и командная оболочка C-shell (csh), положившая начало интерактивным методам работы в командной строке.
Нам, избалованным мощными и красивыми текстовыми редакторами для графического режима (или, по вкусу, изощрёнными возможностями нынешнего Vim’а), современными командными оболочками типа bash и zsh, трудно сейчас оценить, какую роль в дальнейшем развитии UNIX-подобных систем сыграли vi и csh, выглядящие сегодня столь невзрачными.
Сотрудники Беркли оказались первыми и в организации распространения результатов своих работ. Этой цели служила Berkely Software Distribution или, сокращённо, BSD – система распространения разработанного в университете софта на магнитных лентах, от которой в конечном итоге происходит всё многообразие форм BSD- и Linux-дистрибуции.
Первые выпуски BSD (1BSD и 2BSD), вышедшие в 1978 году, ещё не представляли собой цельных систем, а содержали лишь набор утилит и приложений собственной разработки. О какой-либо системной целостности можно говорить, начиная с 3BSD (1979 год) – правда, целостность эта в значительной мере была обусловлена включением компонентов собственно UNIX.
Однако именно выпуск 3BSD послужил причиной тому, что команда UNIX-разработчиков Беркли получает в 1980 году грант упоминавшегося в прошлой главе DARPA с целью разработки протокола передачи данных для сети ARPANET, который ныне известен как протокол TCP/IP.
Практически одновременно с получением гранта DARPA Бобом Фабри формируется команда CSRG (Computer System Research Group), которая объединила всех трудящихся университета Беркли (и не только его), связанных с развитием берклианской ветви UNIX. Начиная с октября 1980 года, на протяжении двух с небольшим лет эта группа последовательно выпускает 4BSD, а затем 4.1BSD в нескольких версиях: собственно 4.1BSD – июнь 1981 года, 4.1a, 4.1b и 4.1c (1982—начало 1983 года).