Выбрать главу

Участники проекта GNU, работавшие первоначально на чистом энтузиазме, за считанные годы воссоздали все системное окружение полноценной ОС. За одним единственным исключением – ядра. Но тут уже начинается история из главы четвёртой. А мы продолжим нашу Берклиаду.

Возвращение в Беркли

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

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

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

А чтобы понять значение FFS, достаточно вспомнить что все файловые системы современных UNIX’ов, как свободных, так и проприетарных, берут своё начало именно от неё, если не прямо, то опосредованно, через развитие заложенных в ней принципов.

Так что система 4.2BSD не только предопределила направление развития всех последующих представителей BSD-семейства, но и оказала большое влияние на UNIX «чистой линии». А также – будущей героини нашего повествования, ОС Linux.

Линия BSD рано начала давать боковые отростки. Из них одними из главных, в рамках нашего повествования, стали микроядерные операционки, в первую очередь ядро Mach, разрабатывавшееся в Университете Карнеги-Меллона, а затем – в университете штата Юта. Некогда оно рассматривалось как прообраз операционных систем будущего, однако на практике возлагавшихся на него надежд не оправдала. Сам по себе проект Mach давно прекратил своё развитие, так что главная слава Mach оказалась посмертной. Ибо под его воздействием Энди Танненбаум написал свою игрушечную систему MINIX, которая вдохновила Линуса Торвальдса на написание Linux.

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

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

Интермедия

Итак, мы остановились на моменте выхода 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 Net1 и Net2 связано с тем, что они замышлялись как подборки инструментария для работы с сетями – главным образом, по протоколу TCP/IP. Таково было пожелание пользователей, нуждавшихся в этих средствах, но по тем или иным причинам не испытывавших потребности в лицензировании собственно UNIX-кода. Однако, как мы увидим далее, значение этих выпусков скоро переросло поставленные первоначально скромные цели.