Откуда пошли Linux и Mac OS X
АрхивМаковое поле (архив)Вершки и корешки или как сделать Unix "для народа". Материал из темы номера "КТ" от 23 октября 2001 года.
ЧАСТЬ ПЕРВАЯ: КОРЕШКИ
1969 год стал отправной точкой для развития доброго десятка ОС, так что этот исторический экскурс может быть интересен не только почитателям «all things Apple» и фанатам Linux, но и всем, кто хоть раз работал под одной из операционных систем семейства Unix и по достоинству оценил её возможности. Итак, в 1969 году, вошедшим в «некомпьютерную» историю пиком активности хиппи под названием «Лето Любви», в лабораториях тогда ещё не расчленённой по решению суда на отдельные компании AT&T некий хакер по имени Кен Томпсон скучал по привычному окружению ОС Multics, в разработке которой он принимал самое непосредственное участие. После того, как Bell Labs прекратила работу над этой системой, Томпсон решил в одиночку создать что-то подобное Multics на платформе DEC PDP-7, щедро сдобрив при этом собственными оригинальными идеями. Приятель Кена Деннис Ричи написал для зародыша новой ОС компилятор придуманного им языка C. К 1971 Томпсон и Ричи решили, что можно пойти наперекор традициям и написать систему не на ассемблере (как делали все системные программисты до них), а на языке высокого уровня (благо что лучшего кандидата, чем C, в то время, да и сейчас, найти было практически невозможно). К тому же это решение открывало широчайшие перспективы для переноса системы на другие платформы: перекомпиляция исходников на новой машине была на порядки проще, чем написание «двойника» ОС на ассемблере (различном для каждого семейства компьютеров). Когда в 1974 система доросла до шестой (седьмой, по мнению некоторых) версии, получившей условное обозначение V6, Томпсон уговорил руководство AT&T лицензировать ОС университетам. После этого разработка пошла ударными темпами (в процессе была изменена система нумерации версий: от System III к System V и так далее) и к 1983 году был готов тот релиз Unix (SVR4 — System V, Release 4), который впоследствии стали называть «основой для зрелой Unix».
Вообще, в университетах Unix был оказан самый радушный приём; студенты просто с ума сходили по новой системе. В 1978 в калифорнийском Беркли решили отпочковать собственную веточку на древе эволюции Unix, и, заплатив AT&T за источники, начали улучшать систему по своему разумению. Версия, разработанная в Беркли, стала известна как Berkeley System Distribution (BSD), а основными её вехами стали версии 1BSD, 2BSD и 4.2BSD. Одним из самых значительных нововведений калифорнийских умельцев стал новый коммуникационный протокол TCP/IP (все предыдущие версии системы имели встроенный протокол UUCP, который никогда не отличался особой надёжностью, зато породил такие масштабные явления, как USENET и электронная почта).
Эти две немного (в то время) различающиеся версии — SVR4 и 4.2BSD — породили квазирелигиозные войны между поклонниками обеих систем (с тех пор флейм на тему «какая ОС лучше» не обошёл стороной практически ни одного более-менее продвинутого пользователя DOS, Windows, Mac OS, Linux и прочих).
А в 1982 четыре студента из Стэнфорда и Беркли отметили новую веху в истории не только Unix, но и всей компьютерной индустрии. Билл Джой, работавший над версией BSD и превосходно знакомый со всеми внутренностями системы, и Энди Бектолсхейм, придумавший новый класс компьютеров — workstation, с приятелями Винодом Хослой и Скоттом Мак-Нили учредили Sun Microsystems. В этом же году мир стал свидетелем рождения рабочей станции на Unix, а использованная в ней 4.2BSD стала основой для того, что впоследствие назвали SunOS.
В том же 1982 энтузиасты движения за «освобождение» программ Free Software Foundation с Ричардом Столмэном во главе поставили своей целью создание бесплатного клона Unix под названием GNU (Gnu's Not Unix).
А идеологические антиподы Столмэна из AT&T в то же самое время гадали, как бы побольше заработать на популярности их детища. К сожалению, ничего путного воротилам бизнеса на ум не пришло, и в результате вокруг лицензированной System V выросли целые империи по производству Unix-станций: SGI разработала Irix, IBM — AIX, а Хьюлет-Пакард — HP/UX. До пришествия X Window все они имели собственные графические подсистемы и оконные менеджеры. Sun же сменила основу для своей SunOS и на основе ядра System V создала Solaris. DEC сделала то же самое со своей BSD-совместимой Ultrix, получив в результате DEC Unix (десять лет спустя развившейся в True64). AT&T, не сумев выстоять в конкурентной борьбе рабочих станций, в конце-концов продала все свои разработки, связанные с Unix, холдингу USL (Unix System Laboratories).
Такой повальный переход на System V был связан с тем, что эта версия вобрала в себя многие открытые популярные стандарты того времени, что позволяло продавцам проприетарных версий поддерживать (до некоторой степени) подобие совместимости между ними всеми. Так, в горячей конкурентной борьбе постепенно приживались такие общие технологии как X Window и Network File System (NFS, разработанная Sun). Со временем включение вендорами самых перспективных (и самых распространённых) стандартов в состав системы стало чем-то вроде доброй традиции. И это же обеспечивало постоянное развитие ОС на протяжении целого десятилетия.
1990 год стал свидетелем разброда и шатания как среди производителей коммерческих дистрибутивов, так и среди «вольных» программистов. Первые были недовольны дефицитом программного обеспечения для Unix (надежды Томпсона и Ричи на реальную кросс-платформенность были похоронены под грудой не слишком совместимых проприетарных *nix'ов, стoящих к тому же не одну тысячу долларов, что не очень-то вдохновляло разработчиков ПО), а вторые никак не могли довести до ума ядро системы под названием HURD (хотя другие компоненты GNU к тому времени были вполне работоспособны).
Однако всё это отнюдь не уменьшило числа надеющихся поднажиться за счёт выпуска и продажи собственных дистрибутивов самой прогрессивной ОС нашего времени. В 1991 Университет Калифорнии и группа Berkeley Software Design, Inc. представили порт BSD 4.3 (4.3BSD согласно традиционному обозначению) на платформу i386. Это событие не ускользнуло от бдительного взора USL, заявившей о нарушении копирайта на значительную часть кода системы, унаследованного из System V. Под нажимом начавшегося судебного разбирательства BSDI вернула дистрибутив на доработку с целью избавиться от контрафактного кода. В результате этого процесса к 1994 году один продукт (BSD 4.4) был похоронен BSDI, не желавшей больше подвергаться обвинениям в «воровстве», зато увидел свет другой продукт (BSD 4.4-Lite), ставший впоследствие основой для свободно распространяемой версии Unix.
Потуги BSDI выпустить Intel-совместимую ОС были обусловлены быстрым ростом производительности персоналок в начале 90'х. PC и Маки поставлялись с 32-битными процессорами, что наводило производителей на мысли о возможности выпуска Unix-систем на относительно дешёвом железе (для сравнения: рабочие станции на Unix от Sun и IBM в то время стоили около 50 тысяч долларов). Так что в 1993 ещё один деятель по имени Билл Джолитц попытался портировать BSD Unix на i386. Позже он был вынужден покинуть проект и его дело продолжили Джордан Хаббард, Нэйт Уильямс и Род Граймс. Но противодействие со стороны USL (которое уже испытала на себе BSDI) вынудило и их переключиться на BSD 4.4-Lite. Дэвид Гринмэн, ещё один участник проекта, придумал название FreeBSD, и с помощью компании Walnut Creek, занимавшейся тиражированием CD, в сентябре 1994 на свет появилась FreeBSD 2.0 — первая публично распространяемая версия Unix.
ЧАСТЬ ВТОРАЯ: ВЕРШКИ
Но к этому времени трудившийся уже около трёх лет над собственной вариацией на тему Unix небезызвестный финский студент предложил Free Software Foundation свой вариант системного ядра — взамен долгостроя HURD хакеры получили вполне надёжный и добротно исполненный фундамент операционной системы, на котором они тут же принялись достраивать то, что стало не столько технологическим, сколько социальным феноменом — ОС Linux.
Стив Джобс — другой провидец мира компьютеров, в то время отлучённый от созданной им самим компании, продвигал ОС NextStep, основанную на BSD 4.3. Когда терпящая бедствие Apple обратила отчаянный взор к своему родителю, Джобс в качестве спасательного круга принёс с собой во «фруктовую компанию» не только свой маркетинговый гений, но и переименованную к тому времени в OpenStep операционную систему, которая была призвана стать новым лицом Макинтоша. Несмотря на довольно активное участие в разработке Mac OS X команды Linux-разработчиков под руководством Бретта Хэйли, в конечном продукте количественно преобладал код BSD и OpenStep.
Со времён NeXT, однако, в мире Unix произошло ещё кое-что… В Университете Юты велись исследования по созданию real-time-версии ядра Mach. От FreeBSD отпочковались OpenBSD (с акцентом на безопасность) и NetBSD (с упором на поддержку максимально широкого ряда аппаратного обеспечения). Так что Apple, поддерживающей партнёрские отношения со всеми группами разработчиков этих проектов, оставалось лишь выбирать самое лучшее. Так, расширенный инженерами NeXT порт FreeBSD на платформу PowerPC стал тем, чему Apple дала название Darwin 1.0. Важную роль в разработке «яблочной Unix» сыграл вернувшийся вместе с Джобсом Эви Теваньян. В своё время Эвадис несколько лет работал в Университете Карнеги-Меллона, где, среди прочего, занимался «микроядерной» технологией Mach, и не в последнюю очередь по этой причине Mach 3.0 легла в основание Darwin [1]. Это обстоятельство дало Торвальдсу повод для критики всей ОС. Ломая стереотип о национальном темпераменте финнов, Линус охарактеризовал Mach как «самое настоящее дерьмо». Хотя, вполне возможно, что нападки на Mac OS X со стороны ортодоксальных линуксоидов вызваны обычной фрустрацией — «X» принесла пользователям мощь Unix'а, соединённую с изящным и интуитивным графическим интерфейсом пользователя, — то, что создатели Linux обещали годами. Взявшаяся было сделать Linux «ближе к народу» компания Easel обанкротилась уже через год после своего основания, а её детище Nautilus «пошло по рукам» «свободных разработчиков».
ЧАСТЬ ТРЕТЬЯ: МЕЧТЫ
В заключение этого насыщенного историческими фактами экскурса, позволю себе поделиться (идеальным) видением компьютерного будущего образца 2006 года. Mac OS X — Unix, обручённая с Java и OpenGL, является мечтой любого сисадмина и хакера и занимает половину рынка ОС (причём поставляется она только на Маках, хотя отдельные радикалы уже давно портировали Darwin на i386 и работают с ней только в режиме командной строки). На другой половине царит (на разношёрстном, в отличие от Макинтоша, но зато оставляющем большой простор для экспериментов железе) Linux, не менее успешно впитавшая самые перспективные открытые стандарты (те же Java, OpenGL, BlueTooth и Unicode…) Хакерская богема, стремящаяся обособиться от мэйнстрима, ищет прибежища на BeOS. Windows… а что это такое?
[1] — Источники Darwin открыты, однако надстройки в виде GUI Aqua, оконного менеджера Quartz и сред Classic, Carbon и Cocoa являются собственными разработками Apple, открывать коды которых компания пока не слишком торопится.
[обратно к тексту]