Сага о FreeBSD. Берклиада, или предыстория одной системы


Автор: Алексей Федорчук

Определившись в предыдущей главе со спецификой FreeBSD, давайте посмотрим, как эта система дошла до жизни такой. Для чего обратимся к её истории. В своей протоисторической части она во многом перекликается с материалами по истории Linux. А один из форков настоящего повествования — DragonFlyBSD: история полета.

Древнее золото редко блестит,
Древний клинок — ярый.
Выйдет на битву король-следопыт:
Зрелый — не значит старый.
Дж.Р.Р.Толкиен, Властелин Колец
(перевод А.Кистяковского)

FreeBSD и апология истории

История FreeBSD не получила столь широкой известности, как история Линуса Торвальдса и его Linux’а. Не написано о ней и книг, подобных Just for Fun: ключевые разработчики этой системы ограничились краткими очерками, содержащими порой несколько противоречивую трактовку событий. Однако история FreeBSD заслуживает самого подробного рассмотрения.

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

Многое в этой главе, возможно, покажется непонятным совсем начинающему пользователю FreeBSD, особенно если раньше он вообще не сталкивался с Unix-подобными системами. Однако я надеюсь, что все неясные моменты получат своё объяснение в последующих главах. И тогда, возможно, он вернётся к этому очерку и посмотрит на историю FreeBSD ещё раз.

Для чего я привожу столь подробную ретроспекцию по истории FreeBSD в книге, рассчитанной на начинающего (в том числе и совсем начинающего) пользователя? Того самого, которому, вероятно, не терпится, получив некий необходимый минимум сведений, броситься на установку системы, как на амбразуру ДЗОТа. Да потому, что, по моему скромному мнению, невозможно понять и, тем более, полюбить эту систему, не ознакомившись с её историей.

В подтверждение своей точки зрения сошлюсь на слова Мэтта Диллона, в прошлом одного из ключевых разработчиков FreeBSD, а ныне создателя её форка — операционной системы DragonFlyBSD:

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

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

С чего начинается история?

