Текст книги "Вопросы истории: UNIX, Linux, BSD и другие"
Автор книги: Алексей Федорчук
Жанры:
ОС и Сети
,сообщить о нарушении
Текущая страница: 3 (всего у книги 28 страниц)
Итак, мы остановились на моменте выхода 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.
Факт столь массового спроса на 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, что и было вынесено в её титулатуру.
Распространялась система 386BSD исключительно по сети, как в откомпилированном виде, так и в исходниках, и сразу, несмотря на содержащиеся в ней ошибки, приобрела популярность среди народных масс. Следствием этого стало появление большого количества исправлений, дополнений и улучшений исходной системы, которые составили корректирующий комплект, получивший неофициальное название patchkit (набор заплаток), делающий 386BSD пригодной к практическому использованию.
Некоторое время «заплаточный» проект развивался усилиями энтузиастов при координации Билла Джолитца. Однако довольно скоро выяснилось, что он не может уделять ему столько времени, сколько требовала обработка многочисленных поступающих патчей. И на некоторое время «заплаточный проект» оказался заброшенным.
FreeBSD: рождённая свободнойИ тогда из среды энтузиастов системы выдвинулась группа координаторов «заплаточного» проекта, получившего условное название 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-приводов в стандартный атрибут настольных персоналок оставалось ещё несколько лет, можно оценить степень новаторства этой фирмы.
Общепринятым способом распространения сколько-нибудь объёмного программного обеспечения (за исключением коммерческого «коробочного») в те годы были публичные ftp-сервера. Однако доступ к Интернету, по крайней мере, для частных лиц, был тогда ещё большей экзотикой, нежели CD-привод в индивидуальном десктопе. И Хаббард предложил совершенно новую по тем временам идею – распространение дистрибутива операционной системы на компакт-дисках. Это если и не предопределило успех проекта, то немало ему способствовало.
В результате этого сотрудничества в декабре 1993 г. совместные усилия проекта FreeBSD и фирмы Walnut Creek обрели зримое воплощение в виде FreeBSD 1.0, распространявшейся не только с ftp-серверов, но и на компакт-дисках. Таким образом, FreeBSD стала одним из пионеров в этом, ныне столь привычном для нас, способе распространения дистрибутивов.
FreeBSD 1.0 включала в себя компоненты из BSD4.3 Net 2, 386BSD и её «заплаточного» проекта, а также ряд утилит, разработанных в рамках проекта GNU. Он имела большой успех, который был закреплён и развит выпуском в мае 1994 года версии FreeBSD 1.1.
Технологический детективСистема 386BSD и её наследница FreeBSD были не единственными попытками создания BSD, свободной от проприетарного кода. Еще один вариант был реализован созданной в 1991 году фирмой BSDI (Berkeley Software Design Incorporated) – но уже как коммерческий.
Фирма BSDI занялась разработкой собственной BSD-системы, взяв за основу всё ту же ленту 4.3BSD Net2. Возникшая в результате система получила имя BSD/386 (в дальнейшем она была известна как BSDi и BSD/OS) и стала распространяться в бинарном виде вместе с исходниками по цене 995 долларов под первым вариантом лицензии BSD.
Упоминание Калифорнийского университета и Регентского совета как создателей и владельцев распространяемой системы, присутствовавшее в первом варианте BSD-лицензии, делало фирму как бы сопричастной последнему – тем более, что она была образована бывшими сотрудниками CSRG. Среди них был и Ричард Стивенс (Richard Stevens), главный разработчик BSD/OS, известный также как автор книг по UNIX и протоколу TCP/IP (он скончался в 1999 году в возрасте 48 лет).
Не менее важным, чем причастность BSDI к Калифорнийскому университету, обстоятельством для дальнейших событий оказалось то, что её система позиционировалась, как UNIX, и заказ её можно было осуществить, обратившись по номеру телефона, содержащему слово UNIX. А слово это стало к тому времени торговой маркой, под владением USL, дочерней фирмы AT&T. Которая как раз в это время получила, наконец, право коммерческого использования UNIX. И результаты не замедлили воспоследовать, поскольку, как уже говорилось ранее, в воздухе отчётливо запахло «баблом».
Первые претензии со стороны 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 получила право на свободное распространение.
Цена свободыКазалось бы, детективная история разрешилась вполне благополучно, не так ли? Однако на этот счёт существуют неоднозначные мнения. Согласно Керку МакКузику (а он был тогда связан именно с разработкой 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 будет еще один драматический поворот, о котором мы расскажем в своё время. А сейчас зададимся вопросом – почему же эта ОС не стала системой для пользователя? Ведь, казалось бы, наконец претендент на звание народной ОС для народной платформы определился. Однако эта роль – стать народным десктопных UNIX’ом – выпала на долю системы, которая в это самое время зародилась в других краях и на другой почве. Со временем ответ на этот вопрос придёт. Но прежде мы вернёмся немного назад, к моменту вскоре после расщепления первозданного UNIX'а на ветки System V и BSD.
Глава третья. Возвращаясь к UNIX'ам
Хотя изложение истории проприетарных UNIX'ов не является предметом данного сочинения, они развивались параллельно с «UNIX'ами» свободными, и обе ветви оказывали друг на друга влияние. Так что время от времени нам придётся обращаться к этой сюжетной линии. Один из таких моментов наступил.
Серенада солнечной долиныВернёмся к тому моменту, когда Билл Джой взялся за разработку ОС для только что появившихся компьютеров Sun. В основу своей системы он положил 4.1BSD, разработчиком которой перед тем являлся. А во главу угла её поставил ориентацию на поддержку компьютерных сетей и интеграцию с ARPANET, а в последующем – и Интернет.
Именно Биллу принадлежит знаменитый лозунг: Сеть – это Компьютер (The Network Is The Computer). Что вполне может быть инвертировано в: Компьютер – это сеть. Правда, выдвинут он был позднее, в середине 90-х годов, уже в эпоху Интернета.
Поддержка сетей в SunOS базировалась на ставших тогда почти стандартными протоколах Ethernet и TCP/IP. Именно из недр Sun вышли понятие виртуальной файловой системы – VFS, реализация сетевой файловой системы – NFS, множество средств удалённого доступа (RPC, Remote Procedure Calls) и так далее.
Далее, в SunOS большое внимание уделялось поддержке масштабируемости систем. Подразумевалось, что одна и та же ОС должна работать как на многопроцессорных серверах, так и на любых подключённых к ним рабочих станциях. С этим тесно связана и поддержка многопроцессорности, столь востребованная в наши дни. Конечно, и масштабируемость, и поддержка многопроцессрности не были уникальными для SunOS – этим же путём шли разработчики всех коммерческих UNIX. Однако Sun здесь была в числе первых – это раз. И во-вторых, именно её разработки оказали наибольшее влияние на развитие поддержки многопроцессорности в FOSS-операционках.
И наконец, SunOS изначально была тесно интегрирована со средствами поддержки графического интерфейса пользователя. Причём – средствами собственной разработки. Первым из них была SunView (Sun Visual Integrated Environment for Workstations, изначально SunTools) – оконная система, возникшая едва ли не одновременно с самой ОС в первой половине 80-х годов. От всех последующих оконных систем, ориентированных на UNIX, она отличалась тем, что большая её часть поддерживалась ядром. Кроме того, она включала в себя набор стандартных пользовательских приложений, таких, как текстовый редактор, почтовый клиент, инструменты для настройки. И, наконец, она являлась частью стандартной поставки операционной системы. По-видимому, именно в SunOS впервые была реализована интеграция операционной системы, графического интерфейса и пользовательских приложений, получившая дальнейшее развитие не только в мире UNIX.
На смену ей в середине 80-х годов пришла NeWS (Network extensible Window System) – более сложная система, основанная на PostScript. Однако получить широкого распространения она не успела.
Наконец, в конце 80-х годов для SunOS была разработана оконная среда OpenWindows. Сначала она поставлялась как отдельное дополнение, а потом была включена в состав операционной системы.
На протяжении 80-х – начала 90-х годов были выпущены версии SunOS с 1-й по 4-ю, работавшие на машинах Sun-1, Sun-2, Sun-3. Однако в конце 80-х годов начинается смена аппаратной платформы: процессоры Motorola 68XXX в серверах и рабочих станциях заменяются на»камни» собственной разработки и производства, RISC-процессоры SPARC. Для которых разрабатывается и новая операционная система, названная Solaris 2. В отличие от предшественницы, она основывалась не на BSD-линии, а на «классической» System V (SVR4). Параллельно происходит отказ от графических средств собственной разработки, сменяясь ставшими стандартными для UNIX мира оконной системой X и рабочей средой CDE.
Некоторое время обе архитектуры со своими операционками сосуществовали, причём SunOS научилась поддерживать Sparc'и. Последний её релиз (SunOS 4.1.4) вышел в ноябре 1994 года. Тем не менее, название SunOS по сей день сохраняется за ядром OS Solaris (и OpenSolaris).
Однако тут мы уже чрезмерно углубились в 90-е годы. А ведь SunOS была не единственным представителем проприетарных UNIX'ов. О которых пойдёт речь в следующей главе.