Linux: истоки новой философии программирования
12 августа 1981 г. в Wall Street Journal была опубликована информация о том, что корпорация IBM вышла на рынок персональных компьютеров со своей моделью IBM PC на базе процессора Intel 8088. По сути именно это событие открыло дорогу Windows, хотя формально первая версия Windows после двухлетних обещаний появилась в ноябре 1985 г.
25 августа 1991 г. финский студент Линус Торвальдс разместил в Internet скромное сообщение о том, что он разработал собственную ОС. Эта операционная система, получившая впоследствии название Linux, дала огромный импульс развитию Сети и стала флагманом движения открытых текстов (open source).
Два события, отстоящие друг от друга ровно на 10 лет, стали поводом для развития знаменательных параллелей: крупнейшая корпорация мира и программист-одиночка, известнейшее издание и одна из затерянных в Internet телеконференций. Дух конкуренции выражают лозунги: Linux против Windows! Открытость мирового сообщества против замкнутости одной корпорации! Коллаборативное (совместное) программирование против корпоративного!
Попробуем разобраться, что же такого особенного явила миру Linux и почему именно эта операционная система стала столь популярной в наши дни, о какой новой философии программирования идет речь?
Зигзаги истории
Присмотревшись повнимательней к прошлому, мы увидим, что место доминирующей ОС на рынке вполне могла бы занять и UNIX, причем в исполнении все той же корпорации Microsoft. Однако в силу целого ряда обстоятельств события развивались по иному сценарию:
CP/M —> QDOS —> 86-DOS —> MS-DOS —> Windows.
«Генеалогическая» линия Linux выглядит иначе:
Multics —> UNIX —> Minix —> Linux.
Вряд ли многим известно, что в нынешнем господстве Windows в немалой степени «виноват» секретный проект IBM под кодовым названием Chess — проект создания на базе процессора Intel 8086 персонального компьютера IBM PC с рабочим названием Acorn.
Исторический контракт между IBM и Microsoft был подписан 6 ноября 1980 г. В соответствии с ним для первого промышленного 16-разрядного ПК компания Microsoft должна была в кратчайший срок подготовить операционную систему и четыре системы программирования (Бейсик, Фортран, Кобол и Паскаль).
Почему была выбрана именно Microsoft? Главным побудительным мотивом для руководства IBM послужил впечатляющий объем сбыта компанией Microsoft систем программирования, притом рассчитанных на очень широкий круг платформ. К 1979 г. было продано около 1 млн. копий одного только Бейсика разработки Microsoft.
Как ни странно, но и IBM, и Microsoft рассматривали операционную систему для нового компьютера как нечто второстепенное, отводя ей вспомогательную роль. Все делалось в жуткой спешке. Чтобы понять, как блефовала Microsoft осенью 1980 г., обещая IBM к январю 1981 г. (!) подготовить первую версию своей DOS с работающим интерпретатором Бейсика, достаточно сказать, что никакого опыта написания ОС у Microsoft тогда не было.
В феврале 1980 г. компания Microsoft в рамках борьбы с Digital Research за рынок языков программирования на всякий случай приобрела лицензию на UNIX у корпорации AT&T (впоследствии созданный Microsoft диалект ОС UNIX получил название Xenix). Но и для UNIX не было практически никаких наработок — базовой платформой продуктов Microsoft была тогда ОС CP/M.
Если бы не Тим Паттерсон из Seattle Computer Products, написавший весной 1980 г. свой диалект CP/M — QDOS (Quick and Dirty Operating System), да не ряд других случайностей, микрокомпьютерная революция могла бы пойти совсем по иному пути. Купив за 100 тыс. долл. разработку Паттерсона (а чуть позже переманив и его самого), Microsoft сумела выйти сухой из воды и положила начало созданию невиданной в истории империи программного обеспечения.
Паттерсон построил свою ОС максимально близко к оригиналу, чтобы все ПО, написанное для CP/M, можно было легко переносить на QDOS. Именно это преимущество и было использовано Microsoft, сумевшей не только добиться самого главного для себя контракта, но и опередить почти на год саму Digital Research.
В 1991 г. Линус Торвальдс, устав ждать бесплатную UNIX для процессора Intel 80386, занялся собственной разработкой ядра, из которого затем и выросла Linux.
Если сравнивать Windows и UNIX с точки зрения развития, то Windows строилась как коммерческий продукт, создаваемый в условиях жесткого цейтнота и рыночного блефа, UNIX же росла в спокойной обстановке, в тиши университетских и исследовательских центров. Коммерциализация проекта оказала далеко не столь благоприятное воздействие на UNIX, тогда как Microsoft не теряла времени и весь потенциал своих специалистов направила на повышение качества реализации Windows.
Как бы то ни было, развитие обеих ОС пошло по разным дорожкам.
Рождение Linux
Линус Бенедикт Торвальдс родился в Хельсинки в 1970 г. Еще в возрасте 10 лет он начал увлекаться программированием, активно работая на своем домашнем компьютере Commodore VIC-20.
В 1989 г., когда Линус готовился поступить в университет, на конференции ассоциации Usenix в Торонто представители корпорации AT&T объявили о новой системе цен на UNIX System V: около 40 тыс. долл. в расчете на один процессор (7,5 тыс. долл. для учебных заведений). Это были очень большие деньги. Профессор Амстердамского университета Эндрю Таненбаум в ответ на это занялся написанием Minix — усеченной версии UNIX, способной работать на ПК.
Весной 1991 г., уже будучи студентом университета в Хельсинки, Линус Торвальдс взялся за переделку Minix, переписав ядро и адаптировав для работы на i386. Он решил разобраться в том, как работает ОС, просто переписав ее.
Вот заголовок того исторического сообщения, с которого начала отсчет эра Linux.
——- Begin post from Linus ——— From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava. Helsinki.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki
Сообщение начиналось словами: «Привет всем, кто использует Minix! Я делаю (бесплатную) операционную систему для клонов AT на базе процессоров 386 (486). Это просто хобби, а не что-то большое и профессиональное вроде GNU».
Далее Линус призывал откликнуться на его работу всех, кому она нравится или нет. (Полный текст см. http://theory.ms.ornl.gov/~xgz/linus_announce.)
В январе-феврале 1992 г. в телеконференции comp.os.minix развернулась открытая дискуссия о недостатках Linux между Таненбаумом и Торвальдсом. Профессор Таненбаум считал Linux устаревшим подходом прежде всего из-за отказа Линуса от микроядра в пользу моноядра. «Это огромный шаг назад, — писал Таненбаум. — Это все равно, что взять работающую программу на Си и переписать ее на Бейсике». Линус согласился с тем, что микроядро — хорошее решение, но настаивал на своем: моноядро, обладая большей эффективностью, не наносит серьезного ущерба переносимости.
Более жестко высказался в 1998 г. прародитель UNIX — легендарный Кен Томпсон: «Я рассматриваю Linux как то, что не принадлежит Microsoft. Это ответный удар команде Microsoft — ни больше ни меньше. Не думаю, что его ожидает большой успех. Я видел исходные тексты, там есть как вполне приличные компоненты, так и никуда не годные. Поскольку в создании этих текстов принимали участие самые разные, случайные люди, то и качество отдельных его частей значительно отличается. По своему опыту и опыту некоторых моих друзей могу сказать, что Linux — довольно ненадежная система. Microsoft выпускает не слишком надежные программные продукты, но Linux — худшая из подобных систем. Это среда долго не продержится. Если вы используете ее на одном компьютере — одно дело, но для применения Linux в брандмауэрах, шлюзах, встроенных системах и так далее требуется еще очень серьезная доработка».
Так что не технологическое совершенство проекта, а сама атмосфера работы энтузиастов над полезным проектом да свободное распространение и использование исходных текстов стали основой феномена Linux.
В 1998 г. авторитетный американский журнал Forbes под заголовком «Icons of the Net» («Легенды Сети») опубликовал имена самых влиятельных людей, внесших огромный вклад в развитие сети Internet:
- Линус Торвальдс (28 лет) — создатель Linux.
- Ричард Столлман (45 лет) — основатель Фонда свободного ПО (Free Software Foundation).
- Тим Бернерс-Ли (43 года) — разработчик World Wide Web.
- Роб Глейзер (36 лет) — основатель компании RealNetworks.
- Джерри Янг (29 лет) — основатель портала Yahoo!
Первое место отвели Торвальдсу не случайно. Изъяны не помешали Linux радикально изменить положение дел в индустрии ПО. Благодаря доступности в паре с сервером Apache эта ОС оккупировала весь Internet. Статистика говорит сама за себя. В соответствии с отчетом Netcraft (www.netcraft.com/survey/) в ноябре 2000 г. доля Apache среди всех Web-серверов составляет 59,69%. Далее идут Microsoft Internet Information Server — 20,08% и Netscape Enterprise — 6,74%.
Ныне Торвальдс работает в компании Transmeta над амбициозным проектом, до недавнего времени засекреченным. Важными его элементами являются выпуск ОС и VLIW-процессора под кодовым названием Crusoe, способного исполнять команды x86 и предназначенного для встроенных систем. Забавно, что одним из владельцев Transmeta является не кто иной, как Пол Аллен, который вместе с Биллом Гейтсом основал Microsoft.
Стандартизация и дистрибутивы Linux
Линус Торвальдс разработал не саму ОС, а только ее ядро, подключив уже имеющиеся компоненты, созданные в рамках проекта GNU, и прежде всего редактор emacs и компилятор gcc.
Сторонние компании, увидев хорошие перспективы для развития своего бизнеса, довольно скоро стали насыщать ОС утилитами и прикладным ПО. Среди них следует назвать Red Hat Linux 6.2, GNU/Linux 2.2 компании Debian, Linux-Mandrake 7.0, SuSE Linux 6.4, TurboLinux 6.0, OpenLinux 2.4 компании Caldera, Conectiva Linux 5.1, Corel Linux OS Second Edition.
Недостаток таких «комплексных обедов» — отсутствие унифицированной и продуманной процедуры установки системы, и это до сих пор является одним из главных сдерживающих факторов для более широкого распространения Linux. К тому же разработчикам прикладного «коробочного» ПО приходится тестировать свои программы сразу для нескольких популярных дистрибутивов, что заметно осложняет жизнь.
Главное достоинство новой философии — организация удаленной совместной работы больших коллективов сторонних программистов над важными проектами, где ключевую роль играют Internet и право свободно распоряжаться совместным продуктом.
Нельзя не сказать в этой связи о бурно растущей компании VA Linux. Она ведет онлайн-репозитарий открытого ПО под названием SourceForge (http://sourceforge.net). В нем насчитывается уже несколько сотен проектов, касающихся прежде всего развития Linux. И среди них Berlin Project (графическая система) и новое поколение системы программирования языка Perl. Помимо Linux репозитарий SourceForge отслеживает проекты для Windows, Mac OS, BeOS, PalmOS. Одним из собственных проектов VA Linux является СУБД MySQL, получившая статус свободного ПО, распространяемого по лицензии GPL (General Public License, www.fsf.org/copyleft/gpl.html). В плане продвижения идеи совместного программирования VA Linux не одинока. Ее конкурентами здесь являются компании OpenAvenue и Asynchrony.
Возвращаясь к книге Рэймонда, можно сказать, что метафоры «собора» и «базара», быть может, выбраны не вполне удачно. Но разве дело в метафорах? Вне зависимости от скептицизма критиков Linux и безудержной эйфории его почитателей эта операционная система стала заметной вехой конца 1990-х годов, определив пути развития индустрии в начале нового столетия.
Можно ли повторить успех Linux и где таится новый технологический скачок подобного масштаба? Вот что говорит об этом Кен Томпсон: «Любое новшество станет реальностью только путем революций такого типа, которую совершила UNIX. Корпорации IBM ничто не угрожало до тех пор, пока не появилось то, что сделало ее системы непригодными. Они полностью оккупировали рынок мэйнфреймов, но я уверен — это как раз оказалось ненужным. То же самое происходит и с Microsoft: до тех пор, пока не появится нечто, способное сделать ее продукты ненужными, преодолеть ценовой порог выхода на рынок будет крайне сложно и вытеснить их невозможно».
--------------
Руслан Богатырев — работал главным редактором альманаха «Технология программирования», научным редактором Computer Week-Moscow и Computer Weekly. E-mail: expodome@yahoo.com