В ночь с 19 на 23 декабря текущего, 2008 года прогрессивное человечество имеет возможность торжественно отметить 15-летний юбилей FreeBSD: именно в промежуток между этими датами ложится время создания первых файлов версии 1.0 этой операционной системы (их можно найти в ftp-архиве проекта. Какую из них принять за дату рождения новой системы?

Действительно, с днём рождения UNIX всё ясно: это 1 января 1970 года, 0 часов по Гринвичу (или, как нынче принято говорить, по UTC — Universal Coordinated Time, хотя это и не совсем одно и то же). Не то чтобы именно тогда она вышла из головы своего создателя, Кена Томпсона, подобно Афине Палладе из головы Зевса: просто с этого момента отсчитывают время (в секундах) системные часы всех Unix-машин мира.

А вот уже в определении даты рождения ОС Linux начинаются расхождения. Считать ли таковой 25 августа 1991 года, когда Линус Торвальдс впервые объявил в одном из списков рассылки о своём намерении создать новую операционную систему? Или отнести её на 17 сентября того же года, когда в каталог pub/OS/Linux на ftp-сервере Технического университета Хельсинки легли исходники версии 0.01? Правда, в любом случае диапазон дат не превышает одного месяца.

С определением дня рождения FreeBSD дело обстоит гораздо сложнее — может быть, именно поэтому он никогда не праздновался (по крайней мере, я об этом не слышал). Конечно, в качестве такового можно принять любую из приведённых выше дат. Или дату состоявшегося примерно в те дни анонса FreeBSD 1.0 — правда, мне не точно удалось выяснить, когда именно: источники указывают просто на конец декабря.

А может быть, отсчитывать существование FreeBSD с наречения ей имени, придуманного Дэвидом Гринменом (David Greenman) в середине 1993 года? — правда, тут точную дату вообще вряд ли установить. Или отнести её рождение на ещё более раннее время, когда на руинах проекта 386/BSD собралась группа его бывших пользователей, для которой имя FreeBSD и было придумано. А возможно, зарождение FreeBSD относится вообще к седой древности — 1978 году, когда впервые началось распространение лет Berkeley Software Distributions, или к году 1974, когда система UNIX попала в стены Калифорнийского университета в Беркли.

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

Как я уже говорил, про историю FreeBSD не создано книги вроде той, что написали Линус Торвальдс и Дэвид Даймонд. И поэтому эту историю приходится реконструировать по серии разрозненных материалов, написанных очевидцами и участниками событий, каждый из которых освещал их под своим углом зрения.

Наиболее полных и последовательных источников — два:
A Brief History of FreeBSD Джордана Хаббарда (Jordan Hubbard), существующий также и в русском переводе;

исторический очерк Керка МакКузика (Marshall Kirk McKusick) Twenty Years of Berkeley Unix, с некоторыми вариациями вошедший в ряд его (написанных с соавторами) книг; в частности, на русском языке с ним можно ознакомиться в книге: МакКузик М.К., Невилл-Нил Д.В. FreeBSD: архитектура и реализация. М: КУДИЦ-ОБРАЗ, 2006.

Дополнительные сведения по истории FreeBSD можно получить в англоязычном и русскоязычном вариантах Википедии поиском по ключевым словам: BSD, FreeBSD, CSRG; в соответствующих статьях содержатся и ссылки на их источники.

Хронологическая канва истории UNIX, BSD и Linux вплоть до 2002 года дана в статье Джорна Баргера Timeline of GNU/Linux and Unix.

Еще более полные сведения по истории UNIX и Unix-подобных систем, представленные в графическом виде, находятся на странице Эрика Льюинеза Unix History. Там же есть немало ссылок на источники информации по теме, в том числе — и по вопросам юридических казусов, связанным с UNIX.

Важным источником сведений об истории различных вариантов BSD вообще и FreeBSD, в частности, являются сами эти системы. Ранние версии BSD-систем, такие как 386BSD и 4.4BSD-lite, можно найти на ряде ftp-серверов, например, здесь и здесь; вот, пожалуй, наиболее полная подборка. А по архиву старых версий FreeBSD можно проследить эволюцию этой системы, начиная с первой её версии и до наших дней.

Вообще поиск в BSD-секторе Google дал массу разрозненных сведений исторического характера, которые оставалось только собрать воедино. Результаты обобщения всех перечисленных источников и предлагаются ниже.

Праистория: Computer Science, ARPANET и UNIX

Праистория FreeBSD, охватившая отрезок времени от начала 60-х до середины 70-х годов прошлого века, слагалась из взаимодействия трёх источников и трёх составных частей:
академической и университетской Computer Science;
работ по созданию систем отказоустойчивой правительственной связи;
корпоративных разработок системы UNIX.

FreeBSD вышла из университетской среды, и потому самые глубинные корни её следует искать в академической “науке о компьютерах” (Computer Science). Она зародилась в начале 60-х годов, после появления первых компьютеров, способных к интерактивной работе. Это были ещё далеко не персональные компьютеры, но, в отличие от ранее существовавших “больших” машин, которые работали исключительно в режиме пакетных заданий, они были способны реагировать на действия пользователя в так называемом режиме разделения времени, что делало их пригодными к использованию в “мирных целях” — в том числе и к разработке операционных систем для них же.

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

В недрах MIT AI родился, судя по всем свидетельствам, и термин “хакер” — так называли друг друга те, кто способен был “врубиться” в компьютерные науки, хотя существуют и другие версии происхождения этого термина. В любом случае, однако, он не имеет ничего общего с обывательским представлением о компьютерных злоумышленниках — интересы истинных хакеров всегда лежали и лежат в иных сферах, в том числе и в сфере компьютерной безопасности.

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

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

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

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

Без академической составляющей не обошлось и здесь. В развитие 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/2000/XP.

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

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

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

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

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

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

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

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

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

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

Начало предыстории: проект BSD и CSRG

В Беркли UNIX попал в условия открытого общения специалистов в области Computer Science самого разного ранга, от профессоров, начиная с Фабри, до аспирантов — именно такой статус имели во второй половине 70-начале 80-х годов прошлого века Билл Джой (Bill Joy, в последующем один из основателей компании Sun), Маршалл Керк МакКузик (Marshall Kirk McKusick), Озалп Бабаоглу (Ozalp Babaoglu). Их усилиями, вкупе с другими сотрудниками университета, система UNIX медленно, но верно превращалась именно в то, чем она стала ныне. Достаточно сказать, что на счету “ранних берклианцев” разработка системы управления виртуальной памятью, концепции сокетов для взаимодействия между процессами, текстовый редактор vi, ставший в лице своих клонов elvis и Vim неотъемлемой частью всех Unix-подобных систем, и командная оболочка C-shell (csh), положившая начало интерактивным методам работы в командной строке.

Нам, избалованным мощными и красивыми текстовыми редакторами для графического режима (или, по вкусу, изощрёнными возможностями нынешнего Vim’а), современными командными оболочками типа bash и zsh, трудно сейчас оценить, какую роль в дальнешем развитии Unix-подобных систем сыграли vi и csh, выглядящие сегодня столь невзрачными.

Однако представьте, что в вашем распоряжении до сих пор была альтернатива из строчного редактора ed без всяких интерактивных возможностей, а также громоздкого и во многом непонятного GNU Emacs (разработка которого, кстати, началась лишь на несколько лет раньше создания vi). И вдруг в одночасье вы получаете в свое распоряжение легкий, универсальный (то есть работающий на всех терминалах, и работающий абсолютно одинаково), простой (да-да, vi в базовой своей части чрезвычайно прост — если воспринимать его именно таким, каким он является) интерактивный редактор. Да к тому же гарантированно имеющийся на любой Unix-машине.

А чтобы осознать, что привнёс с собой csh в командную строку, просто попробуйте поработать сколько-нибудь продолжительное время в /bin/sh, являющейся оболочкой по умолчанию для обычного пользователя во FreeBSD. Выполняя при этом действия хоть на гран сложнее, чем ls и cd. А ведь /bin/sh — это POSIX-шелл, основанный на шелле Корна, до интерактивных возможностей которого первичному для UNIX шеллу Борна, по свидетельству очевидцев, — что до Пекина раком…

Впору ли не воздать должное создателю обеих этих программ Биллу Джою?

Сотрудники Беркли оказались первыми и в организации распространения результатов своих работ. Этой цели служила 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 года).

Модель распространения BSD выглядит весьма запутанной для нас, незнакомых с американским юридическим крючкотворством. Все собственно Берклианские разработки распространялись хотя и не бесплатно, но за минимальные деньги (лента 1BSD, например, стоила 50 долларов), причём дальнейшее их использование было практически свободным, в духе позднейшей BSD-лицензии.

Однако те же разработки в составе цельной работоспособной системы, содержащей UNIX-код, требовали лицензирования последнего, что приводило к удорожанию на порядки. Дело доходило до ситуаций, которые кажутся нам смешными: организации покупали лицензию на использование UNIX у Bell Labs, но заказывали и использовали более функциональную систему из Беркли. Несколько напоминает ситуацию с Windows, когда приобретается не программа как товар, а некое мифическое право на её использование, не правда ли? Такое положение вещей, противоречащее здравому смыслу, не могло продолжаться вечно — и скоро мы узнаем, каким образом оно разрешилось.

