Обе ветви UNIX, System V и BSD UNIX, сосуществовали мирно, подобно капитализму и социалиализму. Однако лишь до поры, до времени – пока не появилась юридическая возможность коммерческого распространения UNIX, само это слово (в форме UNIX) не стало торговой маркой, соответствие которой должно сертифицироваться, – короче говоря, пока не запахло «баблом».
И вот тут-то формальные правообладатели UNIX вспомнили, что в составе BSD-системы имеется некоторое количество кода, являющегося их «интеллектуальной собственностью», и затеяли судебный процесс против Университета Беркли, о чём речь пойдёт в скором времени.
А пока заметим, что важной вехой в становлении движения Open Source и как технологического, и как идеологического явления стала разработка оконной системы X, начатая в 1984 году, чему будет посвящена отдельная страница.
Тем временем Ричард М. Столлман, сотрудник той самой MIT AI, боролся с прикручиванием принтера от HP к своей системе. И боролся безуспешно – поскольку товарищи от Хьюлетта и Паккарда отказались предоставить ему исходники на своё firmware. Что привело Столлмана к убеждению – закрытые исходники суть тормоз прогресса, и все программное обеспечение должно быть открытым и свободным. Начался крестовый поход за освобождение софта.
К середине 80-х годов прошлого тысячелетия RMS создаёт Фонд свободного программного обеспечения (FSF – Free Software Foundation), начинает проект GNU – воспроизведение функциональности UNIX «с чистого листа», но в свободном исполнении, а главное – формулирует принципы Free Software: свобода использования, свобода изучения и модификации, свобода распространения.
Знакомый велосипед, не правда ли? Да, именно на таких условиях распространялись результаты работ сообщества Computer Science (как, впрочем, и любого иного научного сообщества). Новым в принципах RMS, нашедшим своё выражение в разработанной под его руководством (и с участием профессиональных юристов) лицензии GPL (General Public License), было только одно: любая программа, использующая код, защищаемый GPL, должна распространяться на тех же условиях – ныне, присно и во веки веков…
В рамках проекта GNU (что расшифровывается просто – GNU is not UNIX) были разработаны функциональные аналоги всех классических UNIX-утилит и пользовательских приложений, из которых важнейшим (и до сих пор единственным незаменимым) оказался компилятор языка Си (gcc – GNU C Compiler).
Участники проекта 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-кода. Однако, как мы увидим далее, значение этих выпусков скоро переросло поставленные первоначально скромные цели.
И 4.3BSD Net1 стал первой системой из Беркли, которая распространялась под лицензией BSD (ещё в первом её варианте, включавшем «оговорку о рекламе»).
Номинальная цена за ленту 4.3BSD Net1 была установлена в 1000 долларов. Однако, поскольку лицензия это не запрещала, далее копии ленты могли распространяться совершенно свободно, копироваться, устанавливаться на любое количество машин, передаваться и даже выкладываться на анонимные ftp-сервера. Что, разумеется, и происходило – однако, по свидетельству очевидцев этой истории, немало организаций не сочли западло для себя заплатить указанную сумму. Причём не столько ради получения самого кода – его, как уже сказано, можно было получить и бесплатно, сколько для финансовой поддержки проекта.
Подобная практика распространения продолжалась и после выхода 4.3BSD Net2. И опять с тем же результатом – несмотря на возможность откровенной и вполне законной халявы, нашлось немало контор и даже частных лиц, которые выложили 1000 баксов за обладание дистрибутивной лентой. Среди таковых оказался и Грег Лией – в последующем один из ключевых разработчиков FreeBSD.