Алексей Федорчук - Вопросы истории: UNIX, Linux, BSD и другие
Практически одновременно с получением гранта 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, но заказывали и использовали более функциональную систему из Беркли.
Такое положение вещей, противоречащее здравому смыслу, не могло продолжаться вечно – и скоро мы узнаем, каким образом оно разрешилось. Но сначала прервём линейность истории, обратившись к вопросу, откуда пошёл свободный софт.
Начало свободного софта
Говоря в главе первой об истоках и предпосылках истории FOSS, я упомянул общественные движения Open Source Software и Free Software, однако больше не прибавил о них ни слова. Настало время восполнить это упущение.
Под открытым и свободным программным обеспечением, для которого закрепилась аббревиатура FOSS, понимается два близкородственных, но не вполне идентичных понятия – программное обеспечение с открытыми исходными текстами (Open Source Software) и собственно свободное программное обеспечение (Free Software).
Читатель, знакомый с современным положением дел вокруг так называемого СПО, вправе задать мне вопрос: почему названия из предыдущего абзаца стоят именно в таком порядке? Ведь каждому ребёнку известно, когда Ричард Столлман, известный в миру как RMS, создал Фонд Свободного Программного обеспечения и основал проект GNU, и когда из уст Эрика Рэймонда, не менее известного как ESR, впервые прозвучало словосочетание Open Source Software. Попробуем разобраться.
Движение Open Source организационно оформилось в 1998 году. Однако зародилось оно очень давно – и в тех же академических кругах Computer Science. Собственно, первоначально никакого движения не было – а была лишь обычная, принятая в любой науке, практика свободного обмена результатами своей работы. Благо, ARPANET, а затем и Интернет предоставили к тому практически неограниченные возможности. Да и необходимости в движении не возникало – никакого другого софта, кроме открытого, просто не было в природе.
Об оформлении прототипа движения Open Source можно говорить с начала Берклиады, когда Университет Беркли стал распространять результаты своих работ открыто (то есть с доступом к исходным текстам) и свободно (то есть без ограничений на дальнейшую модификацию и распространение), под лицензией, которая получила имя лицензии BSD.
Суть её была очень проста: с исходниками BSD UNIX можно было делать всё, что угодно, кроме как приписывать себе их авторство. Правда, была там и так называемая «оговорка о рекламе» – требование упомянуть регентский совет Университета Беркли в любом производном продукте, но со временем она была изъята.
Поскольку усовершенствования первозданной UNIX, пришедшие из Университета Беркли, были очень существенными, результатом этого было расщепление UNIX на две ветви – проприетарную UNIX от AT&T, за которой со временем закрепилось название System V, и BSD UNIX, распространявшуюся свободно. Впрочем, в силу открытости берклианских разработок, они быстро были инкорпорированы и в System V (начиная с её Realese 4, говорить от первозданном UNIX уже не приходится).
Обе ветви 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 года соответственно.