Р а з д е л ы
Новости
Гостевая
Форум
Чат
Учебники
Программы
Статьи по Delphi
Статьи по Html
Компьютерные статьи
Java скрипты
Приколы
Отправить SMS
Мои разработки
 
К о н т а к т ы

ICQ: 445511525
e-mail: ZORBI@bk.ru

c o p y r i g h t
p r o g r a m m i n g
d e s i g n e d
by ZORBI

Т р о и ц к   г

 
С с ы л к и


 
С ч е т ч и к и
Rambler's Top100
 
..:: Статьи ::..
История операционной системы Linux

Что было, когда Linux еще не было

Рождение Unix

     Давайте не будем начинать наш обзор с появления первых компьютеров и их операционных систем – так можно забраться слишком далеко. Но о двух операционных системах, Unix и Windows, упомянуть необходимо. Первая из них является прямым предшественником Linux, а вторая – ее постоянным конкурентом. О Windows мы поговорим чуть позже, а пока несколько слов об истории Unix.

     История Unix началась в 1969 году в США в фирме Bell Laboratories, дочернем подразделении компании AT&T. В те времена идея разделения времени ЦП еще только разрабатывалась и Bell Laboratories совместно с фирмой General Electric и Массачусетским технологическим институтом с 1965 года занимались созданием операционной системы MULTICS (MULTiplexed Information and Computing System) для ЭВМ GE 645. Эта система должна была обеспечить одновременный доступ к ресурсам ЭВМ большого количества пользователей при высокой скорости вычислений и совместном использовании данных. И это при мощности центрального процессора только чуть большей, чем у PC на основе Intel-386! Но в то время программисты умели писать маленькие по объему, но очень эффективные программы.

     Хотя первая версия системы Multics и была запущена в 1969 году, она не обеспечивала достижения поставленных перед нею амбициозных целей, поэтому фирма Bell Laboratories и GE прекратили разработку проекта [М.Бах]. Впрочем, МТИ продолжал разработку системы MULTICS и даже продал около 80 инсталляций этой системы, причем некоторые из них использовались вплоть до начала 90-х годов. Несмотря на то, что MULTICS не принесла разработчикам коммерческого успеха, этот проект оказал огромное влияние на последующее развитие операционных систем вообще и послужил прообразом для операционной системы Unix.

     По окончании работы над проектом Multics сотрудники Исследовательского центра по информатике фирмы Bell Laboratories остались без "достаточно интерактивного вычислительного средства". В начале лета 1969 года группа молодых сотрудников Bell Labs, участвовавших в разработке MULTICS, Руд Кенедей (Rudd Canaday), Дуг Мак-Илрой (Doug McIlroy), Дэннис Ричи (Dennis Ritchie) и Кен Томпсон (Ken Thompson) подробно обсудили, что можно сделать для спасения некоторых идей, связанных с проектом MULTICS [R.Hauben]. Они набросали на бумаге проект файловой системы, получивший позднее дальнейшее развитие в ранней версии файловой системы UNIX. Томпсоном были написаны программы, имитирующие поведение предложенной файловой системы в режиме подкачки данных по запросу, им было даже создано простейшее ядро операционной системы для ЭВМ GE 645. В то же время он написал на Фортране игровую программу "Space Travel" для системы GECOS, которую после прекращения работ над проектом MULTICS стало не на чем запускать. К счастью, Томпсон обнаружил малоиспользуемый компьютер PDP-7. Перерабатывая свою программу для PDP-7, Томпсон изучил возможности машины и совместно с Денисом Ричи (Dennis Ritchie) разработал свою систему управления процессами, свою версию файловой системы и небольшой набор утилит. В конце концов новая система не нуждалась больше в поддержке другой операционной среды. Вспомогательные утилиты, которые Томпсон и Ричи написали для обеспечения возможности запуска игры на PDP-7, стали ядром Unix, хотя это название не использовалось до 1970 года. Питер Нейман (Peter Neumann) по аналогии с MILTICS назвал новую ОС “UNICS” (UNiplexed Information and Computing Service). Неизвестно, кто изменил написание названия системы на UNIX, затем и на более привычное Unix.

     Первоначально новая ОС была написана на языке ассемблера для PDP-7 (в те времена все ОС писались для конкретных компьютеров на машино-зависимых языках). Для того, чтобы достичь переносимости и независимости операционой системы от архитектуры конкретной аппаратной платформы, Томпсон разработал специальный язык программирования, который он назвал языком B ("Би"). На этом языке он хотел переписать большую часть ОС. Это покажется еще более удивительным, если сказать, что суммарный объем RAM и жесткого диска у PDP-7 был меньше, чем объем оперативной пямяти сегодняшнего сотового телефона; большие диски в те дни имели объем менее мегабайта. Язык B позже был переработан Денисом Ричи в язык программирования C ("Си").

     Работы по созданию Unix велись фактически без ведома руководства фирмы Bell Laboratories, под предлогом (или под прикрытием) разработки системы обработки текстов для патентного департамента AT&T. Томпсон написал строчный редактор (названный ed), Ричи создал программу roff, основанную на программе runoff Дж. Салцера (J. Saltzer). Отдел патентов компании Bell Labs был удовлетворен. Разработка этого проекта позволила оправдать приобретение более совершенного компьютера - PDP-11, для которого система была переписана заново. Вторая версия Unix, на этот раз для компьютера PDP-11, появилась в 1971 году и была уже большей частью написана на C. Это было одно из тех радикальных решений, которые превратили Unix в открытую систему, каковой она сегодня является. До сих пор большинство операционных систем пишется на этом языке (за исключением тех частей, которые существенно зависят от аппаратуры и пишутся на языке ассемблера для конкретного процессора). Правда, это уже не тот самый диалект языка C, а его более современная модификация, ANSI C.

     Разработка собственно операционной системы велась, практически, на чистом энтузиазме. Как позже писал один из участников этой работы, Дуг Мак-Илрой: “ Готовность прислушаться к мнению окружающих и желание заслужить уважение в коллективе приводили к тому, что огромное количество написанного кода могло быть переписано или просто выброшено, если появлялись лучшие или более глубокие идеи. Профессиональное соперничество и утаивание своих достижений практически не встречались: было так много хороших событий, что ни у кого не было стремления единолично завладеть какой-то инновацией”.

     Между 1970 и 1972 годами систему улучшали, в нее добавили много новых функций. Но использование системы Unix было ограничено подразделениями компании AT&T в Нью-Джерси до тех пор, пока Нейл Граундвотер (Neil Groundwater) не установил систему Unix в компании New York Telephone в Манхеттене, использовав при этом систему PDP-11/20, 56 Кбайт оперативной памяти и два жестких диска RK11/05 объемом 2,4 Мбайт. В течение следующего года все больше и больше членов вычислительного сообщества узнавали об операционной системе Unix, и многие запрашивали данную систему.

     Даже на ранних стадиях своего развития операционная система Unix обеспечивала значительно более удобную среду программирования, чем те, которые существовали на любых известных в ту пору мейнфреймах. Она была первой системой, в которой программист мог сидеть непосредственно за машиной, и создавать программы "на лету", исследуя разные возможности и тестируя варианты во время компиляции. Кроме того, в ней с самого начала были заложены средства коммуникации. Ричи писал: “Мы хотели сохранить не только хорошую среду программирования, в которой можно было решать задачи, но и систему, вокруг которой могло сформироваться товарищество. Мы по опыту знали, что сущностью совместного использования компьютера (the essence of communal computing) является не только замена перфокарточного ввода на терминал, но и предоставление средств и стимулов для более тесного общения, реализуемого средствами удаленного доступа к машине, работающей в режиме разделения времени.” Идея о том, что компьютер должен рассматриваться не только как простое логическое устройство, но и как ядро некоего сообщества, носилась в воздухе: примерно в это же время (в 1969 году) была изобретена ARPANET - прямой предшественник нынешней Internet.

     В феврале 1973 года существовало 16 установленных систем Unix. В октябре того же года Д. Ричи и К. Томпсон организовали первую презентацию "Операционной системы Unix" на симпозиуме ACM (Association for Computing Machinery) по операционным системам, после чего в течение шести месяцев число установленных систем Unix утроилось.

     В июле 1974 года в журнале Communications of the ACM (CACM) появилась первая публикация о Unix. В ней Ричи и Томпсон описывали беспрецедентно простое устройство Unix и сообщали о более чем шестистах инсталляциях этой системы. Все эти инсталляции были осуществлены на компьютеры, которые считались слабыми даже по стандартам тех дней.

     В мае 1974, еще до публикации статьи, Лоу Кац (Lou Kats), Мел Ференц (Mel Ferentz) и Рейдар Бонхолт (Reidar Bornholt) организовали первую встречу пользователей системы Unix в медицинском колледже Колумбийского университета (Columbia University's College of Physicians and Surgeons). На встрече присутствовало примерно двадцать пять человек из дюжины учреждений. Вторую встречу, в июне 1975 года, посетило уже свыше 40 человек из 20 учреждений. Использование системы Unix постоянно росло, несмотря на отсутствие интереса и поддержки со стороны компании AT&T.

     В 1971 году Дуг Мак-Илрой настоял на том, чтобы Д. Ричи и К. Томпсон написали руководство программиста. Поскольку система Unix постоянно изменялась, версии этой системы стали называть именно по этим руководствам пользователя: первое издание - 3 ноября 1971 года (V1), второе издание - 12 июня 1972 года (V2), третье издание - февраль 1973 года (V3), четвертое издание - ноябрь 1973 года (V4), пятое издание - июнь 1974 года (V5), шестое издание - май 1975 года (V6), седьмое издание - январь 1979 года (V7), восьмое издание - февраль 1985 года, девятое издание - сентябрь 1986 года и десятое издание - октябрь 1989 года.

     После статьи в CACM исследовательские лаборатории и университеты по всему миру проявили интерес к Unix. Но корпорации AT&T (которая был родительской организацией по отношению к Bell Labs) на основании антитрестовского законодательства запрещалось заниматься компьютерным бизнесом. Поэтому Unix не могла продаваться; более того, Bell Labs должна была предоставить лицензию на свои нетелефонные технологии любому, кто ее об этом просил. Поэтому Кен Томпсон в ответ на поступающие запросы спокойно рассылал адресатам ленты и наборы дисков со своей операционой системой. В результате многие университеты внесли свой вклад в развитие Unix. В Йельском университете студенты и преподаватели модифицировали оболочку (shell), в университете Пэрдью (Purdue) добились существенного увеличения производительности, создав версию Unix, которая поддерживала большее число пользователей. В том же университете создали одну из первых компьютерных сетей на основе Unix. В Калифорнийском университете в Беркли студенты создали новую оболочку и множество небольших утилит.

     Калифонийский университет в Беркли вообще сыграл особую роль в развитии Unix. Профессор Роберт Фабри (Robert Fabry) из этого университета принимал участие в программе симпозиума SOSP (Symposium on Operating Systems Principles) и был очарован презентацией Томпсона. Он собрал достаточно средств для приобретения PDP-11/45 и в январе 1974 года установил систему Unix. В 1975 году тот же университет заказывает PDP-11/70. В 1974-75 учебном году Кен Томпсон во время своего годичного отпуска читает курс лекций в Калифорнийском университете. Здесь тогда работали два аспиранта - Чак Хели (Chuck Haley) и Билл Джой (Bill Joy). Они были очарованы придуманной Томпсоном модификацией языка Pascal; Pascal Томпсона мог работать в операционной системе Unix. Джой написал строчный редактор, который был "добрее к пользователю", чем редактор ed. Редактор Джоя получил название ex, и стал прообразом очень популярного впоследствии экранного редактора vi.

     В начале 1978 года, после нескольких заявок, полученных отделом разработок университета, Джой начал работу по созданию собственной версии Unix, которая получила название BSD (Berkeley Software Distribution). Первая лента (360 метров, 800 бит на дюйм, стоимостью примерно $50), содержала систему Pascal для Unix и текстовый редактор ex; было распространено около 30 копий. До конца 1978 года распространялся другой пакет - 2BSD; отправлено около 75 копий. К 1980 году Беркли был центром небольшой сети университетов, активно развивающих свой вариант Unix. Идеи и части кода из Беркли-Unix (включая редактор vi) были затем использованы и в разработках Bell Labs. Приблизительно в то же время компания Interactive Systems, организованная Питером Вэйнером (Peter Weiner) и Гейнцем Ликлама (Hienz Lycklama), выпускает первую коммерческую систему Unix, а компания Whitesmiths (P. J. Plauger) создает первый клон системы Unix, названный Idris.

     В 1979 году появилась "последняя настоящая Unix", имевшая номер V7. Она включала команды awk, make и uucp; полные компиляторы языка С, сделанные Б. Керниганом и Д. Ричи; оболочку Bourne; команды find и cpio и многое другое. При этом размер ядра составлял около 40 Кбайт! Версия 7 также дала начало первой 32-разрядной версии системы Unix и демонстрации переносимости: Дэннис Ричи и Стив Джонсон (Steve Johnson) из компании AT&T перенесли ее в систему Interdata, а группа программистов из австралийского университета University of Wollongong перенесла ее на систему Interdata 8.

     Правда, производительность версии 7 была хуже, чем в системе шестого издания. Но в университете Беркли (и других местах в США) и в Австралии занялись решением этой проблемы, и в январе 1982 года Том Феррин (Tom Ferrin) объявил о многочисленных усовершенствованиях и выпуске в свет модели 2.8.1BSD.

     В 1980 году агентству DARPA (the Defense Advanced Research Projects Agency) потребовалась команда разработчиков для реализации только что разработанного стека протоколов TCP/IP под Unix на компьютере VAX. Компьютеры PDP-10, на которых в то время базировалась сеть ARPANET, уже исчерпали свой ресурс, и было ясно, что фирма DEC будет вынуждена перейти на VAX. DARPA рассматривало возможность заключить контракт с DEC на реализацию TCP/IP, но отказалось от этой идеи, потому что было убеждено, что DEC не сможет пойти на внесение требуемых изменений в свою проприетарную операционную систему VAX/VMS. Поэтому DARPA выбрала в качестве платформы Berkeley Unix — исключительно по той причине, что ее исходный код был доступен и неперегружен. Исследовательская группа по компьютерным наукам университета в Беркли (Berkeley's Computer Science Research Group) оказалась в нужном месте в нужное время с самым лучшим набором инструментов для разработки; в результате произошел самый значительный поворот в истории Unix с момента ее возникновения.

     Когда систему Unix признали самой предпочтительной для новой Internet, это усилило ее использование. Компания AT&T произвела на свет операционную систему Programmer's Workbench (рабочее место программиста), а затем System III Unix. Тем временем из Беркли начинают распространяться версии 4BSD (октябрь 1980); 4.1BSD (июнь 1981); 4.1а, 4.1b и 4.1c (1982-1983); 4.2BSD (сентябрь 1983). Эта последняя версия была действительно сильно переработанной системой. Она включала работу с сетью (протокол TCP/IP), более быструю файловую систему и возможность использования сигналов.

     До тех пор, пока реализация протоколов TCP/IP не появилась в 1983 году в версии 4.2BSD, Unix имел очень слабую сетевую поддержку. Ранние эксперименты с Ethernet были неудовлетворительными. Все изменилось после реализации стека протоколов TCP/IP. Только после того, как ARPANET и Unix нашли друг друга, начали реализовываться идеи Д.Ричи о том, что компьютер должен быть не только вычислительной установкой, но средством общения. До применения Unix в ARPANET круг этого общения ограничивался пользователями одного компьютерного центра. После реализации TCP/IP горизонты общения существенно расширились.

     К 1983 году машины VAX под управлением Unix заняли доминирующее положение среди ЭВМ, подключенных к Интернет. Это положение они занимали вплоть до тех пор, пока не были потеснены рабочими станциями от Sun.

Unix-войны и проблема стандартизации

     Первой компанией, которая сделала Unix предметом своего бизнеса, была фирма Santa Cruz Operation (SCO), основанная в 1979 году Дугом и Ларри Митчелами (Doug and Larry Michels) как консультационная компания по Unix. В 1982 году была основана компания Sun Microsystems (одним из основателей которой был Билл Джой), которая установила Unix от Беркли на аппаратную платформу, разработанную в Стенфорде, и положила начало производству так называемых рабочих станций. В том же 1982 году появилась IRIX от SGI. Sun уже добилась существенных успехов на рынке, когда в 1983 году с корпорации AT&T был снят установленный в 1958 году запрет заниматься компьютерным бизнесом. AT&T стремительно занялась коммерциализацией Unix версии System V от Bell Labs. В 1983 году вышла также SCO XENIX - первый коммерческий Unix на Intel-архитектуре. В 1986 году появилась операционная система HP-UX 1.0 (на базе System III) от Hewlett-Packard, в 1990 г. на рынок Unix-систем вышли IBM с AIX и Apple с A/UX.

     Именно появление коммерческих реализаций Unix привело к тому, что разразились так называемые Unix-войны. Каждая из фирм в стремлении добиться превосходства на рынке включала в свою систему какие-то особенности, собственные доработки и усовершенствования, иногда даже с прямой целью обособить свою систему от других, представленных на рынке. Фирмы-разработчики в своих усилиях добиться преимущества над конкурентами вносили изменения даже в интерфейс прикладного программирования API (Applications Programmer's Interface), - спецификацию набора функций, которую должны выдержать разработчики программного обеспечения для совместимости своих программ с операционной системой. Это еще больше усиливало несовместимость разных версий Unix и приводило к несовместимости программного обеспечения, разработанного разными (в том числе независимыми) поставщиками.

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

     Чтобы преодолеть эту проблему были предприняты несколько попыток стандартизации Unix. Три основных проекта стандартизации были SVID (System V Interface Definition), POSIX (первоначально "/usr/group") и X/Open (первоначально BISON).

     Первые серъезные усилия по стандартизации версий API, разработанных для System V и Berkeley, были предприняты в 1983 году в рамках стандарта /usr/group. На его основе некоммерческое объединение IEEE (Institute of Electrical and Electronic Engineers, существующее еще с 1884 г.) разработало стандарт POSIX. Первая версия POSIX появилась в 1990 г. Этот стандарт описывает набор системных вызовов, составленный на основе наборов из BSD и SVR3 (System V Release 3). Все более поздние стандарты Unix включают в свой состав POSIX, и все последующие версии Unix придерживаются этого стандарта. Единственное большое дополнение, которое позже появилось в ядре Unix, были сокеты, пришедшие из BSD.

     Консорциум X/Open (позже Open Group), созданный в 1984 г., - еще одна попытка достичь совместимости между участвующими в данном проекте реализациями Unix на уровне исходных кодов. Разработка проекта X/Open началась в Европе, хотя позже к нему присоединились и американские компании (включая AT&T).

     В 1988 году AT&T приобрела 20% акций Sun. Эти две компании, лидеры на рынке Unix-систем, выпустили общую версию системы, которая получила название Unix System V Release 4. В. Но к этому моменту появилось еще несколько поставщиков Unix - IBM, DEC, Hewlett Packard и другие. Они начинали работу, как правило, с версии AT&T, приобретенной по лицензии; но затем каждый поставщик добавлял свои уникальные функции с целью обеспечить конкурентное преимущество. Новые поставщики не пожелали мириться с доминированием альянса AT&T/Sun. Они выдвинули лозунг "открытых систем" и создали организацию Open Software Foundation. Ее версия Unix, OSF/1, появившаяся в 1990 году, предлагалась как стандартная, но была явно нацелена против AT&T и Sun. Последние, в свою очередь, создали другую организацию для разработки стандартного варианта системы - Unix International.

     В 1991 году компания AT&T передала все права на систему Unix в собственную лабораторию Unix System Laboratories (USL), которую в 1993 году купила компания Novell. А в 1995 году Novell продала права на систему Unix компании Santa Cruz Operation (SCO).

     Последней версией Unix, разработанной университетом Беркли, была версия 4.4BSD (июнь 1993). После судебного процесса, затеянного AT&T, университетские разработки системы Unix были прекращены, и последующее развитие BSD Unix происходит теперь от компании BSDI (Berkeley Software Design, Inc). Но зато в том же 1993 появилась ОС FreeBSD - свободная от проприетарного кода реализация Unix.

     "Войны юниксов" продолжались до 1993 года. На рынке предлагалось множество систем, несовместимых между собой. Можно было в какой-то мере говорить о двух стандартах, предлагаемых OSF/1 и Unix International, но между системами этих стандартов о совместимости не могло быть и речи. За это время произошли ключевые события на рынке. Был выпущен процессор Intel 80386; шло активное распространение дешевых PC-совместимых машин, которым суждено было практически полностью вытеснить рабочие станции. Из-за "войн" Unix-системы в значительной мере упустили свой шанс на рынке.

     В 1993 году "войны юниксов" официально закончились. В немалой степени этому способствовал уход с рынка Unix компании AT&T. Вскоре все поставщики признали важность стандартизации и был разработан достаточно общий стандарт Single UNIX Specification (SUS). Unix к этому времени прочно занимала позиции на рабочих станциях и сетевых серверах. Особенно сильны были его позиции на компьютерах, построенных на основе RISC-процессоров. Но Unix-системы не смогли стать основными для массового компьютерного рынка. Операционная система Windows уже полностью доминировала на персональных компьютерах и активно вытесняла рабочие станции с Unix. Unix еще какое-то время сохраняла свои позиции на серверах, но и тут уже ее теснила Microsoft.

GNU, Free Software и Open Source

     Операционная система Unix – это только один из двух главных предшественников Linux. Второй существенный предшественник – проект GNU Ричарда Столлмана (Richard Stallman) и его последователей.

     История проекта GNU началась в сентябре 1983 года. Основоположник проекта GNU, Ричард Столлман (Richard M. Stallman) работал в это время в лаборатории искусственного интеллекта Массачусетского Технологического института (Massachusetts Institute for Technology, MIT, in Cambridge, Massachusetts). Э.Реймонд называет Столлмана одним из самых выдающихся программистов нашего времени. В той среде, к которой принадлежал Р.Столлман, было принято свободно обмениваться программами и их исходными кодами.

     В 1982 году для лаборатории искусственного интеллекта была приобретена коммерческая ОС, и Р.Столлман впервые близко столкнулся с ситуацией, когда такой обмен категорически воспрещался. Приобретение коммерческого ПО означало автоматическое заключение "соглашения о неразглашении", которое фактически провозглашало следующее: если вы поделились программой с соседом - вы пират! А когда один из программистов отказался предоставить Столлману исходные коды управляющей программы для принтера (что практически лишало возможности пользоваться этим принтером), Столлман был поставлен перед выбором: либо признать законность соглашений о неразглашении, либо попытаться доказать, что программное обеспечение должно свободно копироваться и модифицироваться, что позволит значительно ускорить процесс его разработки. Ведь лицензия на Unix от AT&T, к примеру, стоила 40 000 долларов. Позволить себе купить ее могли только достаточно крупные фирмы. А без такой лицензии программист не имел права использовать исходные коды системы в своих разработках. Да просто не имел этих исходных кодов! Это препятствовало обмену идеями в сфере программирования и сильно тормозило процесс создания программ, поскольку вместо того, чтобы позаимстовать готовый кусок кода для решения той или иной задачи, разработчик программы был вынужден писать эту часть кода заново.

     И Столлман решил изменить это положение вещей в программировании. В 1983 году он объявил о начале разработки проекта GNU, целью которого было создание полностью открытой операционной системы.

     Чтобы МТИ не мог предъявить права собственности на результаты работы и навязать свои условия распространения разработанного ПО, Столлман в январе 1984 года ушел из МТИ и полностью посвятил себя проекту GNU. На первом этапе он поставил перед собой задачу создания многоязыкового, многоплатформенного компилятора. Но, чтобы написать любую программу, надо как минимум иметь текстовый редактор. Поэтому первой программой, созданной в рамках проекта GNU, стал текстовый редактор Emacs. Столлман начал работать над GNU Emacs в сентябре 1984 года, а в начале 1985-го уже имел работоспособную версию. Редактором Emacs заинтересовались другие программисты и это дало Столлману возможность получения небольшого заработка: он стал за 150 долл. отсылать по почте ленту с Emacs любому, кто захотел ее иметь.

     В 1985 году Р.Столлман написал свой знаменитый Манифест GNU (он был опубликован в мартовском номере журнала "Dr. Dobb's Journal" за 1985 год) и основал Free Software Foundation (FSF) - благотворительный фонд для разработки свободно распространяемого ПО. Фонд взял на себя распространение лент с Emacs; позже он стал поставлять и другие свободно распространяемые программы (созданные как в рамках Проекта GNU, так и вне его), а также продавать руководства к ним. Это давало средства для разработки проекта GNU. FSF принимал пожертвования, но большая часть доходов всегда поступала от продаж копий свободно распространяемого ПО и связанных с ним услуг.

     Разработка свободно распространяемого ПО была очень важным шагом, но еще большей заслугой Р.Столлмана следует признать создание Стандартной Общественной Лицензии GNU (GNU General Public License, или GPL). На русский язык это название разные авторы переводят по разному - Универсальная общественная лицензия, Обобщенная Публичная Лицензия и т.п. Но считается, что юридическую силу имеет только английский вариант этой лицензии. Основная идея GPL состоит в том, что пользователь должен обладать следующими четырьмя правами (или четырьмя свободами):

  • Правом запускать программу для любых целей (свобода 0)
  • Правом изучать устройство программы и приспосабливать ее к своим потребностям (свобода 1), что предполагает доступ к исходному коду программы.
  • Правом распространять программу, имея возможность помочь другим (свобода 2).
  • Правом улучшать программу и публиковать улучшения, в пользу всего сообщества (свобода 3), что тоже предполагает доступ к исходному коду программы.
     Программное обеспечение, распространяемое под этой лицензией, можно как угодно использовать, копировать, дорабатывать, модифицировать, передавать или продавать модифицированные (или немодифицированные) версии другим лицам при условии, что результат такой переработки тоже будет распространяться под лицензией GPL. Последнее условие — самое важное и определяющее в этой лицензии. Оно гарантирует, что результаты усилий разработчиков свободного ПО останутся открытыми и не станут частью какого-либо лицензированного обычным способом продукта. Оно также отличает свободное ПО от ПО, распространяемого бесплатно. Одно из требований этой лицензии состоит в том, что продавая ПО под лицензией GPL, вы должны предоставить исходные коды этого ПО каждому, кто захочет получить к ним доступ. Говоря словами создателей FSF, лицензия GPL "делает ПО свободным и гарантирует, что оно останется свободным".

     Первая версия GPL датирована февралем 1989 г. Вторая вышла в июне 1991-го, в настоящее время идет работа над 3-ей версий.

     Все программное обеспечение GNU выпускается под этой лицензией или менее ограничивающим ее вариантом, LGPL. Для документации прокта GNU была разработана специальная "Лицензия GNU на свободную документацию". Поскольку лицензированные традиционным способом программы часто обозначали значком авторского права "copyright", программы, выпущенные под лицензией GPL, стали обозначать как "copyleft".

     Главная цель, которую преследует GPL, - защитить свободное программное обеспечение от "приватизации". Но нужно заметить, что она сконструирована таким образом, чтобы разрешить все "честные" способы заработка денег на свободных программах, Это очень существенный момент, на который необходимо обратить особое внимание. При первом знакомстве с GPL может сложиться ошибочное представление о том, что эта лицензия вообще запрещает какие-либо способы заработать на программном обеспечении или его разработке. На самом деле GPL в частности и FSF вообще прямо поощряют бизнес, связанный с оказанием сопутствующих услуг, - обучение, консультации, и коммерческое тиражирование ПО. Это позволяет привлечь к сотрудничеству и корпорации и людей, для котоых материальный интерес важнее моральных стимулов.

     Важной особенностью GPL является то, что использование GPL не требует согласия с идеологией Столлмена (она довольно радикальна - по-видимому, Столлмен не приемлет любой софтверный бизнес, основанный на эксплуатации ограничений, предоставляемых авторским правом). На практике ее находят удобным инструментом для достижения своих целей и большинство программистов, не разделяющих достаточно радикальную позицию FSF, и даже многие коммерческие предприятия. C другой стороны, GPL обычно считают приемлемым инструментом и те, кто не хотел бы, чтобы на их вкладе "делали деньги". Это не случайная особенность. GPL намеренно составлена так, чтобы быть приемлемой для максимально широкого круга людей.

     К 1990 году в рамках проекта GNU было создано большинство компонент, необходимых для функционирования свободной операционой системы. Помимо текстового редактора Emacs, Столлман создал компилятор gcc (GNU C Compiler) и отладчик gdb. Будучи выдающимся программистом, Ричард Столлман в одиночку сумел создать эффективный и надежный компилятор, который превосходит по своим качествам продукты коммерческих поставщиков, создаваемые целыми группами программистов. Поскольку изначально при его создании ставилась задача обеспечения переносимости, сегодня существуют версии этого компилятора практически для всех операционных систем. Позже были созданы компиляторы для других языков программирования, включая C++, Pascal и Fortran. Поэтому сейчас аббревиатура GCC расшифровывается как GNU Compiler Collection.

     Сотрудники Free Software Foundation разработали множество других программных пакетов. Из них стоит особо отметить два: библиотеку Си и оболочку shell. Библиотека функций языка Си была разработана сотрудником FSF Роландом Макграсом. Оболочка BASH (Bourne Again Shell), обеспечивающая взаимодействие пользователя с операционной системой, создана еще одним сотрудником FSF Брайаном Фоксом.

     Как пишет Р.Столлман "К 1990 году система GNU была практически закончена; не хватало только одного из базовых компонентов - ядра." Ожидалось, что ядро (оно получило название HURD) будет реализовано как набор серверных процессов, работающих на Mach - микроядре, создаваемом в университете Карнеги-Меллона, а затем в университете штата Юта. Начало разработки откладывалось в ожидании выпуска Mach, которое, как было обещано, будет выпущено в виде свободно распространяемого программного обеспечения. Но его появление все откладывалось, и тут появилось ядро, разработанное финским студентом Линусом Торвальдсом, и получившее название Linux.

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

     Успех Linux как операционной системы во многом обусловлен тем, что к 1991 году в рамках проекта GNU уже было разработано множество утилит, свободно распространяемых в Интернет. Проекту GNU не хватало ядра, а ядро, скорее всего, осталось бы невостребованным, если бы отсутствовали необходимые для работы утилиты. Линус Торвальдс оказался со своей разработкой в нужном месте в нужное время. И Ричард Столлман прав, когда настаивает на том, что операционную систему следует называть не Linux, а GNU/Linux. Но название Linux исторически уже закрепилось за этой ОС, поэтому мы тоже будем называть ее просто Linux (не забывая о заслугах Р.Сталлмана и его сподвижников).

IBM PC и Microsoft

     Все события, о которых шла речь выше, происходили, если можно так выразиться, на "больших комьютерах". А между тем в начале 1980-х годов появились так называемые персональные компьютеры. Но приверженцы Unix вначале не обращали на них внимания, считая их слишком "слабыми" для серьезной работы. И рынок операционных систем для персоналок был захвачен компанией Microsoft.

     Компания Microsoft была основана в июле 1975 года в городке Альбукерке (шт. Нью-Мексико) двумя друзьями - 20-летним Биллом Гейтсом и 22-летним Полом Алленом. Их дружба началась еще в школе Лейксайд в Сиэтле на основе фанатичной увлеченности программированием. Ученикам школы Лейксайд в Сиэтле повезло. Это учебное заведение одним из первых ввело в программу компьютерный курс. Восьмиклассник Гейтс погрузился в изучение возможностей PDP-10, вскоре стал настоящим асом и написал прекрасную программу для автоматизации процесса составления школьного расписания. Пол Аллен был его постоянным компаньоном.

     В 1974 году на компьютерном рынке появилось нечто до тех пор небывалое - маленькая компания MITS из Альбукерке выпустила персональный микрокомпьютер Altair на базе Intel 8080. Altair с большой натяжкой можно было назвать компьютером - MITS предлагала изделие типа "сделай сам", комплект, из которого терпеливый пользователь с помощью паяльника в конце концов мог получить довольно сложное в эксплуатации устройство. Однако, желающих заполучить собственный компьютер за вполне доступную (400 долл.) цену оказалось предостаточно.

     Аллен, первым узнавший об Altair, убедил Гейтса в необходимости начать работу над языком программирования для этого микрокомпьютера. Компаньоны позвонили главе MITS Эду Робертсу и сообщили, что уже имеют Бейсик, адаптированный для Altair. При этом о существовании языка было заявлено фактически до начала разработки. У Аллена и Гейтса даже не было ни самого микрокомпьютера, ни микропроцессора Intel 8080, они эмулировали его на PDP-10.

     Зимой 1975 года состоялась личная встреча Эда Робертса и Пола Аллена в Альбукерке. Аллен привез готовый Бейсик для машины, которую сам еще в глаза не видел. Разработка Гейтса и Аллена, к удивлению их самих, прошла все испытания. Робертс более не колебался - он был готов незамедлительно подписать договор.

     Успех Бейсика для Altair помог Гейтсу принять окончательное решение: теперь его будущее было связано только с компьютерами. Он оставил Гарвардский университет, в котором учился на юриста, и полностью отдался развитию собственной компании - Microsoft.

     Первые шаги Microsoft связаны с совершенствованием и пропагандой Бейсика. В 1976 году, когда было решено снабдить Altair дисководом, Гейтс в кратчайший срок написал вариант языка со средствами управления файлами на дискетах, DiskBASIC. Несмотря на дороговизну первых дисководов, оснащение ими микрокомпьютера Altair и появление DiskBASIC открывало путь к превращению машины из игрушки для любителей повозиться с новой техникой в полезный инструмент автоматизации труда специалистов разного профиля. DiskBASIC давал возможность создавать полезные прикладные пакеты - финансовые, бухгалтерские, игровые, наконец.

     К 1980 году Microsoft cтала абсолютным монополистом на рынке языков программирования для микрокомпьютеров, годовой объем продаж компании в 1979 году составил 2,5 млн. долл., объем сбыта удваивался ежегодно. Естественно, разработки уже не могли вестись только усилиями Гейтса и Аллена, и компания набрала значительный штат программистов, а со временем пригласила и специалистов, на которых были возложены административные обязанности и решение финансовых вопросов. Кроме того, Microsoft переехала из жаркого Альбукерке в родной для ее основателей Сиэтл.

     А на рынке операционных систем для микропроцессоров в это время господствовала фирма Digital Research. В 1974 году, когда фирма Intel выпустила первый 8-битовый микропроцессор общего назначения 8080, ей потребовалась операционная система, которая могла бы работать с этим процессором, хотя бы для того, чтобы можно было тестировать процессор. Intel обратилась к одному из своих консультантов, Гэри Килдаллу (Gary Kildall), с просьбой написать такую систему. Килдалл написал операционную систему, которая размещалась на 8-дюймовых гибких дисках фирмы Shugart Associates (драйвер дисковода был тоже разработан Килдаллом). Система получила название CP/M (Control Program for Microcomputers). Поскольку в Intel полагали, что микрокомпьютеры с дисковыми накопителями не имеют большого будущего, фирма согласилась на просьбу Килдалла уступить ему права на операционную систему CP/M. Килдалл создал компанию Digital Research, с целью дальнейшего развития и продажи CP/M.

     В 1977 голу Digital Research переписала CP/M заново, чтобы сделать ее пригодной для запуска на разных микрокомпьютерах на основе ЦП Intel 8080, Zilog Z80 и других. Для CP/M было написано множество приложений, что обеспечило этой ОС господство на микрокомпьютерах в течение 5 лет.

     В 1980 году патриарх компьютерной индустрии, фирма IBM, выпускавшая до тех пор только мэйнфреймы, приняла историческое решение выйти на рынок микрокомпьютеров. IBM поставила задачу за год создать и выпустить на рынок машину нового типа, для чего компании необходимо было изменить принятые принципы ведения работ. Решение задачи собственными силами вылилось бы в обычный для корпорации четырехлетний цикл выпуска, что было совершенно недопустимо в условиях взрывного роста микрокомпьютерного рынка. Поэтому решено было строить компьютер на базе стандартного микропроцессора Intel и в сотрудничестве с внешним разработчиком программного обеспечения. Проведенный анализ показал, что на всех машинах, выпускаемых лидерами рынка персональных компьютеров, используются программные продукты фирмы Microsoft. Джек Сэмс, возглавивший в IBM проект по созданию персонального компьютера, предложил Биллу Гейтсу разработать Бейсик для 8-разрядного компьютера, спецификации которого предоставит IBM. Гейтс, со своей стороны, рискнул обратить внимание на перспективы нового, 16-разрядного процессора Intel 8086 и порекомендовал строить машину именно на его основе. В конечном итоге в IBM признали правоту 25-летнего президента Microsoft, хотя был выбран не 8086, а аналогичный, но несколько более медленный процессор 8088.

     Затем встал вопрос об операционной системе для новой машины. Гейтс предложил обратиться к Digital Research, ведущему производителю операционных систем для микрокомпьютеров. Но Килдалл отказался от встречи с IBM, послав вместо себя подчиненного. Хуже того, адвокат Килдалла отказался подписать соглашение о неразглашении данных о еще не выпущенном к тому времени персональном компьютере IBM PC. Digital Research упустила свой шанс. IBM снова обратилась к Гейтсу, на этот раз предложив ему разработать операционную систему для IBM PC.

     Историческая сделка между Microsoft и IBM о создании операционной системы для IBM PC была заключена в 1981 году. Поскольку разработать в заданные сроки полностью новую ОС не представлялось возможным, Microsoft решила адаптировать уже существующую программу. Гейтс купил у фирмы Seattle Computer Products систему QDOS (Quick and Dirty Operating System), которая являлась клоном системы CP/M и была разработана таким образом, что под ее управлением могло работать все программное обеспечение для CP/M. Автором QDOS был один из программистов фирмы Seattle Computer Products, Тим Пэтерсон (Tim Paterson). Покупка обошлась Microsoft в 50 000 долларов. Паттерсон тоже вскоре перешел на работу в Microsоft. Переработанная ОС получила название MS-DOS (MicroSoft Disk Operating System).

     В середине 1981 года работа над MS-DOS была завершена. Помимо операционной системы в Microsoft разработали для нового компьютера IBM языки Бейсик, Паскаль и Ассемблер 8088, а затем компиляторы с Фортрана и Кобола. 12 августа 1981 года IBM официально объявила о выпуске IBM PC. Это была машина с процессором Intel 8088 (тактовая частота 4,77 МГц), дисководом для 5-дюймовых гибких дисков и 64 Кбайт оперативной памяти, не имевшая жеского диска.

     Операционная система от Microsoft не сразу заняла господствующее положение на IBM PC. Вскоре Digital Research выпустила 16-разрядную версию СР/М-86. В IBM согласились продавать ее вместе со своим персональным компьютером. На первых порах шансы обеих ОС в конкурентной борьбе казались равными. Уже завоевавшая широкую популярность у пользователей СР/М вполне могла рассчитывать на успех, ее поддерживали многие. Однако СР/М была почти в четыре раза дороже MS-DOS, кроме того, IBM оказала неявную поддержку разработке Microsoft, переименовав систему, которая поставлялась вместе с IBM PC, в PC DOS. К тому же Гейтс принял очень мудрое (как показали последующие события) решение продавать MS-DOS производителям компьютеров для того, чтобы они поставляли ее вместе со своим оборудованием. Килдалл же, наоборот, продавал свою систему только конечным пользователям (по крайней мере, вначале). Тем не менее, Microsoft понадобилось около трех лет, чтобы одержать окончательную победу над конкурентом.

     К тому времени, когда IBM в 1983 году выпустила PC/AT на основе процессора Intel 80286, MS-DOS уже заняла лидирующие позиции, а CP/M доживала последние дни. Хотя первые версии MS-DOS были довольно примитивными, впоследствии в нее были добавлены многие дополнительные свойства и возможности, часто заимствованные из UNIX (Microsoft была хорошо знакома с Unix и даже некоторое время продавала свою версию Unix для микрокомпьютеров, под названием XENIX). На 80386 и 80486 использовалась уже в основном MS-DOS.

     Следующее десятилетие ознаменовано постепенным захватом фирмой Microsoft всего рынка программного обеспечения для персональных компьютеров. Билл Гейтс сумел убедить IBM позволить продавать операционную систему отдельно от компьютера. Затем Microsoft выпустила текстовый процессор Word и электронную таблицу Exel. В ноябре 1983-го в Нью-Йорке Microsoft официально объявила о создании графического пользовательского интерфейса для DOS - Microsoft Windows. Однако реально он появился на свет лишь к ноябрю 1985 года.

     MS-DOS, как и другие операционные системы для компьютеров того времени (в том числе CP/M и все ранние Unix-ы), были основаны на вводе пользователем команд с помощью клавиатуры. Между тем уже достаточно давно существовал графический интерфейс пользователя (Graphical User Interface - GUI), изобретенный еще в начале 1960-х годов Дугом Энгельбартом (Doug Engelbart) из Стенфордского исследовательского института (Stanford Research Institute). Этот интерфейс основан на использовании окон, меню, значков-иконок и мыши. Идеи Энгельбарта были реализованы в начале 1970-х годов в компьютерах Alto фирмы Xerox. Это была первая система, включавшая все основные элементы графического интерфейса: 3-кнопочную мышь, дисплей с возможностью управления отдельными пикселами, использование графических окон и возможность соединения с сетью Ethernet. Однако сотрудники Xerox не придавали GUI должного значения и этот способ общения пользователя с компьютером вначале не получил сколь-нибудь широкого распространения. Первым, кто осознал его потенциальные возможности, был Стив Джобс (Steve Jobs), один из основателей фирмы Apple. Во время визита в Xerox он увидел GUI и решил применить его в новом компьютере от Apple. Проект получил название Lisa, однако коммерческого успеха не имел, потому что компьютер получился очень дорогим. Однако следующая разработка Джобса, Apple Macintosh, имела колоссальный успех, и не только потому, что была много дешевле чем Lisa, но и потому, что была "дружественной к пользователю", то есть ориентирована на людей, которые не только ничего не знали о компьютере, но даже не имели намерения учиться чему-либо подобному.

     В Интернет существует очень интересный ресурс, посвященный истории развития графического интерфейса пользователя. На этом сайте приведены изображения, иллюстрирующие все основные этапы развития GUI. Версии 1-6 этой системы были монохромными, запускались на дисплеях DEC VS100, соединенных с компьютерами VAX и VAXstations 1 and 2. Версия 11, выпущенная в июне 1984 года обладала более высокой производительностью и улучшенными графическими возможностями.

     Хотя многие давние приверженцы UNIX, особенно опытные системные администраторы и программисты предпочитают использовать интерфейс командной строки (который часто называют консольным режимом), почти все версии Unix поддерживают графический интерфейс, который строится на основе стандарта X Window System (в просторечии — "иксы"), первоначальный вариант которого был разработан в 1987 году в Массачусетском технологическом институте. Начиная со второй версии этот стандарт поддерживался консорциумом X, созданным в январе 1988 г. с целью унификации графического интерфейса для ОС Unix. В настоящее время действует версия 11 выпуск 6 стандарта на графическую подсистему для UNIX-систем, которая кратко обозначается как X11R6. В 1997 году консорциум X преобразован в X Open Group. Впрочем, об X Window мы поговорим чуть позже, а пока вернемся к истории операционных систем фирмы Microsoft.

     Большой коммерческий успех компьютеров Macintosh заставил Microsoft задуматься о возможности использования графического интерфейса в своих системах. В 1984 было объявлено о выходе программы Windows, однако ее первая версия появилась лишь в августе 1985 года, причем большого успеха не имела. Первая версия графического интерфейса от Microsoft, получившая широкое распространения, появилась только в 1990 году в виде Windows 3.0. Причем все эти версии Windows запускались "поверх" MS-DOS, то есть представляли собой только графическую оболочку для MS-DOS. И только в 1993 году появилась ОС Windows NT (где NT означало New Technology, то есть "новая технология"), которая была написана полностью заново.

     Это была полностью 32-разрядная система. Ведущим разработчиком Windows NT был Дэвид Катлер (David Cutler), который до этого участвовал в разработке операционной системы VAX VMS, откуда он позаимствовал некоторые идеи при создании Windows NT. Microsoft ожидала, что уже первая версия Windows NT (ей сразу был присвоен номер 3.1) сможет полностью вытеснить MS-DOS и все другие версии Windows, поскольку по своим качествам эта система существенно превосходила своих предшественников, однако эти ожидания не оправдались. И только с появлением в 1995 году Windows 95, а в 1996 году Windows NT 4.0 Microsoft удалось занять господствующие позиции на персональных компьютерах и начать проникновение на рынок серверов в корпоративных сетях.

     На замену Windows 95 на персональных компьютерах пришли Windows 98 и Windows ME (Millennium Edition), а место Windows NT 4.0 должна была занять версия 5 Windows NT, которая в 1999 году была переименована в Windows 2000. Предполагалось, что эта версия заменит все ранее выпускавшиеся версии Windows и будет использоваться как на персоналках, так и на серверах.

     25 октября 2001 года Microsoft выпустила Windows XP (или Windows NT 5.1). После установки этой операционной системы, ее необходимо "активировать", для чего разработана довольно сложная процедура, в процессе которой необходимо сообщить фирме Microsoft о том, что ее ОС устанавливается на компьютер, и получить необходимые коды активации. Эта процедура прямо связывает возможность установки ОС Windows XP с существованием фирмы Microsoft.

     В течение всей своей истории Microsoft придерживалась рыночной стратегии, прямо противоположной той, что проповедовали сторонники открытого кода. Все ее продукты были закрыты, исходные коды являлись секретом фирмы, конкурирующие продукты всеми возможными способами вытеснялись с рынка. В конце концов эта стратегия привела к тому, что Microsoft стала фактически монополистом если не на всем рынке программного обеспечения для персональных компьютеров, то, по крайней мере на рынке операционных систем для таких компьютеров и в области офисных приложений. У пользователей PC практически не осталось выбора. Компьютеры Mac от Apple были лучше, чем IBM PC, но имели такие цены, которые немногие могли себе позволить, а поэтому оставались недоступны для миллионов.

Операционная система MINIX

     В течение 1990-х годов персональные компьютеры на основе микропроцессора Intel, оснащенные операционными системами от Microsoft, заняли господствующее пооложение на рынке настольных систем и захватили также существенную долю рынка серверов - традиционной сферы применения Unix-систем. Компьютеры на основе Intel и Intel-совместимых процессоров досигли вычислительной мощности, сравнимой с мощностью рабочих станций с Unix. Но большинство коммерческих Unix-систем не имели версий, способных работать на оборудовании Intel. Производители Unix обычно тесно сотрудничали с производителями конкретных процессоров или даже имели долю собственности в компаниях, производивших конкретные процессоры, а поэтому были заиинтересованы в использовании своих процессоров. Примерами могут служить линейки процессоров SGI и MIPS.

     Поскольку аппаратные возможности персоналок стремительно нарастали, естественно, что рано или поздно должны были появиться варианты Unix для компьютеров на основе Intel-совместимых процессоров. Один из таких вариантов Unix-подобной операционной системы, который сыграл особую роль в истории Linux, был разработан в январе 1987 года Андрю Таненбаумом (Andrew S. Tanenbaum), профессором Университета Врие (Vrije Universiteit), Амстердам, Нидерланды. А.Таненбаум был одним из ведущих специалистов в области разработки операционных систем. Свою операционную систему, которую он назвал Minix (Миникс), он разработал как учебное пособие, на примере которого он показывал студентам внутреннее устройство реальной операционой системы.

     Конечно, как операционная система Minix не была верхом совершенства. Она была ориентирована на микропроцессор Intel 80286, который в то время господствовал на рынке. Но у нее было одно очень важное качество - ее исходные коды были открыты. Каждый, кто имел книгу А.Таненбаума "Операционные системы", мог изучить и проанализировать 12 000 строк кода, написанного на языке Си и на ассемблере. Это был тот редкий случай, когда исходные коды не были заперты под семью печатями в сейфах разработчика. Великолепный автор, Таненбаум сумел вовлечь самые выдающиеся умы компьютерной науки в обсуждение искусства создания операционных систем. Minix можно было приобрести и отдельно от книги, и она могла быть реально установлена на персональный компьютер. Студенты компьютерных факультетов по всему миру корпели над книгой Татненбаума, вчитываясь в коды с целью понять, как работает та самая система, которая управляет их компьютером. И одним из таких студентов был Линус Торвальдс.


Рождение новой операционной системы

Студент из Хельсинки Линус Торвальдс

     Линус Бенедикт Торвальдс (Linus Benedict Torvalds) родился 28 декабря 1969 года. Его дед по материнской линии, Лео Вальдемар Тёрнквист был профессором статистики в Университете Хельсинки. В 1981 он купил компьютер Commodore VIC-20. Это был первый компьютер, к которому Линус получил доступ - он помогал деду набивать программы, которые профессор старательно писал на бумаге, потому что не привык делать это непосредственно за компьютером. На этом же компьютере Линус написал свою первую программу - это была традиционная "Hello, World!". Когда дед умер, компьютер достался Линусу. Следующие 4 года он провел за компьютером. Когда он выжал из VIC-20 все, что смог, он стал копить деньги на модель следующего поколения. Основным источником средств на покупку компьютера были школьные стипендии, которые Линукс ежегодно получал как лучший математик. В 1987 году он купил Sinclair QL. В этом компьютере был установлен 32-разрядный процессорный чип 68008 компании Motorola с частотой 8 мегагерц. Sinclair имел 128 килобайт (не мегабайт!) памяти, что по тем временам было очень много для домашнего компьютера. У VIC-20, на смену которому он пришел, было всего три с половиной килобайта. В качестве операционной системы использовалась Q-DOS.

     Именно в это время Торвальдс заинтерсовался работой операционной системы. Как он пишет сам в книге "Just for fun": "Операционками я заинтересовался так: купил флоппи-контроллер, ... но к нему прилагался такой поганый драйвер, что пришлось написать новый. Пока писал - обнаружил проколы в самой операционной системе или по крайней мере несоответствие между тем, что обещала документация, и тем, что реально происходило. Я с этим столкнулся, когда моя программа отказалась работать."

     На Sinclair QL Торвальдс работал 3 года. За это время он написал собственный редактор и ассемблер, запрограммировал несколько игр. По окончании школы он поступил на отделение компьютерных наук университета г.Хельсинки, столицы Финляндии. После окончания первого курса Торвальдс был вынужден был пойти в армию, где прослужил 11 месяцев. По возвращении из армии он снова вернулся в университет, выбрал себе курсы на осень и с нетерпением ждал лекций по языку Си и системе Unix. В предвкушении этих лекций еще летом он купил книгу "Проектирование и реализация операционных систем" Эндрю С. Таненбаума, в которой описывалась операционная система Minix. В своих воспоминаниях Линус пишет: "Как только я прочел предисловие, познакомился с концепцией Unix и узнал, на что способна эта мощная, строгая и красивая операционная система, я захотел купить такой компьютер, на котором сможет работать Unix. Я решил, что поставлю себе Minix - единственную по-настоящему полезную из известных мне версий."

Начало

     2 января 1991 года Линус приобрел в рассрочку новый компьютер, на основе процессора Intel 80386 с 4 мегабайтими ОЗУ и тактовой частотой 33 мегагерца. Он установил на него Minix, которую пришлось заказывать отдельно. Она поставлялась на 16-ти дискетах. Примерно за месяц Торвальдс обжился в системе полностью и у него возникло множество претензий к этой ОС, несмотря на то, что установил в систему усовершенствования, сделанные австралийским хакером Брюсом Эвансом (это был царь и бог Minix 386). Хуже всего была эмуляция терминала, очень важная для Торвальдса программа, потому что именно ее он использовал для подключения к университетскому компьютеру MicroVAX, на котором стояла Ultrix - вариант Unix, созданный корпорацией Digital Equipment. Пришлось писать собственную программу эмуляции.

     Когда программа эмуляции терминала заработала, возникла новая проблема. Как пишет Торвальдс "Беда была в том, что я хотел скачивать и закачивать файлы. То есть мне нужно было уметь писать на диск. Для этого моей программе эмуляции нужен был драйвер дисковода. А еще ей был нужен драйвер файловой системы, чтобы она могла вникать в организацию диска и записывать скачиваемые файлы. ... разработка драйверов для дисковода и файловой системы казалась интересным делом. И я решил им заняться. Написал драйвер дисковода. А поскольку я хотел записывать файлы в файловую систему Minix, да к тому же эта система была хорошо документирована, я сделал свою файловую систему совместимой с системой Minix. Таким образом я мог читать файлы, созданные в Minix, и писать файлы на тот же диск, так что Minix могла читать файлы, созданные моей программой эмуляции терминала."

     В Minix не только была плохая эмуляция терминала, но и не было возможности перевести в фоновый режим программу, которой временно не пользуешься. И тут Торвальдс уже практически взялся за создание собственной операционной системы. Вначале он пытался просто программировать один за другим системные вызовы. Но их около двухсот и эта работа скоро наскучила. Тогда он изменил подход. Он взял оболочку bash, котоорая свободно распространялась в Интернет, и начал пытаться заставить ядро своей ОС запустить ее. Когда на этапе загрузки или запуска оболочка обращалась к какому-то системному вызову, происходил сбой. Тогда Линукс реализовывал необходимый системный вызов и повторял попытку. Наконец, в конце августа или начале сентября 1991 года, оболочка заработала. Это был очень важный момент. Как только оболочка заработала, удалось откомпилировать еще несколько программ. Оболочка была сложнее, чем, к примеру, программа копирования ср или команда выдачи листинга каталогов ls. В какой-то момент готовых компонент оказалось столько, что настал момент, когда можно было сказать, что заложены основы новой операционной системы.

     В своей книге "Just for fun" Л.Торвальдс пишет, что версия 0.01 была выпущена 17 сентября 1991 года. Снова приведу цитату из книги Торвальдса:

     "И вот я решился ее выложить. Я не делал публичных объявлений, а просто написал пятерым-десятерым хакерам на личные адреса, что она лежит на FTP-сайте. В числе прочих я написал знаменитому среди фанатов Minix Брюсу Эвансу и Ари Лемке. Я выложил исходники самой Linux и еще несколько бинарников, чтобы можно было хоть что-то делать. Я сказал, что нужно, чтобы запустить все это хозяйство. На машине должна была стоять Minix (версия 386) и нужен был компилятор GCC. Причем на самом деле нужна была моя версия GCC, поэтому ее я тоже выложил. Не думаю, чтобы ту версию проверяло больше одного-двух человек. Для этого нужно было возиться с установкой специального компилятора, выделить пустой раздел, чтобы использовать его для загрузки, откомпилировать мое ядро и запустить оболочку. А кроме запуска оболочки, делать было особенно нечего. Можно было распечатать исходники - всего 10 000 строк. Я стал распространять свою операционку прежде всего, чтобы доказать, что все это не пустая болтовня - я действительно что-то сделал. В Интернете много болтают. О чем бы ни шла речь - об операционке или о сексе - многие в киберпространстве просто вешают лапшу на уши. Поэтому важно после того как ты растрезвонил, что пишешь операционку, иметь возможность сказать: "Вот - я ее и правда сделал. Я не трепло - можете сами посмотреть".

     Название "Linux" новая система получила следующим образом. Самого Торвальдса несколько смущало созвучие этого названия с его именем, поэтому он пытался назвать свою разработку FREAX. Это название можно обнаружить в файле kernl/Makefile версии 0.11, и в исходных кодах других программ. Но Ари Лемке, который предоставил место для выкладывания системы на FTP сайте, назвал каталог pub/OS/Linux. И это название закрепилось за новой ОС.

Стадия становления

     Тот факт, что Линус выложил код своей ОС в Интернет, был решающим в дальнейшей судьбе Linux. Хотя в 1991 году Интернет еще не был так широко распространен, как в наши дни, зато пользовались им в основном люди, имеющие достаточную техническую подготовку. И уже с самого начала Торвальдс получил несколько заинтересованных откликов.

     Примерно в феврале 1992 года Линус высказал просьбу ко всем, кто уже пользовался или тестировал Linux, прислать ему открытку. Таких открыток было получено несколько сотен со всех концов света - из Новой Зеландии, Японии, Нидерландов, США. Это говорило о том, что Linux начала приобретать некоторую известность.

     Получил Торвальдс отзыв и от Андрю Таненбаума, автора MINIX. К сожалению, отзыв этот был довольно недоброжелательный. В своем письме Таненбаум писал: "Я все же придерживаюсь той точки зрения, что использование монолитного ядра в 1991 году является фундаментальной ошибкой. Радуйтесь тому, что вы не мой студент. У меня вы не получили бы высокой оценки за такую работу :-)"

     Линус позже признавался, что это был самый тяжелый момент в истории его занятий Linux. Все же Таненбаум был знаменитым профессором и все, что он говорил, заслуживало внимания. Но в отношении Linux профессор был не прав, а Линус был упрямым парнем и не мог просто так признать себя неправым. К тому же Таненбаум озаглавил свое письмо "Linux устарела" и опубликовал его в телеконференции, что сильно задело Линуса, так как ему показалось, что оно подрывает его социальный статус, которым он очень дорожил.

     Линус говорит, что спор с создателем Minix вскоре перешел в обмен личными посланиями - перепалка была слишком резкой, чтобы вести ее публично. Несколько месяцев было тихо. Потом Таненбаум прислал Линусу ссылку на пятистрочное объявление в журнале "Byte" о выпуске коммерческой версии Linux. "В своем последнем сообщении Эндрю спрашивал, этого ли я хотел - чтобы кто-то продавал мой труд. Я ему ответил коротко: "Да", и больше он мне не писал", - рассказывает Линус.

     Более подробно с перепиской Линуса Торвальдса, Андрю Таненбаума, Теда Тсо (Ted T'so), Дэвида Миллера и других участников этого спора вы познакомиться, если перейдете по следующим ссылкам "Linux is Obsolete", obsolete.

     С полным текстом можно также ознакомиться по адресу: http://groups.google.com/groups?threadm=12595%40star.cs.vu.nl.

     Первоначально Линус Торвальдс не хотел продавать свою разработку. И не хотел, чтобы ее продавал кто-то другой. Это было четко прописано в уведомлении об авторских правах, помещенном в файл COPYING самой первой версии - 0.01. Причем требование Линуса налагало значительно более жесткие ограничения на распространение Linux, чем те, которые провозглашались в лицензии GNU: не разрешалось взимать никаких денег за передачу или использование Linux. Но уже в феврале 1992 г. к нему стали обращаться за разрешением брать плату за распространение дискет с Linux, чтобы покрыть временные затраты и стоимость дискет. Кроме того, необходимо было считаться и с тем, что при создании Linux использовалось множество свободно распространяемых по Интернету инструментов, самым важным из которых был компилятор GCC. Авторские права на него оговорены в Универсальной общественной лицензии (GPL), которую изобрел Ричард Столман. Торвальдсу пришлось пересмотреть свое заявление об авторских правах, и, начиная с версии 0.12 он тоже перешел на использование лицензии GPL.

     Весной 1992 года Орест Збровски сумел перенести под Linux систему X Window. Обмен информацией между сервером и клиентам в этой системе осуществляется с помощью сокетов, или, точнее, Unix Domain Sockets. Этот же способ используется для передачи информации в Интернет. Поэтому, как пишет Торвальдс, "мы с большим воодушевлением принялись разрабатывать сети для Linux поверх этих самых Domain Sockets, хотя они вовсе не были для этого предназначены. Я был настолько уверен, что все получится, что даже сделал скачок в нумерации версий. В марте 1992 года я планировал выпустить версию 0.13. А вместо этого, получив графический интерфейс пользователя, уверился, что мы на 95% достигли цели - выпуска полноценной, надежной операционной системы, пригодной к тому же для работы в сети. И поэтому выпустил версию 0.95." Но разработка сетевой подсистемы оказалась делом значительно более сложным, чем это казалось вначале. Поэтому пришлось использовать трехуровневую систему нумерации.

     Для появившихся к этому времени коммерческих компаний, продававших Linux, было очень важно, чтобы была наконец выпущена версия Linux с номером 1.0. Это имело значение скорее по психологическим, чем по технологическим причинам: кому хочется торговать операционной системой версии 0.96? Поэтому в конце концов и Линус Торвальдс согласился выпустить версию 1.0, когда почувствовал, что система стала наконец работоспособной. Университет Хельсинки предоставил для проведения презентации Linux 1.0 главную аудиторию факультета информатики. Презентация была проведена 16 апреля 1994 года с большой помпой. Репортаж об этом событии даже показали по финскому телевидению.

Добровольные помощники

     С самых ранних этапов существования Linux в развитие системы вносили свой вклад очень многие добровольные помощники, которые посвящали свое время, умения и усилия развитию и совершенствованию Linux.

     Конечно, эти люди проделали гораздо больше работы, чем сказано в этой табличке. И, кроме перечисленных, было огромное число людей, которые в этой табличке не указаны, но которые внесли свой вклад в развитие Linux. Вначале к разработке присоединились сотни, потом тысячи, потом сотни тысяч добровольных помощников. Система уже не была просто игрушкой для хакеров. Дополненная массой программ, разработанных в рамках проекта GNU, Linux был уже пригоден для практического использования. А то, что ядро системы распространялось под лицензией GNU General Public License, гарантировало, что исходные коды системы были и останутся свободными, то есть могут копироваться, изучаться и модифицироваться без опасения нарваться на какое-либо преследование со стороны разработчика или какой-то коммерческой фирмы. И это привлекало в ряды пользователей и сторонников Linux все новых последователей, в первую очередь из числа студентов и программистов.

     К этому времени сфорировалась отдельная телеконференция в Интернете, посвященная Linux, - comp.os.linux. Энтузиасты образовали множество групп пользователей и в начале 1994 г. вышел первый номер журнала "Linux Journal". Linux привлекла внимание промышленных фирм и несколько небольших компаний начали разрабатывать и продавать собственные версии Linux.

Первые дистрибутивы

     Самые первые версии Linux, появившиеся в 1991 году, размещались на двух дискетах. Первая дискета была загрузочной и содержала ядро, а вторая - корневую файловую систему и основные утилиты. Копии этих дискет можно было загрузить с сервера университета в Хельсинки. Конфигурирование и настройка системы производились вручную и были очень сложными. Поэтому до появления первых дистрибутивов установить Линукс на свой компьютер мог только достаточно подготовленный специалист, можно сказать эксперт в UNIX.

     Положение изменилось после появления так называемых дистрибутивов. Дистрибутив Linux отличается от простого набора пакетов программного обеспечения в первую очередь наличием программы инсталляции, которая позволяет рядовому пользователю установить систему на свой компьютер, причем сделать это не привлекая высококвалифицированного эксперта. Если попытаться дать формальное определение дистрибутива, то получится что-то вроде:

     Дистрибутив Linux – это набор пакетов программного обеспечения, включающий базовые компоненты операционной систем (в том числе, ядро Linux), некоторую совокупность программных приложений и программу инсталляции, которая позволяет установить на компьютер пользователя операционную систему GNU/Linux и набор прикладных программ, необходимых для конкретного применения системы.

     Первые дистрибутивы Linux появились вскоре после того, как Линус Торвальдс выпустил разработанное им ядро Linux под лицензией GPL. Поскольку значительная часть другого необходимого программного обеспечения уже была разработана в рамках проекта GNU, отдельные программисты (и группы программистов) начали разрабатывать как программы инсталляции, так и другие прикладные программы, пользовательский интерфейс, программы управления пакетами и выпускать свои дистрибутивы Linux.

     Первый дистрибутив Linux был создан Оуэном Ле Бланк (Owen Le Blanc) в Манчестерском компьютерном центре (Manchester Computing Centre, MCC) в Англии. Первый релиз этого дистрибутива, получившего имя MCC Interim Linux, стал доступен для всех желающих с ftp-сервера Манчестерского университета в феврале 1992 г. Примерно в то же время сотрудниками университета Техаса был создан дистрибутив TAMU.

     В октябре 1992 появился разработанный Питером Мак-Дональдом (Peter McDonald) дистрибутив Softlanding Linux System (SLS), который был первым дистрибутивом, включающим в себя такие элементы, как X Window System и поддержка TCP/IP.

     Ни один из этих дистрибутивов не имел хорошей поддержки. В конце 1992 года Патрик Фолькердинк (Patrick Volkerding) выпустил дистрибутив, в значительной части основанный на SLS, который он назвал "Slackware" и который является старейшим дистрибутивом из тех, которые до сих пор активно развиваются.

     На основе дистрибутива Slackware германской фирмой S.U.S.E (акроним от немецкого "Software- und System Entwicklung"), основанной в 1992 году как консультативная группа по ОС UNIX, был создан дистрибутив SuSE Linux, версия 1.0 которого вышла в 1994 году. Позже SuSE интегрировал дистрибутив Jurix Флориана Ла Роше (Florian La Roche).

     Еще один проект по разработке дистрибутива, Debian, был начат Яном Мёрдоком (Ian Murdock) 16 августа 1993 года как альтернатива коммерческим дистрибутивам Linux. Ян хотел создать систему, распространяемую абсолютно свободно и открыто, в духе Linux и GNU. Позже разработка Debian была профинансирована проектом GNU: Free Software Foundation, который выделил деньги на один год, с ноября 1994 по ноябрь 1995, что позволило Я.Мердоку в течение этого периода уделять проекту Debian все свое время.

     Дистрибутив Red Hat, который включал в себя некоторые аспекты дистрибутива Bogus (например, механизм пакетов), был основан в 1994 году. На основе Red Hat было создано множество других дистрибутивов, в том числе многие коммерческие дистрибутивы, например, Caldera, Mandrake и TurboLinux.

     А Линус Торвальдс к этому времени еще даже не окончил учебу в университете!


Linux совершенствуется

Изменения в личной жизни

     Пока шла подготовка в выпуску версии 1.0, в личной жизни Торвальдса произошли довольно существенные перемены. Осенью 1992 года его назначили ассистентом в шведских классах факультета информатики. Здесь он познакомился со своей будущей женой, Туве. Туве была дошкольным педагогом и шестикратным чемпионом Финляндии по карате, у нее было много друзей. Через несколько месяцев Торвальдс переехал в ее крошечную квартирку.

     После выхода версии 1.0 к Linux начали присматриваться крупные корпорации. Среди них была и компания Novell, в которой открыли небольшой "побочный" проект на базе Linux под названием "Looking Glass" (зеркало). В августе 1994 года Novell пригласила Торвальдса приехать в Орем (шт. Юта) поговорить об этой разработке. Это был первый визит Линуса за океан.

     Второй раз Линус побывал в Америке еще через год. Приехал, чтобы выступить перед DECUS (группой пользователей Digital) в Новом Орлеане. Встреча была организована Джоном Холлом, по прозвищу Мэддог. Он ведал техническим маркетингом Digital Unix и был давним пользователем Unix.

     Одним из последствий этого выступления в Новом Орлеане было то, что Мэддог договорился чтобы Digital одолжила Торвальдсу компьютер на основе процессора Alpha. В результате Linux впервые была перенесена на компьютер, отличный от PC. До этого Linux уже переносили на другие архитектуры. Была версия для компьютеров Atari и Amiga на базе микропроцессора Motorola 68000. Но перенос в этих случаях был осуществлен таким образом, что Linux не годилась для двух платформ одновременно. Просто куски программы, которые не работали на новой машине, выкидывались и вместо них писались другие. Перенос на Alpha был первым настоящим переносом. Исходники для PC и для Alpha практически не различались, использовался один и тот же исходный код при компиляции программ для разных архитектур.

     Перенос Linux на другие платформы стал темой магистерской диссертации Торвальдса. Он пишет в своей книге, что факультет информатики Университета Хельсинки всегда оказывал ему большую помощь. В 1995 году Торвальдса перевели в научные сотрудники и он впервые начал получать деньги за свою работу над Linux. "Когда в марте 1995-го мы выпустили версию 1.2, ядро уже включало в себя 250 тысяч строк кода, новый журнал "Linux Journal" хвалился десятитысячным тиражом, a Linux могла работать на процессорах Intel, Digital и Sun SPARC. Это был большой прогресс.

     Но учеба все еще формально была не закончена. Только весной 1996-го Торвальдс наконец закончил курс обучения на звание магистра.

     Вскоре после этого Линус получил приглашение работать в компании Transmeta, офис которой расположен в городе Санта-Клара, штат Калифорния. В этой компании работал один из давних приверженцев Linux - Питер Энвин, который и организовал это приглашение. Компания Transmeta в то время работала в условиях глубокой конспирации и о ней было известно только то, что там разрабатываются "программируемые чипы".

     Известие о приглашении Торвальдса в Transmets обеспокоило сообщество сторонников Linux, потому что Transmeta частично финансировалась одним из основателей Microsoft Полом Алленом; некоторые видели тут хитрый план захвата Linux.

     Когда прошел слух, что Торвальдс приглашен в Transmeta, ему поступило несколько других предложений: от финской компании Tele, от Digital, от Red Hat. В Red Hat даже обещали дать Торвальдсу зарплату выше, чем в Transmeta, и превысить предложение Transmeta в отношении пакета акций, каково бы оно ни было. Но Торвальдс не хотел работать на какую-то одну конкретную Linux-компанию и решил принять предложение Transmeta. Тем более, что контракт с Transmeta предусматривал возможность продолжать работу над Linux, причем даже в рабочие часы.

     5 декабря 1996 года в семье Торвальдсов появилась дочь Патриция. "Следующие несколько недель мы были заняты Патрицией и хлопотами по получению американских виз, которые, казалось, займут всю жизнь." Утренним рейсом 17 февраля 1997 года Торвальдсы вылетели в Сан-Франциско, предварительно отправив в Америку свое имущество.

     Компания Transmeta Corporation занималась разработкой нового микропроцессора Crusoe™, работы над которым велись под большим секретом. Целью разработки было создание процессора с низким потреблением энергии и сокращенным набором встроенных команд, на котором можно было бы эмулировать другие процессоры (включая Intel) программным путем. Линус был приглашен в команду разработчиков этого процессора. Как он пишет в своей книге "На самом деле я не делал в Transmeta ничего особенного. Прежде всего я занялся устранением некоторых возникших у них проблем с Linux. В компании использовалось большое количество многопроцессорных машин, работавших под Linux. Сам я никогда раньше не занимался вопросами симметричной многопроцессорной обработки под Linux, и выяснилось, что многие вещи работают вовсе не так, как ожидалось. Я воспринял это как личный вызов и, естественно, принялся все исправлять. ... Я писал и обслуживал интерпретатор х86, который мы и сегодня используем (хотя обслуживают его теперь другие). Интерпретатор по существу является составной частью программного обеспечения Transmeta: его задача брать команды Intel одну за другой и выполнять их (т.е. по-командно интерпретировать язык архитектуры 80x86). Позже я занялся другими вещами, но тогда я впервые столкнулся со странным и восхитительным миром эмуляции аппаратных средств."

     Таким образом, работая в Transmeta, Торвальдс продолжал уделять свое время и работам по развитию ядра Linux. Но только теперь он уже не являлся единственным разработчиком ядра, его основной задачей стало управление развитем ядра. О том, как он это делает, сам Торвальдс рассказывает следующим образом:

     “Я управляю ядром Linux, которое лежит в основе всего, потому что до сих пор все связанные с Linux люди доверяют мне больше, чем кому-либо другому. Управляя проектом с сотнями тысяч разработчиков, я действую точно так же, как в студенческие времена: никому ничего не поручаю, а просто жду, пока кто-нибудь сам вызовется. Это началось с того, что я сложил с себя менее интересные обязанности, например, составление кода пользовательского уровня. Нашлись добровольцы, которые взяли на себя отдельные подсистемы. Ко мне все попадает через этих руководителей подсистем. Я утверждаю или отвергаю их работу, но по большей части позволяю событиям идти своим путем. Если два человека ведут сходные направления, то я принимаю работу обоих, чтобы посмотреть, чья начнет использоваться. Иногда используются обе, но они начинают развиваться в разные стороны. Однажды между двумя людьми была сильная конкуренция: каждый из них настаивал на том, чтобы были использованы его заплатки, которые конфликтовали с заплатками соперника. Я перестал принимать заплатки от обоих, пока один из разработчиков не потерял интерес. Так поступил бы царь Соломон, если бы руководил детским садом.”

     Несмотря на оглушительный успех своей разработки, он остался простым и скромным человеком. Между тем Linux сделала его богатым: пакет акций, предоставленный ему компанией Red Hat, к концу 1999 года стоил уже более 20 миллионов долларов. Вскоре Торвальдсы могли позволить себе приобрести большой участок земли с отдельным домом. К этому времени семейство Торвальдсов снова увеличилось - 16 апреля 1998 года у них родилась вторая дочь - Даниела Иоланда Торвальдс, первая американская гражданка среди Торвальдсов. Еще одна дочь, Селеста, родилась у них в 2000 году.

     По признанию Торвальдса, в Transmeta ему создали прекрасные условия для работы над ядром, но из-за этого он часто ощущал неловкость: на Linux он тратил больше рабочего времени, чем на исполнение прямых служебных обязанностей. “Как ни смешно, хотя мой стиль управления Linux заслужил высокую оценку прессы, в Transmeta в роли менеджера я потерпел полное фиаско. На короткое время меня было назначили руководителем группы разработчиков. Но я не справился. Каждый, кто побывал в помойке моего кабинета, знает, что я совершенно безалаберный человек. Мне было трудно сладить с еженедельными собраниями, составлением отчетов, повседневным руководством. Через три месяца стало очевидно, что мой стиль работы совершенно не идет на пользу Transmeta, несмотря на все дифирамбы, которые напели журналисты о моем управлении Linux.“

     Поэтому 16 июня 2003 года Линус Торвальдс объявил о своем уходе из компании Transmeta (в ней он проработал более шести лет) и переходе на работу в Лабораторию разработок с открытым кодом (Open-Source Development Laboratory – OSDL). OSDL представляет собой некоммерческую организацию, созданную консорциумом, состоящим из ряда крупных компьютерных компаний. В их число, среди прочих, входят IBM, Intel, Fujitsu, Hitachi, NEC и HP. Позже к ним присоединилась и Novell. Главной служебной обязанностью Торвальдса в ODSL является совершенствование Linux. В заявлении Торвальдса, распространенном консорциумом ODSL, говорится: "Кажется немного странным, что я, наконец, буду официально работать над тем, чем занимался последние двенадцать лет, но ввиду предстоящего выпуска версии 2.6.x имеет смысл целиком сконцентрироваться на Linux. OSDL - это идеальное место для независимой от поставщиков и нейтральной разработки Linux". Компания Transmeta объявила, что отпускает Торвальдса в бессрочный отпуск, но готова принять его снова, "как только он почувствует, что его работа над Linux превращается в рутину".

     В ноябре 2004 года издание CRN опубликовало список 25 лучших по их мнению руководителей 2004 года. На первом месте в этом году оказался основатель Linux Линус Торвальдс. Объясняет свой выбор CRN тем, что Линус успешно руководит разработкой ядра операционной системы последние 15 лет. За эти годы Linux приобрела множество новых качеств и завоевала обширную аудиторию. Особенно отмечается тот факт, что за последний год разработка Linux сильно продвинулась вперед. Столь быстрое развитие ядра ветви 2.6 отчасти объясняется тем, что Линус в прошлом году покинул Transmeta, где разработка ядра не была его прямой обязанностью, и теперь работает в Open Source Development Labs (OSDL).

Дальнейшее развитие ядра

     После выхода версии 1.0 дальнейшее развитие ядра Linux стало осуществляться в виде двух веток – стабильной (версии, рекомендуемые к широкому использованию) и экспериментальной (версии ядра, включающие новые, еще не проверенные или недостаточно оттестированные части кода). Номерами с четной второй цифрой (1.0.0, 1.0.1, 1.0.2, 1.2.x, ...) стали обозначать стабильные версии, а экспериментальные версии обозначали номерами с нечетной второй цифрой (1.1.x, 1.3.x, ...). Экспериментальные версии предназначались для дальнейшего развития, тестирования новых свойств или особенностей, только что включенных в ядро (и не обязанных, вообще говоря, в нем оставаться). После того, как новые части ядра проходили достаточную отладку, внесение изменений в экспериментальную ветку прекращалось, допускалось только устранение ошибок в коде, и через некоторое время код этой версии служил основой для выпуска очередной версии стабильной ветки ядра. Обычно в стабильной версии допускалось только устранение явных ошибок.

     Новые версии в стабильной ветке ядра появлялись сравнительно редко, только после тщательной отладки, а в экспериментальной ветке - значительно чаще. Например, выход версии 1.0.9 состоялся только через полгода после 1.0, а версия 1.1.0 претерпела более 50 изменений за первые 10 месяцев. Наконец, после выхода версии 1.1.60 в экспериментальной ветке была выпущена стабильная версия 1.2.0. Одновременно ее двойник под номером 1.3.0 дал начало новой экспериментальной ветке.

     Одной из главных проблем, которые стояли перед разработчиками Linux на первых этапах ее развития, было обеспечение поддержки широкого спектра аппаратных устройств. В самых первых версиях Linux поддерживал только стандартные IDE-диски. Естественно, что такая система не могла получить широкого распространения. Начиная с версии 1.2 каждая новая версия ядра включала поддержку новых типов процессоров и новых устройств. Процесс этот проходил достаточно сложно.

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

     Но такая модель тоже не лишена своих проблем. Когда новое устройство появляется на рынке, проходит несколько месяцев, пока какой-то программист удосужится написать для него драйвер. А производители устройств не были заинтересованы выпускать драйверы своих устройств под Linux, пока эта ОС еще не получила достаточно широкого распространения. Более того, для создания независимым программистом драйвера какого-то устройства, как правило, необходимо, чтобы были опубликованы спецификации этого оборудования, данные об интерфейсах и т.п.. На первых этапах существования Linux не все производители публиковали эту информацию, поскольку не считали нужным обеспечивать поддержку своего оборудования в системе Linux. Разработчики Linux даже вынуждены были создавать специальные списки устройств, с которыми могла работать эта система. Однако по мере того, как Linux приобретал все больше и больше сторонников, ситуация менялась и большинство фирм-производителей не только предоставляют необходимые данные разработчикам, но и сами разрабатывают драйверы устройств под Linux. Поэтому в наши дни Linux обеспечивает работу со всем спектром производимых аппаратных средств.

     Поскольку число различных аппаратных устройств очень велико, драйверы устройств составляют бОльшую часть объема программного кода в Linux. Основные функции ядра, типа организации многозадачного режима или управления памятью, реализуются сравнительно небольшими частями программ. И если, с одной стороны, поддержка широкого диапазона аппаратных средств и платформ является в настоящее время одной из сильных сторон ОС Linux, то, с другой стороны, непосредственным следствием включения драйверов различных устройств является рост объема программного кода ядра.

     Кроме поддержки различных устройств большая работа была проделана по переносу Linux на различные аппаратные платформы, Alpha, Mac, PowerPC и даже на наладонные компьютеры Впрочем, этому процессу будет посвящен отдельный раздел настоящего обзора, поэтому сейчас на этом не будем задерживаться.

     В наши дни, как только появляется новое устройство, ядро Linux дорабатывается с целью обеспечить поддержку этого устройства. Например, через несколько недель после того, как фирма Intel выпустила микропроцессор Xeon® в ядро Linux были внесены необходимые изменения для его поддержки.


Linux завоевывает мир

Linux на серверах

     Широкое распространение операционной системы Linux началось со времени выхода стабильной версии ядра версии 2.2 в январе 1999 года. На нее обратили внимание производители серверных приложений, баз данных, Web-, а также приложений для всякого рода защиты ПК. Многие корпорации в области высоких информационных технологий (IT) мигрировали на Linux-серверы различных типов, обеспечивающие поддержку Domain Name System, файловых и print-серверов, Internet-доступ, электроную почту и т.д. Первой областью применения, где Linux сумел занять лидирующие позиции, была сфера веб-серверов. Произошло это благодаря широкому распространению веб-сервера Apache.

     В феврале 1995 года наиболее популярным программным обеспечением для поддержки веб-сервера был HTTP-демон, созданный Робом Мак-Кулом (Rob McCool) из Национального суперкомпьютерного центра университета Иллинойса (National Center for Supercomputing Applications, NCSA, University of Illinois). Однако развитие этого продукта затормозилось после того, как Роб оставил NCSA в середине 1994 года. Многие веб-мастера стали создавать собственные заплатки и дополнения к этому демону для решения различных проблем, возникавших в ходе его эксплуатации. В конце февраля восемь таких энтузиастов объединились с целью скоординировать свои разработки и образовали так называемую Apache Group. В нее входили: Brian Behlendorf, Roy T. Fielding, Rob Hartill, David Robinson, Cliff Skolnick, Randy Terbush, Robert S. Thau, Andrew Wilson. В работе группы также принимали участие Eric Hagberg, Frank Peters, Nicolas Pioch.

     Взяв за основу демон NCSA httpd 1.3, они добавили все известные к тому времени доработки, заплатки и патчи (по одной из легенд само название Apache происходит от слова patch), добавили собственные улучшения и в апреле 1995 выпустили первую публичную версию веб-сервера Apache, которая имела номер 0.6.2. Версия 1.0 была выпущена 1 декабря 1995 года. В 1999 году на основе Apache Group был создан фонд Apache Software Foundation, который взял на себя организационные, финансовые и юридические вопросы поддержки HTTP-сервера Apache.

     С самого начала свего существования Apache был кросс-платформенным продуктом, работал под управлением операционных систем Unix, Win32, OS/2, BeOS, MacOS, NetWare, BS2000/OSD на System/390. Поэтому проблем с его переносом на Linux не было. А когда этот сервер был дополнен поддержкой PHP и MySQL, эта комбинация программных средств получила даже особое имя (LAMP = Linux + Apache + MySQL + PHP/Perl/Python) и заняла доминирующее положение на Интернет-серверах. По данным обзора исследовательской группы Netcraft, меньше чем через год после создания Apache Group число Интернет-сайтов, работающих на сервере Apache, превзошло число сайтов, работающих под httpd-демоном от NCSA. В соответствии с обзором той же Netcraft от февраля 2005 года из 59100880 серверов в Интернет 40681140 серверов или 68,8 % работает под управлением Apache, в то время как IIS от Microsoft стоит на 12321779 серверах, что составляет 20,8 %. То есть Apache является сервером номер один в Интернет и его доля более чем в 3 раза превышает долю сервера IIS от Microsoft. И во многих случаях платформой для Apache является Linux.

     Получив признание в качестве основы для Интернет-сервера, Linux начал набирать популярность в качестве серверной ОС. Об этом можно судить по увеличению продаж серверов Linux, имеющему место в течение нескольких последних лет. По данным IDC, в третьем квартале 2003 года, наприамер, было продано Linux-серверов на 743 млн долл., что на 50% больше, чем за аналогичный период 2002 года. "С первого по третий квартал мы наблюдаем ускорение темпов роста продаж Linux-серверов", - говорит аналитик IDC Джин Бозман. В первом квартале на долю Linux-серверов пришлось 5,6% всех продаж серверов в денежном выражении и 14,1% в натуральном. В третьем квартале эти показатели выросли соответственно до 6,8% и 16,2%.

     В четвертом квартале 2004 года продажи серверов на базе ОС Linux принесли $1,3 млрд., что составляет 9% от общего дохода серверной индустрии. Доход сектора Linux-серверов вырос в четвертом квартале на 35,6% по сравнению с аналогичным периодом 2003 года, а объем поставок - на 29,1%. HP лидирует в этом сегменте рынка с долей в 26%, далее следуют IBM и Dell с долями в 23,5% и 15,8% соответственно. В целом по некоторым оценкам доля серверов, работающих под управлением Linux, к концу 2004 года составила более 20%.

     Особенно впечатляюще выглядят успехи Linux на суперкомпьютерах. По меньшей мере половина суперкомпьютеров, вошедших в список 500 самых высокопроизводительных ЭВМ в мире (этот список обновляется 2 раза в год), работает под управлением Linux. Собственно говоря, такие суперкомпьютеры представляют собой не отдельные машины, а целые сети из множества отдельных компьютеров. Отдельный компьютер в этой сети может быть достаточно дешевым компьютером на основе процессоров от Intel или PowerPC. В качестве примера можно привести описание суперкомпьютера TeraGrid.

     В августе 2001 года BBC сообщило, что правительство США планирует построить мега-компьютер, способный выполнять более 13 триллионов операций в секунду (13.6 TeraFLOPS). Проект, получивший название Tera grid, представляет собой сеть из 4 суперкомпьютерных центров: National Center for Supercomputing Applications в Университете Иллинойса, San Diego Supercomputer Center (SDSC) в Университете Калифорнии, Argonne National Laboratory в Чикаго, California Institute of Technology в Пасадене. В общей сложности в состав этого мега-компьютера должны войти более 3000 процессоров, работающих по кластерной технологии под управлением операционой системы Linux. Использование Linux и недорогих процессоров, по расчетам создателей этого проекта, должно дать экономию в миллионы долларов.

     Еще один пример - суперкомпьютер Evolocity, разработанный для Ливерморской Национальной лаборатории (Lawrence Livermore National Laboratory, LLNL), California, USA. Этот компьютер тоже представляет собой кластер из 962 отдельных узлов, построенных на основе 2,4-Гигагерцовых процессоров Intel Xeon. Общее число таких процессоров равно 1920. Каждый узел имеет 4 Гигабайта оперативной памяти и жесткий диск объемом 120 ГБайт. Общая производительность суперкомпьютера оценивается в 9,2 терафлопс.

     Возглавляет последний список Top500 самых мощных суперкомпьютеров компьютер Blue Gene/L от IBM, установленный в Ливерморской национальной лаборатории имени Лоуренса. Строительство Blue Gene/L началось в 2000 году. В рамках проекта предполагалось создание мощнейшего вычислительного комплекса с производительностью до 1000 терафлопс. В настоящее время система Blue Gene/L состоит из 32 стоек, каждая из которых содержит по 1024 двухядерных процессоров PowerPC. В стандартном тесте производительности Linpack, использующемся в международном рейтинге Тор500, в вычислениях участвует каждое ядро. Поэтому текущий вариант Blue Gene/L можно рассматривать как систему, состоящую из 65536 процессоров. 25 марта 2005 года появилось сообщение о том, что этот суперкомпьютер побил собственный рекорд быстродействия, показав результат в 135,5 триллионов операций с плавающей запятой в секунду (терафлопс). То есть поставленная перед проектом цель достижения прозводительности в 1000 терафлопс еще не достигнута. Но система еще может наращиваться.

     По подсчетам профессора Ганса Мейера (Hans Werner Meuer) из университета Манхейма в Германии, 301 из 500 компьютеров, вошедших в список Top500, работают под управлением Linux, 189 - на Unix, 2 - на FreeBSD и только один - под управлением Microsoft Windows (7 машин работают под управлением других ОС).

Linux на персональных компьютерах

     На персональных компьютерах Linux пока не получил такого широкого распространения, как на серверах. По оценкам различных исследователей доля ПК, работающих под управлением Linux, составляет примерно 5 процентов от общего их количества. Именно такова доля компьютеров с предустановленной системой Linux в общем количестве компьютеров, проданных в 2004 году. Других исходных данных для получения оценок распространенности Linux на десктопах нет. Но число продаж дистрибутивов Linux не может служить показателем его распространенности (ведь с одного CD можно провести неограниченное количество инсталляций), а поэтому некоторые авторы считают, что реально доля Linux значительно больше, другие же утверждают, что она меньше, поскольку после продажи компьютера операционная система на нем заменяется и вместо Linux используется тот же Windows. Тем не менее большинство исследователей сходятся в том, что число компьютеров с Linux уже в наши дни превосходит число Mac-ов от Apple, и что доля Linux на десктопах в ближайшее время будет только возрастать.

     Как заявил в 2004 году Терри Фишер (Terry Fisher), один из менеджеров комании Compusys, "Мы ожидаем большого увеличения спроса со стороны наших покупателей на десктопы с Linux во всех секторах, от университетов до корпораций. И причина не только в деньгах. Потребители оценивают Linux по его качествам и выбирают его вовсе не потому, что не хотят платить Microsoft за ее лицензии. Поэтому десктопы с Linux составят примерно 10 процентов в наших продажах в течение следующих 12 месяцев."

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

     Любая операционная система сама по себе никому не нужна. Пользователи работают не с операционной системой, а с программными приложениями, которые позволяют им решать с помощью компьютера какие-то насущные задачи. Это, вообще говоря, очевидное утверждение можно подтвердить несколькими примерами из истории развития компьютерной техники. Например, очень неплохая ОС BeOS (а точнее, даже целая аппаратная платформа, потому что BeOS создавалась специально для нового компьютера BeBox) не нашла применения именно потому, что для нее не было достаточного количества программных приложений. И разработчики программного обеспечения не стремились такие приложения создавать, потому что предпочитали писать софт для платформы, которая имела сотни миллионов пользователей, а не тысячи, как у BeOS. А MS-DOS быстро набрал популярность не только из-за выдающихся маркетинговых способностей Билла Гейтса, но и в силу того, что для него с первого дня существования имелись работоспособные приложения, ибо Тим Пэтерсон (Tim Paterson) заложил в создаваемую систему поддержку CP/M, для которой такие приложения (например, очень неплохой текстовый редактор WordStar) уже существовали. Говорят, WordStar перенесли под DOS, изменив один единственный байт кода.

     В этом отношении Linux, конечно, находился в гораздо более выгодном положении, нежели BeOS. Во-первых, он работал на знакомой для разработчиков аппаратной платформе от Intel. Во-вторых, хоть Торвальдс, Столлман и иже с ними и утверждают, что Linux - это не Unix, а только Unix-подобная операционная система, но программное обеспечение, разработанное для Unix-систем, относительно просто переносилось на Linux. В рамках проекта GNU на Linux были перенесены различные полезные программы (тот же редактор Emacs), которые уже могли удовлетворить хотя бы часть запросов пользователей. Но, конечно, значительная часть приложений для Linux была разработана усилиями добровольных помощников. А со временем к разработке таких приложений подключились и коммерческие компании, как те, которые сделали Linux основой своего бизнеса, так и те компании, которые которые занимали весомую долю рынка еще до появления Linux.

     Одними из первых коммерческих Windows-приложений, портированных под Linux, были текстовый процессор WordPerfect фирмы Corel и пакет StarOffice фирмы StarDivision. Последняя была впоследствии куплена фирмой Sun Microsystems, а пакет StarOffice стал выпускаться в двух вариантах: как коммерческий, то есть платный StarOffice, и как бесплатный OpenOffice.org, распространяемый под лицензией GPL.

     Классическим примером успешного проекта по созданию программного приложения для Linux является Gimp (GNU Image Manipulation Program), программа для создания и редактирования изображений, которую многие оценивают как вполне достойного соперника широко распространенной программы Photoshop для Windows. В части работы с текстовыми документами для Linux было создано множество программ самого разного уровня, от простых редакторов типа Kwrite или TED, и текстовых процессоров AbiWord, Kword до издательской системы LyX, разработанной инициатором проекта KDE Маттиасом Етрихом (Matthias Ettrich) Появились и целые офисные пакеты, такие как StarOffice, Koffice, OpenOffice.org, Applixware, включающие кроме текстового процессора и другие стандартные офисные приложения: электронную таблицу, систему подготовки презентаций, персональный органайзер.

     Web-браузеры Netscape и Mosaic были доступны для пользователей практически с самого начала существования Linux. Коммерческий браузер Opera с момента своего появления является кросс-платформенным, то есть существует его вариант для Linux. А такие браузеры как Konqueror, Lynx или быстро набирающий популярность Mozilla вообще являются "родными" для Linux.

     Для программистов фирма Borland выпустила интегрированную среду разработки Kylix Rapid Application Development environment, которая позволяет программистам, привыкшим к Visual Basic или Delphi, без особых затруднений создавать приложения для Linux.

     Привести в настоящей статье сколь-нибудь полный обзор истории развития всех приложений для Linux не представляется возможным. Даже простой их перечень занял бы много страниц. Найти такой перечень вы можете в созданной В.Качуровым "Таблице Linux-аналогов для Windows-программ".

     И все же, несмотря на такое изобилие, долгое время для Linux практически отсутствовали такие приложения, с помощью которых пользователь мог бы решать свои насущные задачи. Самой востребованной из таких задач является, без сомнения, обработка текста. А хороший текстовый процессор для Linux долгое время отсутствовал. Только в 2001 году появился OpenOffice.org версии 1.1.0, который можно было признать вполне пригодным в качестве текстового процессора. Нет, я не хочу сказать, что до его появления вообще не было программ для обработки текстов в Linux. Однако эти программы не могли открывать файлы в формате Microsoft Office. А ведь любой пользователь, перешедший на Linux, остается, по крайней мере первое время, в окружении тех, кто работает под ОС Windows и использует текстовый процессор из MS Office. С этими людьми надо продолжать взаимодействовать, обмениваться файлами документов и т.д. Нельзя ожидать, что все окружающие одномоментно перейдут вслед за вами на Linux. Поэтому только с появлением продукта OpenOffice.org, который вполне корректно открывает файлы, созданные в MS Word, и умеет сохранять результаты работы в таких же файлах, появилась реальная возможность выполнять работы по созданию и редактированию текстовых документов под Linux, без проблем отправлять результаты своей работы своим коллегам и также без проблем принимать те документы, которые они присылают вам (сами процессы пересылки и приема файлов давно уже не являются проблемой в гетерогенных сетях).


Linux в России

     При подготовке настоящего обзора развития Linux в России существенно использованы сведения, любезно предоставленные мне Антоном Фарыгиным, Алексеем Смирновым, Дмитрием Адровым, а также (с разрешения автора) материалы с сайта "Укрывище Эникейщика" Алексея Федорчука. Остальные сведения собраны в Интернет. Текст подраздела о российском Unix является, в основном, переложением воспоминаний В.Маслова и М.И.Давидова, с небольшими дополнениями из других источников. Наиболее интересные (с моей точки зрения) источники перечислены в списке ссылок. О всех неточностях, ошибках и так далее прошу писать мне (e-mail: kos at rus-linux.net) - я постараюсь внести необходимые исправления в свой обзор.

     Поскольку Интернет пришел в Россию несколько позже, чем в другие страны, наша страна некоторое время оставалась в стороне от международного движения по созданию этой операционной системы. Но Unix нашим программистам был, конечно, известен, и даже разрабатывались собственные, российские (точнее, еще советские) Unix-ы.

Российские Unix-ы

     В 80-х годах 20-го века Советский Союз в плане развития компьютерной техники сильно отстал от ведущих мировых держав. Во времена БОЛЬШИХ ЭВМ, типа БЭСМ-6, мы еще были на уровне. Для наших тогдашних мэйнфреймов были разработаны свои ОС, такие как ДИСПАК для БЭСМ-6, трансляторы (компиляторы) с Алгола и Фортрана. Но обмена информацией с западными странами не было, к тому же уже наметилось отставание в технологии. Руководство страны решило поправить ситуацию за счет следования лучшим западным образцам. Свои исследования были свернуты, деньги были брошены на копирование и русификацию добытого на Западе. Стали копировать мэйнфреймы IBM, это стало называться ЕС ЭВМ, а из DEC PDP сделали СМ ЭВМ. Операционные системы для этих ЭВМ, естественно, тоже копировались с западных образцов, разве что некоторые сообщения был переведены на русский язык.

     По-видимому, первая Unix-подобная ОС была разработана в начале 80-х годов Владимиром Бутенко. На физическом факультете МГУ, где он работал, имелась машина ЕС-1010, которая ничего общего с другими ЕС ЭВМ не имела. Это был клон французской машины MITRA S-125 (или около того) в исполнении венгерского Видеотона. Поскольку оригинальная ОС на этой машине не то чтобы совсем не работала, но была очень плоха, Владимир Бутенко решил написать свою ОС - и таки написал, и запустил. Началось все это примерно в 1982 г. Разработанная им система получила название MISS (Multipurpose Interactive timeSharing System). Тянула она 10 пользователей на 10-ти дисплеях, при этом имея памяти 64 Кб и диска не то 300, не то 700 Кб.

     Вокруг Бутенко образовалась команда: Миша Флеров, Иван Бобров, Марк Венгеров (компилятор для Си и Фортрана), Вадим Маслов (система программирования на Basice), Игорь Тимкин, всего около 10 человек.

     Система MISS имела неплохой для того времени сетевой протокол. Этот протокол был внедрен в организациях, имевших EC-1011 (улучшенная и увеличенная версия ЕС-1010). Система была перенесена на IBM PC, но это случилось несколько запоздало -- Unix и MS DOS уже давили со страшной силой.

     В Институте атомной энергии им. И.В.Курчатова интерес к мобильным системам возник в конце 70-х, задолго до появления в нашей стране первых лент с ОС Unix. Инициатором этого направления был М.И.Паремский (тогда руководитель группы, позже известной как "команда из Курчатовского"). В 1982-1983 годах в Институте имени Курчатова с участием специалистов ряда других НИИ были начаты работы по созданию отечественной операционной системы типа Unix. Первоначально ее называли УНАС. Дескать, Unix - это У НИХ, a УНАС - это У НАС. Цель была простая - русифицировать Unix и приспособить его к суровому русскому железу. Позже эта система получила название ДЕМОС - Диалоговая Единая Мобильная Операционная Система. Среди курчатников были Алексей Руднев, Валера Бардин, Сергей Аншуков.

     В это же время на кафедре Прикладной математики и вычислительной техники Институте Прикладной Кибернетики (ИПК) МинАвтоПрома сформировалась еще одна команда юниксоидов. Автомобильная промышленность в то время была одной из ведущих отраслей в стране, поэтому ИПК получал много техники и книг, а задачей кафедры была подготовка программистов для заводов, КБ, полигонов и НИИ. Заведовал кафедрой М.И.Давидов, который очень тщательно подбирал сотрудников в свой коллектив. На кафедре работали многие люди, ставшие потом известными, - В. Антонов, С.Беляшов, Е. Введенская, Д.Володин, Н.Васильева, С.Галкин, О.Губа, Т.Зрелова, М.Коротаев, А.Ларин, С.Леонтьев, И.Мазепа, В.Серебряков, Н.Соколов, П.Сотникова, М.Флеров, А.Чернов. Почасовиками работали специалисты из многих ведущих организаций и институтов: А.Маслов, А.Леонас, А.Руднев, С.Аншуков, С.Усиков и др.

     На кафедре начали заниматься русификацией Unix-a, назвав разрабатываемую систему МНОС - Машинно-Независимая Операционная Система. МНОС, как и Демос, был русификацией Unix ver. 6, приспособленной к СМ-4 и СМ-1420 - советским версиям DEC PDP-11. Постепенно в ИПК образовалась команда юниксоидов, в которую входили Вадим Антонов, Сергей Леонтьев, Дима Володин. Позже к ним присоединились Н.Саух, А.Руднев, С.Аншуков, А.Егошин, М.Паремский, М.Попов, С.Осовик, Д.Бурков, Е.Бобаян. Вадим Антонов сутками просиживал у консоли, прилаживая советские дисплеи и мультиплексор. Осенью 1983 года на СМ-1425 с мультиплексором СМ-8514 заработало 14 (!) фрязинских дисплеев - это была победа. Позже А.Ларин установил переключатель общей шины и удалось соединить две машины. В результате к двум СМ-14 было подключено 24 дисплея. Они все могли одновременно работать без ограничений, и это при памяти 256K и 5-мегабайтных дисках! Осенью 1984 года был проведен семинар, на котором показали работающий Unix. На семинаре присутствовали люди из разных мест - началось расползание системы по стране.

     В эти же годы ИНЭУМ (Институт Электронных Управляющих Машин, головное КБ Минприбора) занимался разработкой очередного русского Unix-a под названием ИНМОС (Интерактивная Мобильная Операционная Система). В этой команде работали Михаил Беляков, Юрий Рабовер, Александр Фридман, Игорь Куницкий.

     Через некоторое время команды юниксоидов из Курчатовского института и ИПК МинАвтоПрома начали активно взаимодействовать. Закончилось все это объединением этих двух команд в 1984 г. А создаваемая ими операционная система (МНОС+Демос) получила название ДЕМОС версии 2.x. Разработчикам пришлось заняться созданием документации, соответствующей требованиям ЕСПД (как выразился один из разработчиков "высшая форма издевательства над программистами"). В результате труд неформальной компании приобрел вполне официальный вид и мог использоваться всеми госорганизациями и госорганами. В 1986 году разработка ОС ДЕМОС была отмечена премией Совета Министров СССР. В последующие годы ОС ДЕМОС стали ставить на различные машины - сначала на СМ-4, потом на Электронику-1082, Эльбрус, ЕС - короче говоря, на все, что тогда существовало в нашей стране.

     Сложилась довольно странная ситуация: ОС ДЕМОС продавалась в госструктуры, но изготавливалась непонятно кем - "группой частных лиц". Требовалось найти "юридическое лицо", которое могло бы официально продавать эту разработку. Тут как раз вышел закон о кооперативах и в 1987 году был образован кооператив Демос, основным видом деятельности которого стала поддержка и развитие ОС ДЕМОС.

     В 1988 году в нашей стране была выпущена первая партия рабочих Unix-станций "Беста-88" (НИИСИ АН СССР, ЗИЛ - В.Б. Бетелин, А.И. Ставицкий). Это была первая отечественная Unix-станция. Она строилась на процессоре Motorola 68020 и магистральной шине VME. Как сообщил мне М.Мошков "Прообразом для нее послужил компьютер Force (Sun-3). Операционную систему Unix SVR3.2 для БЕСТЫ портировал Ричард Столлман. В общей сложности было выпущено порядка полутора тысяч станций, которые применялись довольно широко - я на них работал, и наблюдал применение на Нововоронежской АЭС, в ВУЗах, на МГТС, в Казани, Казахстане, Ташкенте, и много где еще (Informix, Oracle, графические приложения, делопроизводство на редакторе РК и т.д.). Фактически именно BESTA проложила путь коммерческому использованию Unix в стране - это был первый массовый недорогой Unix-компьютер в Союзе."

     Раз уж речь зашла о русском Unix, нельзя не отметить вклад Андрея Чернова, который разработал кодировку символов кириллицы, получившую название KOI8-R. Эта кодировка была разработана изначально с ориентировкой на Unix. Так как Unix в своей основе сетевая ОС, то основной идей при создании KOI-8 была идея об обеспечении перемещения кириллической информации по сети. Но для передачи в то время использовался 7-битный стандарт ASCII. Разработчики поместили кириллические символы в верхней части таблицы таким образом, что позиции кириллических символов соответствуют их фонетическим аналогам в английском алфавите в нижней части таблицы. Это означает, что, если в тексте, написанном в KOI-8, мы убираем восьмой бит каждого символа, то мы все еще имеем "читабельный" текст, хотя он и написан английскими символами! Кодировка KOI8-R быстро стала фактическим стандартом для кириллицы в Интернет, что и нашло отражение в RFC 1489 ("Registration of a Cyrillic Character Set"). Автором этого документа является Андрей А. Чернов, который проделал огромный объем работы, чтобы превратить KOI-8 в стандарт Интернет. Страничку А.Чернова, посвященную русификации различных частей ОС и других программных продуктов вы можете просмотреть сами: KOI8-R - Russian Net Character Set (KOI8-R - Русская Сетевая Кодировка)

     Между тем в феврале 1989 года кооператив Демос был преобразован в компанию "Демос", занимавшуюся разработкой программного обеспечения и построением локальных компьютерных сетей. Эта компания продолжала развивать и поддерживать ОС ДЕМОС. Распространение ОС ДЕМОС в нашей стране создало благоприятные предпосылки для создания глобальной сети и на территории бывшего СССР. В начале 90-х годов "Демос" была первой коммерческой компанией в СССР, которой удалось наладить информационный обмен с сетью Internet (через Финляндию). Это создало предпосылки для проникновения в нашу страну открытых систем, в частности, Linux.

     Но вначале к нам все же пришла открытая версия Unix - FreeBSD. И, конечно, нашлись и в России люди, которые начали ее использовать, развивать и русифицировать. Например, Игорь Николаев написал руководство по настройке монитора в XFree86 и другие статьи, которые потом использовалось и линуксоидами. Иван Паскаль сыграл большую роль в кириллизации Иксов вообще, а более полного описания xkb с тех пор так и не было. На сайте Игоря Сысоева вы до сих можете найти статьи по настройке pppd во FreeBSD (PAP/CHAP, соединение с Windows NT RAS, как стать провайдером), борьбе с баннерами с помощью Squid и т.д.

     Как видим, уровень подготовки и квалификация наших программистов вполне позволяли принять участие в развитии Linux.

Заключение к разделу о российской истории Linux

     История развития Linux в России, как и история развития этой ОС во всем мире (впрочем, как любая история до тех пор, пока человечество существует на Земле), еще не завершена. И все мы является ее свидетелями и даже участниками. Конечно, что касается истории Linux, то участниками являются не все, а только те, кто может что-то делать и делает. Но уж свидетелями, так это точно все. Жаль, что очень немногие заботятся о том, чтобы зафиксировать события, свидетелями которых они стали. При подготовке настоящего обзора мне очень помогли заметки А.Федорчука, В.Маслова и М.И.Давидова. Других воспоминаний в сети практически нет. Хотя, как оказалось, в Интернет можно найти очень многое. Конечно, на такой поиск уходит масса времени, да и найти можно далеко не все. Обнаруживаются чаще всего краткие сообщения о текущих событиях, сухие факты, хроникальные заметки. Теряются, в первую очередь, сведения о роли конкретных людей, об их отношениях между собой, исчезает то, что можно назвать "человеческим теплом", "духом времени". Этот дух, это чувство могут передать только воспоминания непосредственных участников событий. Так что хочу призвать всех, кто был (или есть) причастен к событиям: не ленитесь, напишите свои заметки, опубликуйте их в сети. В Интернет, как выясняется, ничего не пропадает, все можно найти при соответствующем желании. Так что и ваш труд не пропадет.

     И еще одно замечание. По имеющимся у меня сведениям, некоторые крупные корпорации (в том числе государственные) сейчас прорабатывают проекты по переходу на Linux. И, как ни странно, принимают решения о замене Microsoft Windows на решения, предлагаемые другими иностранными компаниями – IBM или Novell. Получается, что происходит замена одного американского поставщика компьютерных решений (Microsoft) на другого – (скажем, Novell). И это в то время, когда несколько чисто российских компаний предлагают аналогичные решения. Отдавая свои деньги российской компании, предлагающей решения на основе Linux, корпорации не только получили бы желаемую экономию, но и создали бы некоторое количество рабочих мест в России. Другими словами, вложили бы свои деньги в развитие страны. Хотя в российских филиалах иностранных компаний тоже работает много наших сограждан, но все же существенная часть доходов этих филиалов уходит за границу. Очень жаль, что такие соображения не принимаются во внимание даже государственными чиновниками, которые забывают о примере известного таможенника Верещагина. Помните, ему было “за державу обидно!”, а нашим современникам такие мысли в голову не приходят. Китайцы вот разрабатывают свою операционную систему на основе Linux, а мы опять идем с протянутой рукой к Америке!

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

Автор: В. Костромин  

Hosted by uCoz