Пока же вернёмся к развитию BSD-линиии. Наконец, в августе 1983 года, была выпущена система 4.2BSD — та самая, на разработку которой собственно и был получен грант DARPA. К этому времени Билл Джой, сыгравший большую роль в разработке предыдущих версий, покинул Университет Беркли и стал соучредителем новой компании Sun Microsystems. На первые же роли в проекте BSD вышли Майк Карелс (Mike Karels) и Керк МакКузик.

Система 4.2BSD аккумулировала в себе как все ранние достижения берклианской мысли, так и разработки, выполненные уже в рамках CSRG и как бы “порционно” появлявшиеся в последовательности версий 4.1BSD. Из которых главнейшими были протокол TCP/IP и новая файловая система FFS (Fast File System). Это и обусловило новизну и своеобразие системы, предопределившей развитие линии BSD на многие годы вперёд.

О значении TCP/IP много говорить не приходится: если вы читаете эти строки, значит, тем или иным образом имеете доступ в Интернет. Так вот, без TCP/IP ничего этого не было бы: ни Интернета, ни доступа к нему, ни, тем более, этой главы, материал для которой по крупицам собирался именно в Сетевых источниках.

А чтобы понять значение FFS, достаточно вспомнить особенности исконной для UNIX файловой системы — s5fs с её ограничением на длину имени файла (14 символов) и количеством файлов на разделе (не более 65 тысяч), отсутствием понятий группировки блоков и, напротив, внутренней их фрагментации, — короче говоря, всего того, что пользователю, например, Linux’а представляется присущим файловой системе от века. Так вот, до появления FFS всего этого не было. И все файловые системы современных Unix’ов, как свободных, так и проприетарных, берут свое начало не от s5fs, а от FFS из Беркли, если не прямо, то опосредованно, через развитие заложенных в ней принципов.

Система 4.2BSD не только предопределила направление развития всех последующих представителей BSD-семейства, но и оказала большое влияние на UNIX “чистой линии”. Ведь UNIX от AT∓T, за которым со временем закрепилось название System V, развивался и в своей Alma Mater, и во многих других компаниях, лицензировавших его, давая немало клонов, оказавших то или иное влияние на систему в целом. Однако они отмирали, сливались, перекрещивались, и имена их ныне помнят только очевидцы событий и особо интересующиеся вопросом. И постепенно реальностью стало существование двух линий развития Unix: System V в её многочисленных реализациях и BSD. Причём, в силу открытости берклианских разработок, достижения 4BSD (протокол TCP/IP, вариации на тему FFS) быстро инкорпорировались и в System V. Так что, начиная с System V Realese 4 (SVR4), говорить от первозданном Unix уже не приходится.

Именно SVR4 легла в основу большинства современных (то есть ныне здравствующих и развивающихся) коммерческих UNIX-систем, таких, как HP-UX фирмы Hewlett-Packard, AIX от IBM, Sun Solaris, SGI IRIX, SCO Unixware (если последнюю еще можно считать живой), не считая некогда передовых, но прекративших свое развитие систем вроде True64 от в Бозе почившей фирмы DEC. В последующем SVR4 оказала влияние и на развитие Linux, хотя, вопреки утверждениям SCO, между ними нет никакого “кровного родства” в виде общего кода.

Линия BSD тоже давала боковые отростки, в том числе и коммерческие. В их числе SunOS — ранняя операционная система для машин одноименной фирмы на процессорах Sparc, позднее заменённая на Solaris от линии SVR4; или A/UX для Macintosh на процессорах Motorolla 68xxx — да, уже встарь были попытки приобщения Mac’ов к миру Unix, нашедшие в конце концов свое воплощение в современной MacOS X, которая также имеет непосредственное отношение к миру BSD-систем.

Отдельным побегом линии BSD стали микроядерные операционки, в первую очередь Mach, разрабатывавшаяся в Университете Карнеги-Меллона, а затем — в университете штата Юта. Некогда она рассматривалась как прообраз операционных систем будущего, однако на практике возлагавшихся на него надежд не оправдала. Сам по себе проект Mach давно прекратил своё развитие, как и все его прямые отпрыски, Yamit и xMach. Но он, в свою очередь, успел дать несколько потомков косвенных.

Во-первых, на микроядре Mach долгое время базировался перманентный долгострой проекта GNU — Hurd, призванный заменить все прочие операционки FOSS. И хотя ныне Mach в нём заменяется на иное микроядро, L4, завершение этого проекта теряется в той же туманной дали, что и светлое коммунистическое будущее всего человечества.

Во-вторых, микроядро Mach использовалось в легендарной системе NEXTStep, сначала на её собственной аппаратной платформе, затем — на платформе x86. Эта система, опередив свое время, также приказала нам всем жить долго, однако оказала очень большое влияние на последующее развитие всей индустрии персональных компьютеров. И во многом послужила прообразом для позднейшей MacOSX, также основанной на Mach и системных сервисах BSD. Правда, назвать MacOSX микроядерной можно только с очень большой натяжкой…

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

Пора опять возвращаться к магистральной линии развития BSD. Каковая после выхода 4.2BSD, оказавшейся переломной в развитии этой системы, приобрела плавно поступательный характер. Новые релизы появляются относительно редко: выход 4.3BSD датируется июнем 1986 года, а её последовательных инкарнаций — 4.3BSD-Tahoe и 4.3BSD-Reno — июнем 1988 и началом 1990 года соответственно.

Выход следующего релиза, 4.4BSD, который готовился как квинтэссенция всей предшествующей Берклиады, был запланирован на 1993 год. И действительно произошел почти в установленные сроки. Однако ему суждено было стать и последним в ряду всех систем линии 4.xBSD: потому что в интервале 1990-1993 года произошло несколько событий, которые в своей совокупности изменили весь ход истории BSD-систем. Да пожалуй, что и всей истории операционных систем вообще. А весь этот период можно охарактеризовать как

Межвременье

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

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

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

Например, в сагах обычен такой оборот:

