Продолжая использовать наш сайт, вы даете согласие на обработку файлов cookie, которые обеспечивают правильную работу сайта. Благодаря им мы улучшаем сайт!
Принять и закрыть

Читать, слущать книги онлайн бесплатно!

Электронная Литература.

Бесплатная онлайн библиотека.

Читать: Вопросы истории: UNIX, Linux, BSD и другие - Алексей Викторович Федорчук на бесплатной онлайн библиотеке Э-Лит


Помоги проекту - поделись книгой:

Именно Биллу принадлежит знаменитый лозунг: Сеть – это Компьютер (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'ов. О которых пойдёт речь в следующей главе.

В оковах проприетаризма

Из предыдущих страниц могло создастся впечатление, что всё развитие UNIX вращалось вокруг университета Беркли и компании Sun. Разумеется, это не так. Просто там проходила генеральная линия развития тех систем, которые позднее составят мир FOSS. Основные же события, связанные с развитием проприетарных ветвей UNIX, происходили в более иных местах.

Я не буду говорить о них подробно – во-первых, потому, что они лежат за гранью нашей главной темы. А во-вторых, просто плохо знаю их историю – надеюсь, она найдёт своих летописцев. Тем не менее, несколько слов о проприетарных UNIX'ах сказать необходимо.

Начать с того, что не забрасывала свое детище сама AT&T во всех ее проявлениях. Правда, разработка системы плавно перемещалась от Bell Labs к иным подразделениям, типа группы поддержки UNIX и т.д., однако в мои цели не входит описание истории этой корпорации, и потому названия их я опускаю.

Из недр AT&T (в обобщенном понимании этого слова) последовательно выходят System III, System V, System V Release 2 (SVR2) и, наконец, System V Release 3 (SVR3); этой системе, разработанной в 1987 г., суждено было стать последним представителем чистой линии первозданного UNIX. Ибо уже System V Release 4 (SVR4), появившаяся в 1989 г., включила в себя множество новшеств из разработки 4BSD – интеграцию с TCP/IP, поддержку FFS, берклианскую реализацию механизма виртуальной памяти, и многое другое.

В частности, легший в последствии в основу стандарта POSIX шелл Корна, несмотря на совместимость с первозданным шеллом (Bourne Shell), заимствовал из C-Shell такие особенности, как управление заданиями, историю команд, поддержку псевдонимов и т.д. (впрочем, развитие шеллов – совершенно отдельная история, о которой мы поговорим, когда придёт время – и не в этой рубрике).

Благо, как уже было сказано, берклианские разработки распространялись в соответствие с принципами открытой науки – то есть практически свободно. И если AT&T не всегда заимствовала их на уровне реализаций (то есть непосредственно кода), то идейное их влияние на первозданный UNIX было несомненным.

UNIX от AT&T, был лицензирован многими компаниями – производителями оборудования, оценившими, вслед за Sun, портируемость этой ОС: IBM, Hewlett-Packard, DEC, SGI и еще несколько забытых. Базируясь на SVR3, а позднее – на SVR4, они адаптировали систему под собственные архитектуры, создав такие варианты UNIX, как AIX от IBM, HP-UX, Digital UNIX (позднее Tru64), IRIX, соответственно. Все это были коммерческие операционки, однако, будучи жестко привязанными к аппаратуре фирм-производителей, в свободной продаже (подобно нынешним Windows) они не присутствовали.

В третьих, чисто софтверные фирмы подняли мутный вал UNIX'ов уже сугубо коммерческих, то есть предназначенных для продажи помимо оборудования.

Первыми на этом поприще отметились компании Interactive Systems и Santa Cruz Operations (очень косвенный предок скандально прославившейся ныне SCO). Не имея собственных аппаратных платформ, они адаптировали UNIX под платформы общераспространенные, коими были сначала PDP, а затем и IBM PC. Кажется, именно SCO UNIX стала первой представительницей семейства UNIX, портированной на машины с процессором Intel (то есть на архитектуру i386).

Как ни странно, в числе первых здесь оказалась и Microsoft. Ею была создана система XENIX для тех же i386-х машин. По словам видевших ее, это было нечто вроде однопользовательской реализации UNIX – как всегда, Microsoft и тут, подобно товарищу Ленину, пошла своим путем...

В результате ни одной из этих разработок не досталось народной любви – вследствие высокой стоимости и малого количества приложений, а для XENIX еще и урезанной функциональности. Хотя SCO UNIX получила довольно широкое распространение в банковской сфере. В частности, её потомки трудятся в Сбербанке России чуть ли не по сей день.

Каждая из перечисленных (и забытых) мною компаний создавала сугубо свой UNIX, не совместимый с другими. В итоге, кроме двух базовых системы – System V и BSD, расцвело не менее дюжины вариантов, в той или иной мере различающихся между собой. Мною были упомянуты далеко не все из них, а лишь те, которые уцелели и поныне. Или – те, о которых мне довелось в свое время хоть что-то прочитать. На самом деле UNIX-клонов в те времена было гораздо больше.

Так что можно было констатировать, что в конце 70-х и в 80-х годах прошлого века UNIX развивался в соответствие со знаменитым лозунгом Великого кормчего китайского народа – «Пусть расцветают все цветы!» И, по заветам Председателя Мао, назрела настоятельная необходимость в упорядочивании стилей работы. Но об этом мы поговорим в следующем разделе, посвящённом битве за стандарты.

Битва за стандарты

Как следует из предшествующего изложения, со временем различия между клонами UNIX становились все более значительными. Во-первых, в основе существовавших её вариантов лежали разные базовые системы – SVR3, SVR4, 4BSD.

Во-вторых, каждый разработчик считал своим долгом либо адаптировать систему под возможности собственной аппаратной платформы, либо просто внести те или иные усовершенствования. А поскольку все существовавшие тогда системы, кроме BSD, были не только проприетарными, но и закрытыми, усовершенствования эти слабо согласовывались между собой. И, в любом случае, реализовывались различным образом.

Это ставило под угрозу один из краеугольных камней UNIX-идеологии – портируемость приложений. А традиции писать программы под абстрактный UNIX никто не отменял. И начался процесс, который, вслед за товарищем Мао, можно назвать «борьбой за упорядочивание трех стилей работы». Однако председателю КПК было попроще – в данном случае речь шла не о трех, а едва ли не о тридцати трех стилях...

Тем не менее, процесс упорядочивания пошел. Первый шаг в этом направлении резонно было бы сделать основоположнику UNIX. И AT&T создала документ, описывающий спецификации, которым должна соответствовать система, претендующая на звание UNIX – SVID (System V Interface Definition, то есть определение интерфейса System V). И даже разработала программу, которая проверяла претендента на соответствие этим спецификациям – System V Verification Suite.

Нетрудно было предположить, что в этих спецификациях нашли отражение только те особенности BSD, которые были инкорпорированы в каноническую System V. А ведь BSD была столь же полноводным источником, из которого черпали все производители UNIX. Их такое положение дел не очень устроило. И потому было создано несколько организаций, разрабатывающих свои версии стандартов для операционных систем, расширенные по сравнению со SVID.

Наибольшее признание из них получил стандарт POSIX – Portable Operation System Interface based on UNIX, разработанный международной организацией под названием IEEE (Institute of Electrical and Electronics Engineers, Inc.). То есть было принято, что любая операционная система, претендующая на звание UNIX (или UNIX-совместимой), должна соответствовать соглашениям, описанным в основополагающих документах стандарта. Как мы увидим со временем, именно этими документами воспользовался Линус Торвальдс при создании Linux.

Крёстным отцом термина POSIX стал Ричард Столлман. Произносится это слово как позикс – это специально подчеркивалось во Введении в POSIX.1:

Ожидается произношение «поз-икс» как «позитив», а не «по-сикс». Произношение опубликовано в целях обнародования стандартного способа ссылки на стандартный интерфейс операционой системы.

Слово Portable в его названии первоначально означало, что соответствующая POSIX-спецификациям система может быть перенесена (возможно, с минимальными модификациями) на любое компьютерное «железо». Однако со временем не менее важным оказался несколько другой аспект этого термина: любая прикладная программа, написанная в соответствии со стандартами POSIX, теоретически может быть перенесена, то есть портирована, на любую ОС POSIX-совместимого семейства. И нужно отметить – это один из тех редких случаев, когда теоретические ожидания блестяще подтвердились практикой.

Стандарты POSIX были приняты в 1988 году и зафиксированы в виде серии регулярно обновляемых документов (общим числом под два десятка), в которых описываются спецификации отдельных компонентов систем:

   • Base Definitions volume (XBD) – определение терминов, концепций и интерфейсов, общих для всех томов данного стандарта;

   • System Interfaces volume (XSH) – интерфейсы системного уровня и их привязка к языку Си, где описываются обязательные интерфейсы между прикладными программами и операционной системой, в частности – спецификации системных вызовов;

   • Shell and Utilities volume (XCU) – определение стандартных интерфейсов командного интерпретатора (т.н. POSIX-shell), а также базовой функциональности UNIX-утилит;

   • Rationale (Informative) volume (XRAT) – дополнительная, в том числе историческая, информация о стандарте.

Стандарты POSIX жестко определяли базовую функциональность систем и приложений. Каковая, ради сохранения совместимости, и не должна изменяться. В то же время расширению функциональности они отнюдь не препятствовали. Так, любая из предусмотренных для POSIX-систем команда должна была иметь определенный набор опций, предназначенных для выполнения базового набора действий. Однако никто не препятствует введению для данной команды дополнительных возможностей, реализуемых через опции, стандартом не предусмотренные. Важно только, чтобы первозданная функциональность команды оставалась неприкосновенной.

Именно на стандарты POSIX в первую очередь и опирался Линус Торвальдс, создавая свою ОС по мотивам MINIX, о чём скоро и пойдёт речь.

Глава четвёртая. Рождение Linux

Пока, как было сказано в предыдущих главах, в Беркли и его окрестностях поневоле занимались юридическим крючкотворством,а в мире проприетарных UNIX'ов пытались выполнить заветы Великого Мао по упорядочиванию стилей, на другом конце света, в Финляндии, некий студент по имени Линус Торвальдс размышлял, что же ему делать с только что приобретённым IBM PC/386. И, как ни странно, результаты его размышлений оказали не меньшее влияние на нашу историю, нежели многолетний труд исследователей, финансируемых правительством мировой державы, и инженеров на окладе крупнейших компьютерных фирм.

Впрочем, редкий линуксописатель не описывал рождественскую сказку о том, как бедный студент копил деньги на 32-битный компьютер, а потом сочинял программу терминального доступа к удалённой университетской машине, которая затем превратилась в полноценную ОС. Известна она и в версии от создателя этой ОС – самого Линуса Торвальдса. Так что пересказывать её в очередной раз я не буду. А попробую, в меру своего понимания, выявить предпосылки появления Linux. Правда, и к вопросу о бедном студенте мне придётся ещё вернуться.

Предпосылка первая, «железная»

О первопричине появления Linux я уже говорил – она «железная», и вызвана триумфальным шествием Советской власти (то есть, пардон, Intel-совместимых PC). И главную роль здесь сыграло появление в 1985 году первого 32-разрядного процессора от Intel – 80386. Что дало возможность использовать UNIX на дешёвых и общедоступных персоналках. А начавшееся вслед за тем производство процессоров Intel 80486 вплотную приблизило по производительности эти самые «писюки» к рабочим станциям на RISC-процессорах.

Надо сказать, что параллельно с платформой на процессорах Intel и их клонах, таких, как AMD, Cyrix, UMC, существовали и другие варианты персоналок, на иной аппаратной базе – процессоре Motorola 680x0. Ими были Macintosh и Amiga, с их System # и AmigaOS, соответственно. И обе эти платформы были не прочь претендовать на высокое звание «народного» компьютера. Особенно первая – в силу ряда причин, как технических, так и маркетинговых, у неё, казалось, были на то все основания.

Однако обе эти платформы в кнечном счёте оказались в... нет, не там, где вы подумали в меру своей испорченности, а в нише. Точнее, каждая в своей: Macintosh снискал любовь той прослойки, которую в советское время обзывали творческой интеллигенцией, а Amiga получила широкое распространение в узких кругах артистической, в первую очередь музыкальной, богемы.

Не в последнюю роль в расползании по нишам и Mac'а, и Amiga сыграла цена конечных решений. Что плавно подвело нас ко второй предпосылке.

Предпосылка вторая, «денежная»

Как это ни печально признать русским интеллигентам, но второй (по счёту, но не по значению) предпосылкой для возникновения Linux'а была цена. Потому что как раз в начале 90-х годов машины с 32-битными процессорами от Intel (а затем от AMD и Cyrix) стали доступны народу.

Причины этого явления уходят ещё в 80-е годы. Когда IBM выпустила свой первый PC, ещё 16-битный, руководство фирмы не относилось к этой затее совсем серьёзно, и не рассчитывало «нарубить капусты» на этом рынке. В результате все спецификации архитектуры были открыты, и не имелось ни технических, ни юридических препятствий к клонированию этих машин.

Чем немедленно воспользовались многие производители, сначала американские, а затем европейские и восточноазиатские. И очень скоро количество клонов (так называемых IBM-совместимых машин) превысило число оригинальных IBM PC-XT и PC-AT. А потом была выпущена ( в 1986 году) и первая машина на 32-битном процессоре от Intel (80386). И выпустила её вовсе не IBM, а фирма Compaq – она получила имя Compaq DeskPro 386.

Тут в IBM спохватились, что рынок, созданный их стараниями, от них уходит – и разработали новую архитектуру, также на процессоре x86, но с закрытыми спецификациями, исключающими клонирование – PS/2. Однако было поздно: рынок был заполнен стандартными PC. К рубежу 80-х и 90-х годов их не производил только ленивый – начиная от компьютерных гигантов типа Hewlett-Packard и заканчивая дядюшкой Мяо с Малой Арнаутской улицы острова Тайваня. К которому вскоре присоединился его родич – дядюшка Ляо с её продолжения на континентальном Китае. И с тех пор эти два дядюшки (особенно второй) обеспечивают мир большей частью комплектующих для компьютеров и даже готовыми системами – под какими бы торговыми марками последние не продавались.

Результатом был лавинообразный обвал цен. Первый IBM PC-XT стоил более трёх тысяч долларов, а для полноценной работы требовал ещё и доукомплектования на треть этой суммы. Ко второй половине 80-х годов относятся слова Линуса Торвальдса:

Раньше было такое правили, что все компьютеры начального уровня стоили две тысячи.

В первые же 90-е годы порог вхождения в новый дивный мир компьютеров снизился до тысячи баксов. То есть компьютеры не скатились ещё до цены ширпотреба, как ныне. Но все, кому такие машины нужны были «по делу», были в силах приобрести их, причём не только «у них», но и «у нас».

Предпосылка третья: «студенческая операционка»

В числе тех, кому такие машины были действительно нужны, и кто мог, тем или иным путём, ими обзавестись, оказались и студенты, обучавшиеся по специальностям, связанным с Computer Science. Но вот с операционной системой для 32-битных компьютеров у студентов оказалось хуже: FreeBSD ещё не начала своё свободное плавание, а коммерческие UNIX'ы стоили несколько дороже, чем необходимое для их работы «железо». Да и не густо было с ними: на архитектуре i386 были способны работать только SCO UNIX и Xenix – кастрированный UNIX от Microsoft.

И тут в канву нашего сюжета вписывается «игрушечная» ОС MINIX. Она была явлена миру в январе 1987 года Эндрю Таненбаумом (Andrew Stuart Tanenbaum), профессором Университета Врийе, Амстердам, Нидерланды. Где преподавал он ни что иное, как Computer Science, хотя и был по специальности физиком.

Университетское образование в области компьютерных наук в 80-е годы прошлого века базировалось преимущественно, если не исключительно, на UNIX. Что, как явствует из сказанного ранее, создавало для студентов известные трудности.

Так вот, Таненбаум вёл в именованном университете курс UNIX, к которому написал собственный учебник – Operating Systems: Design and Implementation. Но изучать UNIX без системы – все равно, что обучаться музыке без инструмента. А с инструментом-то как раз и была напряжёнка. И ему не осталось ничего другого, как такой инструмент изготовить. Им-то и стала ОС MINIX (в дальнейшем получившая имя MINIX 1), вышедшая в свет в 1987 году.

Это была маленькая и компактная операционка, работавшая на машинах с архитектурой i386. Доступность MINIX усугублялась ещё и тем, что ее можно было скомпилировать даже в 16-битном варианте, и в этом качестве она становилась пригодной к использованию не только на PC-AT (80286), но даже, как говорят, на XT’шках, то есть на машинах с процессором 8086/8088.

Распространялась она исключительно как сопроводительный материал к упомянутому выше учебнику. Весь комплект, по свидетельству Линуса Торвальдса, стоил 169 долларов при заказе по почте. Что на самом деле не так дорого: в те годы на Западе, только-только переставшем загнивать, ни одно специализированное книжное издание не стоило дешевле 100 баксов. Так что фактически основная, если не вся, затратная часть для пользователя приходилась на книжку, да и дискеты были не так дешёвы. Сама же ОС как таковая могла рассматриваться в качестве бесплатного приложения к книге и носителям. И, во всяком случае, это было несоизмеримо дешевле тех тысяч долларов, в которые обходилась лицензия на любой из существовавших тогда проприетарных UNIX’ов. Требовавших, к тому же, сущей безделицы в виде соответствующей рабочей станции в несколько десятков тысяч.

Разумеется, ОС MINIX распространялась в сопровождении исходных текстов, предназначенных для изучения и потрошения. Необходимость в котором возникла очень скоро.

Дело в том, что, предназначенная исключительно для учебных целей, ОС MINIX в принципе не была приспособлена для выполнения каких-либо реальных задач. Однако шаловливые студенческие руки (и не только студенческие) так и чесались прикрутить ее к чему-либо пригодному для практического использования. В результате система очень быстро обросла всякого рода патчами, из которых главным был патч от австралийца Брюса Эванса. После наложения этих патчей система становилась способной выступать как платформа разработчика. Именно на такой патченой системе Линус Торвальдс спустя несколько лет начнёт создавать свою операционную систему.

Однако сама по себе MINIX по прежнему распространялась исключительно в первозданном виде – как чисто учебная система, и лишь в сопровождении книги (или, напротив, сопровождая книгу). То есть, будучи открытой, она не была свободной. Ибо права на MINIX принадлежали издательству Prentice-Hall, выпустившему учебник Таненбаума. В сущности, правовой статус MINIX был точно таким же, как и обычной книги. Что, однако не мешало тому, что на протяжении десяти, а то и более, лет по ней учились поколения студентов как до Торвальдса, так и после него.

Надо заметить, что Таненбаума нельзя рассматривать только как предтечу Линуса, а его систему – как трамплин для его разработки. Кроме упомянутой выше Operating Systems: Design and Implementation (в переводе: Операционные системы: разработка и реализация), его перу принадлежат:

   • Computer Networks (Компьютерные сети);

   • Modern Operating Systems (Современные операционные системы);

   • Structured Computer Organization (Архитектура компьютера);

   • Distributed Systems: Principles and Paradigms (Распределённые системы. Принципы и парадигмы).

Все они по праву относятся к классике жанра IT-литературы, выдержали по несколько изданий (Computer Networks и Structured Computer Organization – аж по пять), и переведены на многие языки. В том числе и на русском языке они изданы издательством «Питер» в серии «Классика Computer Science».

Труды Эндрью Таненбаума не ограничиваются ОС MINIX и перечисленными выше книгами. Тут уместно вспомнить проекты Amoeba – разработанную «с нуля» открытую микроядерную распределённую операционную систему, и Globe – распределённую объектную систему, предназначенную для поддержки миллиардов пользователей «в мировом масштабе».

главной разработке Таненбаума, MINIX, судьба также уготовила вторую жизнь. Долгое время она продолжала эволюционное развитие в качестве учебной системы – были выпущены версии MINIX 1.5 (1992 год) и MINIX 2 (1997 год), представлявшие собой «песочницы» для начинающих юниксоидов. Однако кардинал лелеял коварные замыслы: превратить MINIX в полноценную операционную систему, реализующие его представления о том, какой должна быть современная ОС. А заодно – сделать ее свободной в полном понимании этого слова: ведь «несвобода» предыдущих версий объяснялась не жадностью профессора, а спецификой издания и распространения.

Результатом явился анонс новой операционки, MINIX 3, который состоялся 24 октября 2005 года. И о которой я расскажу подробнее в главе восьмой.

Герой выходит на сцену

Итак, толчком для написания Линусом собственного ядра послужила MINIX – «студенческая» операционка Энди Танненбаума, с помощью патчей приспособленная для выполнения практической работы.

Однако сам Линус не занимался «доведением MINIX до ума». Не использовал он также и код какой-либо из реализаций UNIX или BSD. Он воссоздал функциональность ядра UNIX с нуля – руководствуясь описаниями системных вызовов, данными в соответствующем стандарте POSIX. И потому Linux не является ни клоном System V, ни клоном BSD – хотя в ней и использована схема инициализации в стиле первой, да и идейное влияние второй, безусловно, имело место быть. Как было сказано в предыдущей главе, Линус Торвальдс, создавая свою ОС по мотивам MINIX, опирался почти исключительно на стандарты POSIX.

Linux создавался на машине с процессором i386 для архитектуры Intel и первоначально – только для неё. Более того, долгое время Линус вообще сомневался, что его система когда-либо сможет быть портирована на любую иную аппаратную платформу. И потому соответствие стандартам в данном случае преследовало целью не переносимость Linux самого по себе, а в первую очередь возможность компиляции в этой ОС всего ранее созданного программного ассортимента для UNIX и POSIX-совместимых систем вообще.

Лично Линусу принадлежит честь разработки ядра Linux и файловой системы ext (то есть Extended – расширение для файловой системы Minix). В качестве среды для работы он выбрал bash – командную оболочку, разрабатываемую в рамках проекта GNU. Для сборки своего кода был использован компилятор gcc (GNU C Compiler), а главной общесистемной библиотекой функций языка Си выступала GNU-реализация ее, glibc. Все прочее системное окружение ядра – комплекс пакетов, который можно назвать Base Linux – также в основном происходит из проекта GNU. Да и при выборе политики распространения Линус в конце концов остановился на лицензии GPL – детище Ричарда Столлмана и его Фонда свободного программного обеспечения (FSF).

На основании сказанного выше часто полагают, что ОС Linux должна на самом деле именоваться GNU/Linux. Правильно ли это?

По моему скромному мнению, нет. Конечно, роль программного обеспечения, разработанного в рамках проекта GNU, для развития Linux как пользовательской платформы переоценить трудно. Однако не проект GNU ухватился за столь недостающее ему ядро. Напротив, это Линус для обеспечения работы своего ядра использовал отдельные компоненты из GNU-арсенала. В полном, к слову сказать, соответствии с духом и буквой GPL и движения FSF. Впрочем, те, кто считает нужным подчеркнуть роль компонентов GNU в составе Linux, вполне могут это делать – и делают.

Добавлю ещё, что неотъемлемой чертой Base Linux является альтернативность его комплектации. И потому ОС Linux – не только (а может быть, и не столько) ядро и набор базовых программ, но в первую очередь алгоритм для построения такого набора. И создание такого алгоритма – второе, после написания кода ядра, великое достижение Линуса.

Наконец, Линус оказался создателем уникального метода разработки масштабных проектов Open Source, того самого, который Эрик Реймонд позднее назовёт методом большого базара. Впрочем, справедливости ради следует отметить, что в данном случае и он изобрёл велосипед – аналогичный способ привлечения дармовой рабочей силы использовал Том Сойер в своих «Приключениях». Однако, если инструментами Тома были сердцевина от яблока и крыса с привязанной к хвосту верёвкой, чтобы удобнее размахивать ей над головой, то орудием Линуса оказался Интернет.

Рождение Linux дало толчок к окончательному оформлению движения Open Source, несколько обособившемуся от сообщества Free Software – хотя и по сей день это существенно пересекающиеся множества. Но, если апологеты FSF, во главе с Ричардом Столлманом, декларируют, что всё программное обеспечение должно быть свободным, исходя из моральных и идеологических соображений, то для сторонников Open Source характерен более прагматический подход. Их принцип – открытое программное обеспечение следует использовать не потому, что оно открытое, свободное или бесплатное. А потому, что оно просто лучше проприетарного. В том числе – и в следствие публичной экспертизы, реализуемой именно благодаря внедрённому Линусом методу Тома Сойера.

Глава пятая. Берклиада, тур второй

NetBSD и OpenBSD: первый форк в благородном семействе

Уделив на предыдущих страницах столько внимания FreeBSD, я невольно оставил в тени её родную сестру – NetBSD. А между тем она была первой в ряду свободных ОС BSD-клана.

Кроме того, существует мнение, не лишённое оснований, что именно NetBSD воплощает в себе дух первозданного UNIX par exellence. По крайней мере, это верно в отношении максимально полной независимости от аппаратной части: в отличие от FreeBSD, первоначально ориентированной только на «демократическую» платформу i386, NetBSD исходно разрабатывалась как кросплатформенная: с первого для своего существования она поддерживала рабочие станции HP 9000 и Sun, компьютеры Amiga и Macintosh, полузабытые машины PC532 (на процессорах серии NS32000), а также, конечно, обычные персоналки с i386 и выше.

Наконец, история NetBSD также не лишена драматизма. И если драматизм в развитии FreeBSD носил, как мы видели, детективно-юридический характер, то здесь можно говорить скорее о драме идей, завершившейся... скоро мы увидим, чем она завершилась.

Ранее, в главе второй, я уже упоминал, что будущая NetBSD отделилась от проекта 386BSD в начале 1993 года, в тот момент, когда он оказался заброшенным своим создателем, Биллом Джолитцем, а «заплаточная группа» – будущие разработчики FreeBSD, ещё не развернули свою деятельность.

Ядро новой группы составили Крис Деметрио (Chris Demetriou), Тео де Раадт (Theo de Raadt), Адам Гласс (Adam Glass) и Чарльз Ханнам (Charles Hannum). Разрабатываемая ими система получила имя NetBSD, предложенное Тео – как раз в это время Интернет начал широко распространяться в узких пока кругах, особо приближённых к разработке.

Первым релизом новой системы считается версия 0.8, вышедшая в апреле 1993 года. Однако истинную мультиплатформенность она обрела в версии 1.0 – правда, та последовала не очень скоро, осенью 1994 года.

А вскоре, в декабре того же года, внутри группы перворазработчиков разгорелся конфликт: Тео разошёлся во мнениях относительно дальнейшего развития системы с остальными членами группы. И дело закончилось тем, что весной 1995 года ему был закрыт доступ к дереву исходных текстов NetBSD.

Это расхождение, как идейное, так и чисто личное (переписка по данному вопросу была опубликована де Раадтом в сети), и послужило причиной первого форка в BSD-клане. Поскольку исходники NetBSD были полностью свободны, Тео взял их за основу, модифицировал согласно своим представлениям о том, «как надо», и основал проект, получивший имя OpenBSD.

Во главу угла новой системы были положены два аспекта: свобода от любых компонентов, могущих ограничить её распространение, и безопасность. Последняя неразрывно была связана с криптографией. И, дабы избавиться от оков, налагаемых законами США на распространение «сильных» криптографических технологий, Тео покидает Калифорнию и перебирается в Канаду, куда некогда эмигрировала из ЮАР его семья, дабы откосить сыновей от службы в армии антинародного режима апартеида. Там, в почти родном городе Калгари, университет которого Тео закончил до работы над NetBSD, и обосновывается штаб-квартира нового проекта.

В результате, после нескольких внутренних тестировочных версий, в октябре 1996 года, рождается новая ОС – выходит первый официальный релиз OpenBSD 2.0. С тех пор полугодовой релиз-цикл выдерживается неукоснительно – очередные версии появляются каждую весну и осень.

Однако завершим историю NetBSD. В последующие годы она была портирована на всё «железо», которое может запускаться, и немножко – на то, которое запускаться не способно. Чтобы убедиться в этом, достаточно посмотреть «лист совместимости» на сайте проекта – в них обнаружатся и VAX, и Sun Sparc, и RISC-системы от Hewlett-Packadr, и DEC Alpha, и PowerPC, и Amiga, вкупе с мало кому ведомыми Acorn, Atari, Sharp, и так далее, и так далее, и так далее… Список столь обширен, что PC-платформа как-то просто теряется в середине его.

В качестве системы пакетного менеджмента в NetBSD в 1997 году была принята pkgsrc, разработанная по образу и подобию портов FreeBSD, но почти сразу также приобретшая кросс-платформенный характер. Кроме родной ОС, она официально поддерживается для многих UNIX-подобных операционок: Solaris, Linux, Darwin (Mac OS X), FreeBSD, OpenBSD, IRIX, AIX, DragonFlyBSD, HP-UX, QNX. Правда, это не значит, что в них она широко используется: во всех этих ОС есть собственные развитые средства управления пакетами. В частности, в OpenBSD, ответвившейся до возникновения pkgsrc, была просто заимствована система портов из FreeBSD. Относительно Linux мне известно несколько попыток прикрутить pkgsrc к Slackware. Лишь в DragonFlyBSD pkgsrc долгое время была принята в качестве штатной, но об этом мы поговорим в следующей главе. А в этой – вернёмся к FreeBSD и очередному перелому в её истории.

FreeBSD: десятилетие спокойствия



Поделиться книгой:

На главную
Назад