Некоторое время после этого ничего не происходило.

Саги — не только литературные произведения, но и исторические источники, хотя и весьма своеобразные. И большая часть того, что в них описывается, происходило на самом деле. Так что иногда по косвенным данным (например, по сопоставлению с собственно историческими источниками из сопредельных стран, содержащих датировки в общепринятом для нас ныне формате) удаётся определить абсолютную продолжительность того “некоторого времени”, когда не происходило ничего, заслуживающего быть помещённым в контекст сюжета саги. И оказывается, что такие периоды могли длиться годами, а то и десятилетиями. Для авторов и читателей саг они выпадают из течения времени, находятся вне его. А может быть, для них время, пардон за тавтологию, в это время просто не существует…

Но потом события начинают разворачиваться, как отпущенная пружина, — и время появляется вновь: в короткий по абсолютному (то есть внешнему) исчислению его отрезок событий впрессовывается столько, что их хватает на целую сагу. Время, измеренное по внутренней, событийной шкале, оказывается чрезвычайно длинным.

Именно такой, очень длинный по внутренней хронологии отрезок времени и выпадает в истории FreeBSD на 1990-1993 годы по времени внешнему, астрономическому. Ибо в этот интервал впрессовалось множество событий,
которые изменили лицо всей IT-индустрии (хотя увидели и, тем более, осознали мы это не сразу). В конечном счете, они привели и к возникновению FreeBSD в её современном виде.

В отличие от исландцев XIII века, когда сочинялись саги (или записывались — на этот счёт существуют различные мнения), для нас отсутствие событий является нормой. То есть какие-то события происходят всё время — и ныне ежедневно их случается, наверное, больше, чем было за весь “Век саг” (период с 930 по 1030 годы, к которому относится действие большей части так называемых “саг об исландцах”). Но именно обилие событий приводит к тому, что мы их как бы не замечаем, если они происходят не с нами и нашими близкими. И потому “вневременье” исладнских саг для нас воспринимается как его естественное течение, а периоды концентрации событий, напротив, — как выпадающие из него. То есть как своего рода “межвременье”.

Так какие же события оказались впрессованными в тот период межвременья, который имеет отношение к нашей истории?

Во-первых, широкое распространение первой общедоступной и, притом, достаточно мощной аппаратной платформы, за которой позднее закрепились имема i386 или x86.

Во-вторых, превращение проекта BSD в по-настоящему свободный, обусловленное внутренней логикой его развития, но ускоренное рядом внешних факторов.

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

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

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

Компьютинг для народа

Внимательный читатель наверняка заметил, что, говоря о развитии систем BSD, я ни словом не обмолвился об аппаратных платформах, на которых эти системы работали. Пора ликвидировать этот пробел. Тем более, что развитие эволюция платформ, на которых работали ранние UNIX и BSD, являются такой же предысторией “общенародного PC”, как сам проект BSD выступает по отношению к героине нашего романа.

Материалы, касающиеся истории вычислительной техники, принято вести с тех времён, “когда компьютеры были большими”. Нашу же историю мы, напротив, начнём с того момента, когда компьютеры начали становиться маленькими, за что и получили имя миникомпьютеров. Впрочем, самым главным был не габарит новых машин (размером с 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.

Начиная с середины 80-х годов, на смену миникомпьютерам пришли серверы и рабочие станции на фантастически мощных по тем временам RISC-процессорах. Они уже имели вид, подобный обычным персоналкам — с системным блоком, монитором и клавиатурой, а затем и мышью, да и находились в индивидуальном использовании.

Объединение RISC-машин в клиент-серверные сети дало новый толчок развитию Unix: именно под такие распределенные компьютерные системы создавались корпоративные варианты этой ОС, каждый из которых был способен работать только на собственной аппаратной платформе с несовместимыми друг с другом RISC-процессорами. И именно в Беркли предприняли первые шаги для ликвидации этой несовместимости: грядущую 4.4BSD планировалось портировать на машины с RISC-процессорами Sparc и MIPS.

Однако магистраль приближения к общенародному компьютеру проходила не в направлении RISC-машин, и даже не через сферу компьютеров с процессорами серии Motorolla 68xxx, которые, в лице Macintosh и Amiga, приобрели черты настоящих персональных компьютеров.

Настоящими персоналками стали IBM PC-совместимые компьютеры. До поры до времени, базируясь на внутренне 16-битных процессорах Intel 8088/8086 и 80286, они и близко не могли тягаться ни с ветеранами-VAX, ни с новообразованными RISC-машинами. Однако в 1985 году внутри них поселяются первые 32-разрядные процессоры от Intel — 80386. А появление в 1989 году процессора Intel 80486 вплотную приблизило их производительность к вычислительной мощности рабочих станций на RISC-процессорах.

Одновременно росли объемы оперативной памяти, емкость жестких дисков, совершенствовалась видеосистема, появлялась первая мультимедийная периферия. А самое главное, PC становились все многочисленнее, стандартизованней и дешевле: триединство факторов, против которого все иные архитектуры, в качестве массовых платформ общего назначения, оказались бессильны. По всему миру шло триумфальное шествие Советской власти (то есть, пардон, Intel-совместимых PC). И главным фактором этого триумфа, конечно же, было удешевление железа.

Интересно, что примерно в это время (около 1992 года) в PC/Magazine появляется статья (имя автора, к сожалению, вылетело у меня из памяти — но это был один из регулярных колумнистов журнала) под зловещим названием “Через 10 лет все платформы, кроме IBM PC, уйдут в небытие”. Тогда это казалось страшной сказкой — однако прогноз начал сбываться опережающими темпами, завершившись окончательно в 2005 году, когда последняя альтернативная x86 платформа, PowerPC, с переходом Macintosh на процессоры Intel прекратила свое существование.

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

Конечно, предпринимались многочисленные попытки заретушировать “родимые пятна” DOS. Однако они не меняли общей картины: “народная”, то есть общедоступная, и при этом уже весьма мощная платформа не имела адекватной “народной” же операционки, способной использовать ее возможности.

“Свято место” не могло быть пустым слишком долго. Тем более что на него было немало претендентов: и косметические DOS-надстройки — от QEMM386 с графическим интерфейсом DeskView до чисто графических Geoworks и Windows, адаптированные под PC версии UNIX (SCO Unix и XENIX) и OS/2, первая 32-разрядная ОС, специально написанная для IBM-совместимых персоналок. Позднее на место в этих рядах стал претендовать Linux.

Собственно, и проект FreeBSD — как мы увидим в следующем разделе, зародился в недрах CSRG в попытке заполнить “святое место”.

BSD: начало освобождения

В истории BSD и CSRG мы остановились на моменте выхода 4.3BSD и двух её последовательных инкарнаций — 4.3BSD-Tahoe и 4.3BSD-Reno. Как мы теперь знаем, базовой платформой для всех них был VAX. Однако 4.3BSD-Tahoe была примечательна тем, что в ней были обособлены машинно-зависимые и машинно-независимые части кода, что создавало предпосылки для грядущего портирования на иные архитектуры, планировавшиеся в версии 4.4. А 4.3BSD-Reno и была прототипом этой грядущей ветки, предназначенным для обкатки намечавшихся новшеств.

Параллельно с основными выпусками 4.3BSD было подготовлено еще два как бы дополнительных — 4.3BSD Net1 (март 1989 года) и 4.3BSD Net2 (июнь 1991 года). Основываясь на 4.3BSD-Tahoe и 4.3BSD-Reno соответственно, они содержали исключительно компоненты, разработанные в Беркли и полностью освобождённые от какого-либо кода первозданного UNIX. И потому могли распространяться свободно как в бинарном виде, так и в виде исходных кодов.

Название выпусков 4.3BSD Net# (или Networking Release#) связано с тем, что они замышлялись, в первую очередь, как подборки инструментария для работы с сетями — главным образом, по протоколу TCP/IP. Таково было пожелание пользователей, нуждавшихся в этих средствах, но по тем или иным причинам не испытывавших потребности в лицензировании собственно UNIX-кода. Однако, как мы увидим далее, значение этих выпусков скоро переросло поставленные первоначально скромные цели.

И 4.3BSD Net1 стал первой системой из Беркли, которая распространялась под лицензией BSD (ещё в первом её варианте, включавшем требование упоминать Регентский совет Калифорнийского университета при дальнейшем распространении).

А оно не замедлило воспоследовать: номинальная цена за ленту 4.3BSD Net1 была установлена в 1000 долларов. Однако, поскольку лицензия это не запрещала, далее копии ленты могли распространяться совершенно свободно, копироваться, устанавливаться на любое количество машин, передаваться и даже выкладываться на анонимные ftp-сервера. Что, разумеется, и происходило — однако, по свидетельству очевидцев этой истории, немало организаций не сочли для себя накладным заплатить указанную сумму. Причём не столько ради получения самого кода — его, как уже сказано, можно было получить и бесплатно, сколько для финансовой поддержки проекта.

Подобная практика распространения продолжалась и позднее — после выхода 4.3BSD Net2. И опять с тем же результатом — несмотря на возможность откровенной и вполне законной халявы, нашлось несколько сотен контор и даже частных лиц, которые выложили 1000 баксов за обладание дистрибутивной лентой. Среди таковых оказался и Грег Лией — в последующем один из ключевых разработчиков FreeBSD.

Факт столь массового спроса на 4.3BSD NetX тем более примечателен, что ни первый, ни второй её выпуск не содержал самодостаточной, загружаемой ОС, а включал только системное обрамление и комплекс утилит, в первую очередь, для работы с TCP/IP. И пользователи, кем бы они ни были, организациями или частными лицами, покупали её на свой страх и риск, так как превращением её в законченную операционку они должны были озаботиться сами.

В ходе подготовки выпусков 4.3BSD Net1 и Net2 обнаружилось, что проприетарного (то есть патентованного) кода первозданного UNIX, права на который к тому времени перешли к USL (UNIX Systems Laboratory — дочерняя компания AT&T, созданная специально для продвижения этой системы) в составе берклианских Unix’ов осталось не так уж и много. И родилась идея создания полностью открытой, свободно распространяемой операционной системы BSD. Правда, даже в наиболее полном выпуске 4.3BSD Net2 недоставало нескольких ключевых фрагментов, которые превратили бы его в полноценную операционную систему, полностью свободную от наследия UNIX. Их и следовало воспроизвести в первую очередь.

Как можно судить по косвенным данным (прямых указаний на это в источниках я не обнаружил), примерно в это же время прекращается или резко сокращается финансирование проекта BSD со стороны DARPA. Есть подозрение, что причиной тому послужил распад мировой системы социализма — все в жизни имеет свою оборотную сторону, даже крах коммунистической идеологии. И хотя CSRG просуществовала еще несколько лет (как структурное подразделение, она была расформирована в 1995 году), ряд её сотрудников начал подыскивать себе другие занятия.

В числе их оказались Билл Джолитц (Bill Jolitz) и Линна Джолитц (Lynne Jolitz). Они поставили своей целью, во-первых, воспроизвести те самые недостающие звенья между 4.3BSD Net2 и полноценной ОС (в источниках речь идёт о шести файлах), а во-вторых, портировать новообразованную систему на ту самую демократическую платформу, о которой шла речь — на i386.

Обе задачи были успешно решены в течении полугода после выпуска 4.3BSD Net2. И в результате в январе 1992 года свет увидела работоспособная система под названием 386BSD, первая из всех берклианских систем, полностью свободная от проприетарного кода, и первая же, адаптированная для машин с процессором i386, что и было вынесено в её титулатуру (хотя она была известна также под именем JOLIX).

Распространялась система 386BSD исключительно по сети, как в откомпилированном виде, так и в исходниках, и сразу, несмотря на содержащиеся в ней ошибки, приобрела популярность среди широких народных масс. Следствием этого стало появление большого количества исправлений, дополнений и улучшений исходной системы, которые составили корректирующий комплект, получивший неофициальное название patchkit (набор заплаток), делающий 386BSD пригодной к практическому использованию.

Некоторое время “заплаточный” проект развивался усилиями энтузиастов при координации Билла Джолитца. Однако довольно скоро выяснилось, что он не может уделять ему столько времени, сколько требовала обработка многочисленных поступающих патчей. И на некоторое время “заплаточный проект” оказался заброшенным.

Правда, практически сразу, в начале 1993 года, на базе 386BSD была образована группа NetBSD, однако её разработки пошли по иной линии, нежели та, которая была намечена в системе-предшественнице, а именно: в направлении поддержки максимального числа платформ из существовавших в то время. В дальнейшем эта деятельность привела к созданию операционной системы NetBSD, знаменитой широтой охвата поддерживаемых процессоров: список их занимает не одну экранную страницу, и i386, как и x86_64, занимает в нём отнюдь не привилегированное место. Да и как система, хоть в малейшей мере ориентированная на десктопное использование, она своими разработчиками не позиционировалась никогда. И хотя NetBSD по сей день остаётся в тесном взаимодействии с другими BSD-системами, дальше речи о ней почти не будет.

Рождение FreeBSD

А сама по себе 386BSD вместе с её корректирующим набором, находилась в полном пренебрежении со стороны её разработчика. И тогда из среды энтузиастов системы, не примкнувших к группе NetBSD, выдвинулась группа координаторов “заплаточного” проекта, получившего условное название 386BSD 0.5 или 386BSD Interim.

В их числе были Джордан Хаббард (Jordan Hubbard, ныне работающий в фирме Apple директором по технологиям UNIX), Нейт Вильямс (Nate Williams) и Род Граймс (Rod Grimes), оказавшиеся самыми последовательными приверженцами patchlit’ов. Они разработали промежуточный снапшот системы, очищенный от “заплаточных” излишеств, которых накопилось достаточно, и управлять которыми становилось всё труднее.

Однако планы “тройки по борьбе с басмачами” (пардон, заплатками) были нарушены, когда Джолитц окончательно прекратил поддержку своего проекта, не оставив ясных указаний насчёт того, что уже сделано, и что надлежит сделать для его дальнейшего развития.

Но это уже не смогло остановить развитие проекта. А примкнувший к нему Дэвид Гринмен (David Greenman) придумал для него и имя — FreeBSD, право на которое было приобретено в качестве собственности проекта.

Вахта же Хаббарда выразилась в том, что он наладил контакт с компанией Walnut Creek CDROM, образовавшейся незадолго до этого (в 1991 году) для распространения всякого рода Free- и Shareware (а также и собственно Free Software) на компакт-дисках. Если вспомнить, что до превращения CD-приводов в стандартный атрибут настольных персоналок оставалось ещё несколько лет, можно оценить степень новаторства этой фирмы.

Что нашло свое выражение и применительно к FreeBSD. Общепринятым способом распространения сколько-нибудь объёмного программного обеспечения (за исключением коммерческого “коробочного”) в те годы были публичные ftp-сервера. Однако доступ к Интернету, по крайней мере, для частных лиц, был тогда ещё большей экзотикой, нежели CD-привод в индивидуальном десктопе. И Хаббард предложил совершенно новую по тем временам идею — распространение дистрибутива операционной системы на компакт-дисках.

Как пишет Хаббард,

Компания Walnut Creek CDROM не только поддержала идею распространения FreeBSD на CD, но ещё и предоставила проекту компьютер для работы и быстрый доступ к Интернету.

Это если и не предопределило успех проекта, то немало ему способствовало. По его же свидетельству,

Без почти беспрецедентной веры Walnut Creek CDROM в этот проект, в то время полностью неизвестный, вряд ли FreeBSD зашла бы так далеко и так быстро…

В результате этого сотрудничества в декабре 1993 г. совместные усилия проекта FreeBSD и фирмы Walnut Creek обрели зримое воплощение в виде FreeBSD 1.0, распространявшейся не только с ftp-серверов, но и на компакт-дисках. Таким образом, FreeBSD стала пионером в этом, ныне столь привычном для нас, способе распространения дистрибутивов — наряду со Slackware Linux Патрика Фолькердинга, которую Walnut Creek начала распространять тем же образом примерно в то же время.

FreeBSD 1.0 включала в себя компоненты из BSD4.3 Net 2, 386BSD и её “заплаточного” проекта, а также ряд утилит, разработанных в рамках проекта GNU. Он имела большой успех, который был закреплён и развит выпуском в мае 1994 года версии FreeBSD 1.1.

Представление о том, что содержалось в первой версии FreeBSD, можно получить из просмотра ftp-архива старых версий этой операционной системы.

Однако здесь в наше повествование врезается детективная линия, которая могла бы составить сюжет романа Гарднера про Перри Мэйсона, к рассмотрению которой мы и переходим.

Технологический детектив

Система 386BSD и наследовавшие её NetBSD и FreeBSD были не единственными попытками создания BSD, свободной от проприетарного кода. Еще один вариант её был реализован специально для этого созданной в 1991 году фирмой BSDI (Berkeley Software Design Incorporated) — но уже преследуя коммерческие цели (это еще одно косвенное свидетельство прекращения финанасирования DARPA разработки собственно BSD-проекта).

Фирма BSDI занялась разработкой собственной BSD-системы, взяв за основу всё ту же ленту 4.3BSD Net2 и начав, как и Джолитцы, с написания шести недостающих файлов. Возникшая в результате система получила имя BSD/386 (в дальнейшем она была известна как BSDi и BSD/OS) и стала распространяться в бинарном виде вместе с исходниками по цене 995 долларов под первым вариантом лицензии BSD, — ведь, как мы помним из предыдущей главы, все лицензии BSD-стиля не запрещают любое коммерческое использование подпадающего под них программного обеспечения.

Упоминание Калифорнийского университета и Регентского совета как создателей и владельцев распространяемой системы, присутствовавшее в первом варианте BSD-лицензии, делало фирму как бы сопричастной последнему — тем более, что она была образована в основном бывшими сотрудниками CSRG. Среди них был и Ричард Стивенс (Richard Stevens), главный разработчик BSD/OS, известный также как автор книг по UNIX и протоколу TCP/IP (он скончался в 1999 году в возрасте 48 лет).

Не менее важным, чем причастность BSDI к Калифорнийскому университету, обстоятельством для дальнейших событий оказалось то, что её система позиционировалась, как UNIX, и заказ её можно было осуществить, обратившись по номеру телефона, содержащему слово UNIX (1-800-ITS-UNIX). А оно, как мы уже неоднократно отмечали, стало к тому времени торговой маркой, которой владела USL, дочерняя фирма AT&T. Которая как раз в это время получила, наконец, право коммерческого использования UNIX…

Обе ветви Unix, System V и BSD Unix, сосуществовали мирно, подобно капиталистической и социалистической общественным системам. Однако лишь до поры, до времени — пока не появилась юридическая возможность коммерческого распространения Unix, само это слово (в форме UNIX) не стало торговой маркой, соответствие которой должно было сертифицироваться, — короче говоря, пока не запахло “баблом”. И вот тут-то формальные правообладатели UNIX начали предъявление претензий к разработчикам BSD-систем.

Первые претензии со стороны USL, однако, касались только компании BSDI и затрагивала лишь рекламную сторону дела: использование последней торговой марки UNIX без соответствующего лицензирования и “вводящего в заблуждение” телефонного номера. Обе они были не лишены резона и немедленно удовлетворены: номер был снят, а соответствующие службы компании BSDI переформулировали свои рекламные материалы, популярно объясняя потенциальным покупателям, что BSD/386 UNIX’ом не является.

Однако вслед за этим в USL вспомнили, что в составе BSD-систем имелось некоторое количество кода, являющегося их “интеллектуальной собственностью”, и вчинили уже настоящий судебный иск. Сущность его сводилась к тому, что BSDI, кроме проприетарного кода UNIX, распространяет фирменные секреты USL, чем наносит оной непоправимый финансовый урон, и к требованию прекратить продажи BSD/386.

В ответ BSDI отвергла претензии по поводу чистоты кода пресловутых шести файлов, а по поводу всего остального (то есть того, что составляло содержимое выпуска 4.3BSD Net2) перевела стрелки на Калифорнийский университет, указав, что распространяла их код в полном соответствии с BSD-лицензией.

Поскольку добиться успешного решения суда в “деле о шести файлах” показалось USL проблематичным, она переформулировала иск, включив в число ответчиков, кроме BSDI, также и Калифорнийский университет, а содержание его распространив на всю BSD-систему в виде 4.3BSD Net2, требуя теперь запрета на распространение и этой последней,

Насколько я понимаю американскую судебную систему, в таких случаях сначала проводится предварительное слушание, определяющее, может ли иск составить предмет рассмотрения в суде, которое и происходит при положительном ответе на этот вопрос.

Подготовка к предварительному слушанию заняла несколько недель, в течении которых обе стороны развили бурную деятельность. Как пишет Керк МакКузик,

Штат CSRG перешёл от написания кода к написанию нескольких сотен страниц материалов, которые были использованы в юридических сводках.

Наконец, в декабре 1992 года состоялось предварительное слушание, которое проводил судья Федерального суда в Нью-Джерси (штат, в котором располагалась штаб-квартира USL), Диккинсон Р. Девебуа — по причинам, которые станут ясны через несколько строк, имя его должно быть упомянуто в ряду создателей и разработчиков BSD и FreeBSD. Он не принял немедленного решения по иску (что было, как говорят знающие люди, обычной практикой), а решил подробнее рассмотреть материалы. Это заняло у него шесть недель, по прошествии которых было вынесено решение: большинство обвинений USL отклонялось, за исключением двух пунктов, касавшихся авторских прав и возможности утраты фирменных секретов. И, кроме того, было предложено рассматривать дело в суде штата, а не в федеральном суде.

Это судьбоносное решение было вынесено в пятницу вечером. А уже в понедельник утром Калифорнийский университет вчинил компании USL встречный иск, касавшийся нарушения USL лицензии BSD, под которую подпадал заимствованный ими из BSD-систем код. То есть при распространении UNIX в сопроводительной документации не упоминался Калифорнийский университет как разработчик и собственник заимствованного кода (а как уже говорилось, бесспорных заимствований из BSD в SVR4 было немало). Вот тут и сыграла свою роль та самая “оговорка о рекламе” в первоначальной версии лицензии BSD, за которую она подвергалась нападкам со стороны пуристов Free Software, начиная с Ричарда Столлмена.

Встречный иск в суде Калифорнии предопределил бы место для всех судебных разборок, если таковые последовали бы на уровне штата: по американским законам все дела по соответствующему уровню должны проходить в одном штате, дабы сторона, располагающая большими финансовыми ресурсами, не могла пооткрывать дела против менее состоятельной стороны во всех штатах сразу, ведь проезд даже и в Америке кое-чего стоит…

Однако скоро накал страстей спал. В 1993 года USL вместе со всеми её торговыми марками и правами, реальными и мнимыми, была куплена у AT&T фирмой Novell. Рэй Нурда (Ray Noorda), бывший тогда её CEO, выразился в таком смысле, что предпочитает конкурировать на рынке, а не сквалыжничать в суде, И постарался оказать максимально возможное воздействие на руководство USL, дабы решить вопрос полюбовно.

К слову замечу, что Рэй Нурда, обеспечив славу Novell, как ведущей компании в области сетевых технологий (”ну кто же не помнит старика Нетваря”?), через пару лет покинул её и основал фирму Caldera, на протяжении ряда лет выпускавшую весьма прогрессивный дистрибутив Linux — Caldera OpenLinux. Он отошёл от дел на рубеже тысячелетий и скончался в 2006 году, в возрасте 82 лет. Судя по всему, ему не суждено было увидеть того юридического шоу, которое устроила по поводу собственности на код UNIX SCO — компания, в которую преобразовалась основанная им Caldera. Иска, почти зеркально повторившего дело USL vs Berkeley, но ещё менее обоснованного и завершившегося с существенно более печальными последствиями для истца. Воистину, история мстит забывшим её тем, что имеет обыкновение повторяться.

Но это было еще далеко в будущем. А пока, несмотря на всю запутанность дела, в конце концов, соглашение было достигнуто. По его условиям из 4.3BSD Net2 были удалены фрагменты кода, признанные частной собственностью USL (по некоторым данным — три файла из примерно восемнадцати тысяч), в некоторых файлах были сделаны изменения, в иных же — добавлено уведомление об авторских правах USL. И в таком виде система BSD получила право на свободное распространение.

Право это было реализовано в виде двух вариантов вышедшей в июне 1994 года системы 4.4BSD — последнего создания CSRG перед её расформированием в 1995 году. Первый носил имя 4.4BSD-Encumbered, что отражало его “загроможденность” унаследованным UNIX-кодом, и для его использования требовалась лицензия USL на исходный код. Второй же вариант получил название 4.4BSD-Lite и распространялся свободно, по лицензии BSD. Всем командам, занимавшимся созданием и распространением BSD-систем, и коммерческих, как BSDI, и свободных, подобных NetBSD и FreeBSD, было предписано основывать свои дальнейшие разработки именно на 4.4BSD-Lite.

FreeBSD: цена свободы

Казалось бы, детективная история разрешилась вполне благополучно, не так ли? Однако на этот счёт существуют неоднозначные мнения. Согласно Керку МакКузику (а он был тогда связан именно с разработкой 4.4BSD в рамках CSRG), воссоединение всех берклианских побегов в лоне едином вызвало лишь кратковременную задержку в их разработке, которая в итоге оказалась

… благом, поскольку она заставила различные группы повторно синхронизировать наработки, сделанные за три года с момента первого выпуска CSRG Networking Release2.

Джордан Хаббард, который тогда занимался разработкой непосредственно FreeBSD, смотрит на ситуацию тех дней не столь оптимистично, полагая, что система 4.4BSD-Lite

… была в прямом смысле light, в частности, потому, что группа CSRG удалила большие куски кода, необходимого для создания реально загружающейся системы (по причине различных лицензионных требований), и фактически, порт 4.4BSD для платформы Intel был очень неполным.

Как можно заключить из слов Хаббарда, в тот момент катастрофа проекта казалась неизбежной — легким движением руки цельная и работоспособная система превратилась в симпатичнейшего уродца. Но, как сказал один из героев Профессора, “приключения никогда не кончаются”. И участники проекта FreeBSD приступили

… к сложнейшей задаче буквально пересоздания системы с нуля на основе абсолютно новой и довольно неполной системы 4.4BSD-Lite.

Реинкарнация недостающих фрагментов заняла около года. И в итоге 22 ноября 1994 года было объявлено о выходе первой версии возрождённой FreeBSD — 2.0, которая, несмотря “на множество недотёсаных углов”, снискала значительный успех. А главное — к лицензионной её чистоте не смог бы придраться ни один сутяга. Именно она положила начало традиции, не прерывающейся и поныне.

Тем не менее, момент, благоприятный для “народной системы для народной платформы”, был упущен: ниша эта оказалась плотно занята, во-первых, главной системой для простого народа в лице Windows 3.1/3.11, а чуть позже и Windows 95. А на роль системы альтернативной, для народа не совсем простого, выдвинулся Linux в лице первых своих дистрибутивов: Slackware, Debian, Red Hat, чуть позже Suse.

Существует мнение, что если бы BSD (еще не разделившаяся на Net- и FreeBSD) не погрязла бы в тяжбе с AT&T и получила бы свободу в конце 80-х — начале 90-х годов, то в разработке Linux не было бы никакой необходимости. Несмотря на свою пылкую любовь к BSD-системам во всех их проявлениях, не могу с этим согласиться: если бы Linux’а не было — его следовало бы изобрести. Потому что без него (и внедренного Линусом в IT-индустрию метода разработки софта, известного под названием метода Тома Сойера) жить было бы скучно…

Тем не менее, хотя FreeBSD и задумывалась как система для пользователей, пусть и весьма специфических — но с сегодняшней колокольни превращения компьютера в бытовой прибор все пользователи того времени выглядят специфическими, — стать таковой в те дни ей было не суждено. Однако она стала достаточно популярной среди Интернет-провайдеров, что и предопределило её репутацию как серверной системы на многие годы вперед. Стереотип этот начинает ломаться лишь в последние годы, что мы и увидим при рассмотрении дальнейшей истории этой системы.

И хотя главная интрига нашего исторического сюжета позади, в будущем FreeBSD будет еще один драматический поворот…

http://alv.me/?p=930

Обновлено: 13.03.2015