Зарождение Linux: причины и предпосылки
Пока, как было сказано в предыдущей статье, в Беркли и его окрестностях поневоле занимались юридическим крючкотворством, на другом конце света, в Финляндии, некий студент по имени Линус Торвальдс размышлял, что же ему делать с только что приобретённым IBM PC. И, как ни странно, результаты его размышлений оказали не меньшее влияние на нашу историю, нежели многолетний труд исследователей, финансируемых правительством мировой державы.
Впрочем, редкий линуксописатель не описывал рождественскую сказку о том, как бедный студент копил деньги на 32-битный компьютер, а потом сочинял программу терминального доступа к удалённой университетской машине, которая затем превратилась в полноценную ОС. Известна она и в версии от создателя этой ОС — самого Линуса Торвальдса. Так что пересказывать её в очередной раз я не буду. А попробую, в меру своего понимания, выявить причины и предпосылки появления Linux. Правда, к вопросу о бедном студенте нам придётся ещё вернуться.
Причины
Главная причина появления Linux — «железная». С начала 80-х годов по всему миру шло триумфальное шествие Советской власти (то есть, пардон, Intel-совместимых PC). Первый широко распространившийся персональный компьютер, собственно IBM PC, базируясь на внутренне 16-разрядном процессоре Intel 8088, работать под изначально 32-битной UNIX не мог. Как не способна была на это и персоналка следующего поколения, IBM PC/AT на процессоре Intel 80286.
Однако появление в 1985 году первого 32-разрядного процессора от Intel — 80386, дало возможность использовать UNIX на дешёвых и общедоступных персоналках. А появление в 1989 году процессора Intel 80486 вплотную приблизило их производительность к вычислительной мощности рабочих станций на RISC-процессорах. Росли объемы оперативной памяти, ёмкость жёстких дисков, совершенствовалась видеосистема, появлялась первая мультимедийная периферия. А самое главное — PC становились все многочисленней, стандартизованней и дешевле: триединство факторов, против которого все иные архитектуры, в качестве массовых платформ общего назначения, оказались бессильны.
Но под чем же работало все это аппаратное богачество? Да в подавляющем большинстве — под MS DOS, 16-разрядной операционной системой, созданной ещё для первых IBM PC и несущей в себе массу неустранимых ограничений: принципиальную однозадачность, отсутствие многопользовательского доступа, возможность использовать “по прямому назначению” лишь 640 Кбайт оперативной памяти, примитивную организацию файловой системы, не менее примитивные средства работы в текстовом режиме — единственно возможном силами “черного” DOS.
Конечно, предпринимались многочисленные попытки заретушировать “родимые пятна” DOS. Разрабатывались надстройки над ней, способные использовать вес физический объём оперативной памяти и многозадачность, такие, как QuaterDesq и Geoworks. Которые включали также и системы работы в графическом режиме. Некоторые пользовательские DOS-приложения (табличные процессоры Lotus 1-2-3 и QuattroPro, текстовый редактор WordPerfect) обзаводились собственными средствами управления памятью и графическими интерфейсами.
Вся эта многочисленная DOS-косметика была либо неудачной, либо не получила распространения. Конечно, существовала и альтернатива ей — разрабатывавшаяся в IBM операционка OS/2, первая 32-разрядная ОС, специально написанная для PC. Однако и она, не смотря на весьма прогрессивный базис, не приобрела широкой популярности.
Сложилась парадоксальная ситуация: “народная”, то есть общедоступная, платформа не имела адекватной “народной” же операционки, способной использовать её возможности. В конце предыдущей статьи мы, казалось бы, обозначили претендента на роль народной ОС для современных, на тот исторический момент (начало 90-х годов прошлого века), компьютеров — FreeBSD.
Однако судьба распорядилась иначе. И “свято место” массовой операционки для настольных персоналок оставалось пусто вплоть до 1995 года — появления Windows 95. Началась эра гегемонии платформы Wintel (то есть машин на Intel-совместимых процессорах под управлением ОС Windows).
Гегемония эта практически не поколеблена и по сей день. Однако уже на протяжении многих лет она имеет альтернативу. Вследствие описанного в прошлой статье «технологического» детектива ею стала не FreeBSD, а совсем другая система.
Прежде чем переходить к предпосылкам её возникновения, сделаю маленькое отступление. Параллельно с развитием платформы Wintel существовали и другие варианты, на иной аппаратной базе — процессоре Motorola 680×0, Macintosh и Amiga, с их System # и AmigaOS, соответственно. Однако обе они занимали нишевое положение — не в последнюю очередь вследствие цены конечных решений. О чём мы сейчас и поговорим.
Предпосылка первая: цены
Как это ни печально признать русским интеллигентам, но первой предпосылкой для возникновения Linux’а была именно цена. Потому что именно в начале 90-х годов машины с 32-битными процессорами от Intel (а затем от AMD и Cyrix) стали доступны народу.
Причины этого явления уходят ещё в 80-е годы. Когда IBM выпустила свой первый PC, ещё 16-битный, руководство фирмы не относилось к этой затее совсем серьёзно, и не расчитывало «нарубить капусты» на этом рынке. В результате все спецфикации архитектуры были открыты, и не имелось ни технических, ни юридических препятствий к клонированию этих машин.
Чем немедленно воспользовались многие производители, сначала американские, а затем европейские и восточноазиатские. И очень скоро количество клонов (так называемых IBM-совместимых машин) превысило число оригинальных IBM PC-XT и PC-AT. А потом была выпущена ( в 1986 году) и первая машина на 32-битном процессоре от Intel (80386). И выпустила её вовсе не IBM, а фирма Compaq — она получила именя Compaq DeskPro 386.
Тут в IBM спохватились, что рынок, созданный их стараниями, от них уходит — и разработали новую архитектуру, также на процессоре x86, но с закрытыми спецификациями, исключающими клонирование — PS/2. Однако было поздно: рынок был заполнен стандартными PC. К рубежу 80-х и 90-х годов их не производил только ленивый — начиная от компьютерных гигантов типа Hewlett-Packard и заканчивая дядюшкой Мяо с Малой Арнаутской улицы острова Тайваня. К которому вскоре присоединился его родич — дядюшка Ляо с её продолжения на континентальном Китае. И ныне эти два дядюшки обеспечивают мир болей частью комплектующих для компьютеров и даже готовыми системами — под какими бы торговыми марками последние не продавались.
Результатом был лавинообразный обвал цен. Первый IBM PC-XT стоил более трёх тысяч долларов, а для полноценной работы требовал ещё и доукомплектования на треть этой суммы. Ко второй половине 80-х годов относятся слова Линуса Торвальдса:
Раньше было такое правили, что все компьютеры начального уровня стоили две тысячи.
В первые же 90-е годы порог вхождения в мир IT снизился до тысячи баксов. То есть компьютеры не скатились ещё до цены ширпотреба, как ныне. Но все, кому такие машины нужны были «по делу», были в силах приобрести из, причём не только «у них», но и «у нас».
Предпосылка вторая: операционные системы
В числе тех, кому такие машины были действительно нужны, и кто мог, тем или иным путём, ими обзавестись, оказались и студенты, обучавшиеся по специальностям, связанным с IT-сферой. Но вот с операционной системой для 32-битных компьютеров у студентов оказалось хуже: FreeBSD ещё не начала своё свободное плавание, а коммерческие UNIX’ы стоили несколько дороже, чем необходимое для их работы «железо». Да и не густо было с ними: на архитектуре i386 были способны работать только SCO UNIX и Xenix — кастрированный UNIX от Microsoft.
И тут в канву нашего сюжета вписывается «игрушечная» ОС MINIX. Она была явлена миру в январе 1987 года профессором Университета Врийе, Амстердам, Нидерланды, Эндрю Таненбаум (Andrew Stuart Tanenbaum). И преподавал он в этом университете не что иное, как Computer Science, хотя и был по образованию физиком.
Университетское образование в области компьютерных наук в 80-е годы прошлого века базировалось преимущественно, если не исключительно, на UNIX. Что, как явствует из сказанного ранее, создавало для студентов известные трудности.
Так вот, Таненбаум вёл в именованном университете курс UNIX, к которому написал собственный учебник — Operating Systems: Design and Implementation. Но изучать UNIX без системы — все равно, что обучаться музыке без инструмента. А с инструментом-то как раз и была напряжёнка. И ему не осталось ничего другого, как такой инструмент изготовить. Им-то и стала ОС MINIX (в дальнейшем получившая имя MINIX 1), вышедшая в свет в 1987 году.
Это была маленькая и компактная операционка, работавшая на машинах с архитектурой i386. Доступность MINIX усугублялась ещё и тем, что ее можно было скомпилировать даже в 16-битном варианте, и в этом качестве она становилась пригодной к использованию не только на PC-AT (80286), но даже, как говорят, на XT’шках, то есть на машинах с процессором 8086/8088.
Распространялась она исключительно как сопроводительный материал к упомянутому выше учебнику. Весь комплект, по свидетельству Линуса Торвальдса, стоил 169 долларов при заказе по почте. Что на самом деле не так дорого: в те годы на Западе, только-только переставшем загнивать, ни одно специализированное книжное издание не стоило дешевле 100 баксов. Так что фактически основная, если не вся, затратная часть для пользователя приходилась на книжку, да и дискеты были не так дешёвы. Сама же ОС как таковая могла рассматриваться в качестве бесплатного приложения к книге и носителям. И, во всяком случае, это было несоизмеримо дешевле тех тысяч долларов, в которые обходилась лицензия на любой из существовавших тогда проприетарных UNIX’ов. Требовавших, к тому же, сущей безделицы в виде соответствующей рабочей станции в несколько десятков тысяч.
Разумеется, ОС MINIX распространялась в сопровождении исходных текстов, предназначенных для изучения и потрошения. Необходимость в котором возникла очень скоро.
Дело в том, что, предназначенная исключительно для учебных целей, ОС MINIX в принципе не была приспособлена для выполнения каких-либо реальных задач. Однако шаловливые студенческие (и не только) руки так и чесались прикрутить ее к чему-либо пригодному для практического использования. В результате система очень быстро обросла всякого рода патчами, из которых главным был патч от австралийца Брюса Эванса. После наложения этих патчей система становилась способной выступать как платформа разработчика. Именно на такой патченой системе Линус Торвальдс спустя несколько лет начнёт создавать свою операционную систему.
Однако сама по себе MINIX по прежнему распространялась исключительно в первозданном виде — как чисто учебная система, и лишь в сопровождении книги (или, напротив, сопровождая книгу). То есть, будучи открытой, она не была свободной. Ибо права на MINIX принадлежали издательству Prentice-Hall, выпустившему учебник Таненбаума. В сущности, правовой статус MINIX был точно таким же, как и обычной книги. Что, однако не мешало тому, что на протяжении десяти, а то и более, лет по ней учились поколения студентов как до Торвальдса, так и после него.
Надо заметить, что Таненбаума нельзя рассматривать только как предтечу Линуса, а его систему — как трамплин для его разработки. Кроме упомянутой выше Operating Systems: Design and Implementation (в переводе: Операционные системы: разработка и реализация), его перу принадлежат:
- Computer Networks (Компьютерные сети);
- Modern Operating Systems (Современные операционные системы);
- Structured Computer Organization (Архитектура компьютера);
- Distributed Systems: Principles and Paradigms (Распределённые системы. Принципы и парадигмы).
Все они по праву принадлежат к классике жанра IT-литературы, выдержали по несколько изданий (Computer Networks и Structured Computer Organization — аж по пять), и переведены на многие языки. В том числе и на русском языке они изданы издательством «Питер» в серии «Классика Computer Science».
Главной разработке Таненбаума, MINIX, судьба также уготовила вторую жизнь. Долгое время она продолжала эволюционное развитие в качестве учебной системы — были выпущены версии MINIX 1.5 (1992 год) и MINIX 2 (1997 год), представлявшие собой «песочницы» для начинающих юниксоидов. Однако кардинал лелеял коварные замыслы: превратить MINIX в полноценную операционную систему, реализующие его представления о том, какой должна быть современная ОС. А заодно — сделать ее свободной в полном понимании этого слова: ведь «несвобода» предыдущих версий объяснялась не жадностью профессора, а спецификой издания и распространения.
Результатом явился анонс новой операционки, MINIX 3, который состоялся 24 октября 2005 года. Это была не просто следующая по номеру версия, а именно новая операционная система, почему цифру “3″ здесь следует рассматривать как часть ее имени собственного. Обособленность от предшественников подчёркивалась и тем, что отныне MINIX 3 будет распространяться не как довесок к книге, а совершенно самостоятельно, под лицензией BSD.
C трудами Эндрью Таненбаума, которые не ограничиваются перечисленными выше (достаточно вспомнить проекты Amoeba и Globe) можно ознакомиться на его личной странице.
Главный герой выходит на сцену
Итак, толчком для написания Линусом собственного ядра послужила MINIX — «студенческая» операционка Энди Танненбаума, с помощью патчей приспособленная для выполнения практической работы.
Однако сам Линус не занимался “доведением MINIX до ума”. Не использовал он также и код какой-либо из реализаций UNIX или BSD. Он воссоздал функциональность ядра UNIX с нуля — руководствуясь описаниями системных вызовов, данными в соответствующем стандарте POSIX. И потому Linux не является ни клоном System V, ни клоном BSD — хотя в ней и использована схема инициализации в стиле первой, да и идейное влияние второй, безусловно, имело место быть.
Здесь надо сделать отступление и рассказать об истории стандарта POSIX. Для чего придётся вернуться назад, ко временам, когда UNIX, выйдя за пределы породившей его AT&T, начала интенсивно делиться на ветки — как проприетарные, так и те, которые со временем станут свободными. В основе этих веток лежали разные базовые системы — SVR3, SVR4, 4BSD. И каждый разработчик считал своим долгом внести те или иные усовершенствования. А поскольку все существовавшие тогда системы, кроме BSD, были закрытыми, усовершенствования эти плохо согласовывались между собой.
Это ставило под угрозу один из краеугольных камней UNIX-идеологии — портируемость приложений. И начался процесс, который, вслед за товарищем Мао, можно назвать “борьбой за упорядочивание трех стилей работы”. Однако председателю КПК было попроще — в данном случае речь шла не о трёх, а едва ли не о тридцати трёх стилях.
Тем не менее, процесс упорядочивания пошел, реализуясь в виде ряда стандартов, наибольшее признание из которых получил POSIX — Portable Operation System Interface based on UNIX, разработанный международной организацией IEEE (Institute of Electrical and Electronics Engineers, Inc.). И любая операционная система, претендующая на звание UNIX-совместимой, должна этому стандарту соответствовать.
Крёстным отцом термина POSIX стал Ричард Столлман. Слово Portable в его названии первоначально означало, что соответствующая POSIX-спецификациям система может быть перенесена на любое компьютерное “железо”. Однако со временем не менее важным оказался несколько другой аспект этого термина: любая прикладная программа, написанная в соответствии со стандартами POSIX, может быть перенесена портирована на любую совместимую с ним ОС.
Стандарты POSIX были приняты в 1988 году и зафиксированы в виде серии регулярно обновляемых документов (общим числом под два десятка), в которых описываются спецификации отдельных компонентов системы.
Именно на эти документы в первую очередь и опирался Линус Торвальдс, создавая свою ОС по мотивам MINIX.
Linux создавался на машине с процессором i386 для архитектуры Intel и первоначально — только для неё. Более того, долгое время Линус вообще сомневался, что его система когда-либо сможет быть портирована на любую иную аппаратную платформу. И потому соответствие стандартам в данном случае преследовало целью не переносимость Linux самого по себе, а в первую очередь возможность компиляции в этой ОС всего ранее созданного программного ассортимента для UNIX и POSIX-совместимых систем вообще.
Лично Линусу принадлежит честь разработки ядра Linux и файловой системы ext (то есть Extended — расширение для файловой системы Minix), как и сменившей ее впоследствии ext2. В качестве среды для работы он выбрал bash — командную оболочку, разрабатываемую в рамках проекта GNU. А для сборки своего кода использовал тот самый gcc, о котором только что говорилось, а главной общесистемной библиотекой функций языка Си выступала GNU-реализация ее, glibc. Все прочее системное окружение ядра — комплекс пакетов, который можно назвать Base Linux — также имеет в основном происходит из проекта GNU. Да и при выборе политики распространения Линус в конце концов остановился на лицензии GPL — детище Ричарда Столлмана и его Фонда свободного программного обеспечения (FSF).
GNU ли Linux?
На основании сказанного выше часто полагают, что ОС Linux должна на самом деле именоваться GNU/Linux. Правильно ли это?
По моему скромному мнению, нет. Конечно, роль программного обеспечения, разработанного в рамках проекта GNU, для развития Linux как пользовательской платформы переоценить трудно. Однако не проект GNU ухватился за столь недостающее ему ядро. Напротив, это Линус для обеспечения работы своего ядра использовал отдельные компоненты из GNU-арсенала. В полном, к слову сказать, соответствии с духом и буквой GPL и движения FSF. Впрочем, те, кто считает нужным подчеркнуть роль компонентов GNU в составе Linux, вполне могут это делать — и делают.
Добавлю ещё, что неотъемлемой чертой Base Linux является альтернативность его комплектации. И потому ОС Linux — не только (а может быть, и не столько) ядро и набор базовых программ, но в первую очередь алгоритм для построения такого набора. И создание такого алгоритма — второе, после написания кода ядра, великое достижение Линуса.
Наконец, Линус оказался создателем уникального метода разработки масштабных проектов Open Source, того самого, который Эрик Реймонд позднее назовёт методом большого базара. Впрочем, справедливости ради следует отметить, что в данном случае и он изобрёл велосипед — аналогичный способ привлечения дармовой рабочей силы использовал Том Сойер в своих “Приключениях”. Однако, если инструментами Тома были сердцевина от яблока и крыса с привязанной к хвосту верёвкой, чтобы удобнее размахивать ей над головой, то орудием Линуса оказался Интернет.
Заключение
А теперь я опять вернусь к теме предыдущей статьи. Существует мнение, что если бы BSD (еще не разделившаяся на Net- и FreeBSD) не погрязла бы в тяжбе с AT&T и получила бы свободу в конце 80-х — начале 90-х годов, то в разработке Linux не было бы никакой необходимости. Несмотря на свою пылкую любовь к BSD-системам во всех их проявлениях, не могу с этим согласиться: если бы Linux’а не было — его следовало бы изобрести. Потому что без негожить было бы скучно…
Самое же главное, что камерный, во многом академический, стиль разработки BSD-систем, при всех его достоинствах с точки зрения качества, не способствовал вовлечению в этот процесс широких народных масс. И, как следствие, не мог был бы обеспечить открытому и свободному софту той популярности, которую он приобрёл благодаря Linux’у.
Собственно, рождение Linux дало толчок к окончательному оформлению движения Open Source, несколько обособившемуся от сообщества Free Software — хотя и по сей день это существенно пересекающиеся множества. Но, если апологеты FSF, во главе с Ричардом Столлманом, декларируют, что всё программное обеспечение должно быть свободным, исходя из моральных и идеологических соображений, то для сторонников Open Source характерен более прагматический подход. Их принцип — открытое программное обеспечение следует использовать не потому, что оно открытое, свободное или бесплатное. А потому, что оно просто лучше проприетарного. В том числе — и в следствие публичной экспертизы, реализуемой именно благодаря внедрённому Линусом методу Тома Сойера.
Автор: alv
Сочинитель в жанре беллетристики технологической и более иной. Не рекомендуемой к прочтению информационно-неполовозрелым и литературно невинным гражданам. Посмотреть все записи автора alv
Эндрю Таненбаум: Успешность Linux — это просто удача
http://www.news2.ru/story/331104/
Спор профессора Эндрю Таненбаума с молодым Линусом Торвальдсом (Linus Torvalds) об архитектуре операционных систем (микроядро Minix против монолитного ядра Linux) стартовал ещё в начале 90-х, став с тех пор своеобразной классикой в мире ИТ. В очередном интервью Таненбаума речь зашла о Linux, Minix и BSD-системах. На вопрос Таненбауму о том, считает ли он успех Linux доказательством того, что Линус был прав, профессор невозмутимо ответил, что «успех Linux обусловлен тем, что BSD-системы были вытеснены с рынка из-за судебного разбирательства с AT&T в критичное для этого время»
Зависть, что поделаешь. Каждый останется в споре при своем мнений.
Высеры Танненбаума — просто зовисть
Старый уважаемый ПЕРДУН.
Он часто такое говорит, алсо «новость» недельной, что ли, давности.
Эндрю Таненбаум: Успешность Linux — это просто удача
Эндрю Таненбаум (Andrew Tanenbaum), известный как автор операционной системы Minix и популярных учебных пособий по операционным системам и сетям, недавно дал интервью французскому сайту LinuxFR.org, где вновь с сомнением отозвался о Linux и рассказал про нынешнее состояние и перспективы MINIX3.
Спор профессора Эндрю Таненбаума с молодым Линусом Торвальдсом (Linus Torvalds) об архитектуре операционных систем (микроядро Minix против монолитного ядра Linux) стартовал ещё в начале 90-х, став с тех пор своеобразной классикой в мире ИТ. В очередном интервью Таненбаума речь зашла о Linux, Minix и BSD-системах. На вопрос Таненбауму о том, считает ли он успех Linux доказательством того, что Линус был прав, профессор невозмутимо ответил, что «успех Linux обусловлен тем, что BSD-системы были вытеснены с рынка из-за судебного разбирательства с AT&T в критичное для этого время».
Таненбаум и вовсе считает, что успех Linux является весьма относительным. В качестве аргумента он приводит пример политического сайта, направленного на «обычную» аудиторию, где Linux используют лишь 5 процентов посетителей, а «Macintosh (с BSD в основе)» — 30 %. Успехом он не считает ни базарную модель разработки Linux, ни «вирусный эффект» лицензии GPL — популярность Linux, по Таненбауму, была достигнута лишь благодаря стечению обстоятельств.
Успех других проектов с открытым кодом профессор прокомментировал так: «В мире есть всего около полдюжины Open Source-проектов, доминирующих на своих рынках, таких как Apache и gcc. Даже Firefox, получивший миллионы долларов от Google в обмен на скромный блок с поиском, приближается к третьему месту, уступая IE и Chrome».
История Linux
К 1990 году в рамках проекта GNU были разработаны и постоянно развивались свободные программы, составляющие основной инструментарий для разработки программ на языке Си: текстовый редактор Emacs, компилятор языка Си gcc , отладчик программ gdb , командная оболочка bash , библиотека важнейших функций для программ на Си libc . Все эти программы были написаны для операционных систем, похожих на UNIX. Это означает, что в них использовался стандартный для UNIX механизм запроса ресурсов компьютера, необходимых программе — системные вызовы, которые исполняются ядром операционной системы. При помощи системных вызовов программы получают доступ к оперативной памяти, файловой системе, устройствам ввода и вывода. Благодаря тому, что системные вызовы выглядели более-менее стандартно во всех реализациях UNIX, программы GNU могли работать (с минимальными изменениями или вообще без изменений) в любой UNIX-подобной операционной системе.
С помощью имевшихся инструментов GNU можно было бы писать программы на Си, пользуясь только свободными программными продуктами, однако свободного UNIX-совместимого ядра, на основе которого могли бы работать все эти инструменты, не существовало. В такой ситуации разработчики GNU вынуждены были использовать одну из патентованных реализаций UNIX, т. е. вынуждены были следовать принятым в этих операционных системах архитектурным решениям и технологиям и основывать на них свои собственные разработки. Идеал Столлмана о научной разработке ПО, свободной от решений, движимых коммерческими целями, был недоступен, пока в основе свободной разработки лежало патентованное UNIX-совместимое ядро, исходные тексты которого оставались тайной для разработчиков.
Linux — ядро
В 1991 году Линус Торвальдс, финский студент, чрезвычайно увлёкся идеей написать совместимое с UNIX ядро операционной системы для своего персонального компьютера с процессором ставшей очень широко распространённой архитектуры Intel 80386. Прототипом для будущего ядра стала операционная система MINIX: совместимая с UNIX операционная система для персональных компьютеров, которая загружалась с дискет и умещалась в очень ограниченной в те времена памяти персонального компьютера. MINIX был создан Энди Танненбаумом в качестве учебной операционной системы, демонстрирующей архитектуру и возможности UNIX, но непригодной для полноценной работы с точки зрения программиста. Так же, MINIX можно было использовать только в некоммерческих целях. Именно полноценное ядро для своего ПК и хотел сделать Линус Торваьдс. Название для своего ядра он соорудил из собственного имени, заменив последнюю букву и сделав его похожим на анаграмму слова UNIX.
Совместимость с UNIX в этот момент означала, что операционная система должна поддерживать стандарт POSIX . POSIX — это функциональная модель совместимой с UNIX операционной системы, в которой описано, как должна вести себя система в той или иной ситуации, но не приводится никаких указаний, как это следует реализовать программными средствами. POSIX описывал те свойства UNIX-совместимых систем, которые были общими для разных реализаций UNIX на момент создания этого стандарта. В частности, в POSIX описаны системные вызовы, которые должна обрабатывать операционная система, совместимая с этим стандартом.
Важнейшую роль в развитии Linux сыграли глобальные компьютерные сети Usenet и Internet. На самых ранних стадиях он обсуждал свою работу и возникающие трудности с другими разработчиками в телеконференции comp.os.minix в сети Usenet, посвящённой операционной системе MINIX. Ключевым решением Линуса стала публикация исходных текстов ещё малоработоспособной первой версии ядра под свободной лицензией GPL. Благодаря этому и получавшей всё большее распространение сети Internet очень многие получили возможность самостоятельно компилировать и тестировать это ядро, участвовать в обсуждении и исправлении ошибок, и присылать исправления и дополнения к исходным текстам Линуса. Теперь над ядром работал уже не один человек, разработка пошла быстрее и эффективнее.
В 1992 году версия ядра Linux достигла 0.95, а в 1994 году вышла версия 1.0, что свидетельствует о том, что разработчики наконец сочли, что ядро в целом закончено и все ошибки (теоретически) исправлены. В настоящее время разработка ядра Linux — дело уже гораздо большего сообщества, чем во времена до версии 0.1, изменилась и роль самого Линуса Торвальдса, который теперь не главный разработчик, но главный авторитет, который традиционно оценивает исходные тексты, которые должны быть включены в ядро и даёт своё добро на их включение. Тем не менее, общая модель свободной разработки сообществом сохраняется. В настоящее время параллельно всегда разрабатывается два варианта ядра. Стабильная версия, считающаяся достаточно надёжной и пригодной для пользователей, её номер заканчивается на чётное число, например, « 2.4 ». Номер соответствующей экспериментальной версии ядра оканчивается на нечётное число — « 2.5 ». Экспериментальная версия адресована в первую очередь разработчикам ядра, тестирующим новые возможности.
GNU и Linux
Однако как нельзя сделать операционную систему без ядра, так и ядро будет бесполезно без утилит, которые использовали бы его возможности. Благодаря проекту GNU Линус Торвальдс сразу имел возможность использовать в Linux свободные утилиты: bash , компилятор gcc , tar , gzip и многие другие уже известные и широко используемые приложения, которые могли работать с его UNIX-совместимым ядром. Так Linux сразу попал в хорошее окружение и в сочетании с утилитами GNU представлял собой очень интересную среду для разработчиков программного обеспечения даже на самой ранней стадии своего развития.
Принципиальным шагом вперёд было именно то, что из ядра Linux и утилит и приложений GNU впервые стало возможно сделать полностью свободную операционную систему, т. е. работать с компьютером и, более того, разрабатывать новое программное обеспечение, пользуясь только свободным программным обеспечением. Идеал полностью некоммерческой разработки Столлмана теперь мог быть реализован в жизни.
Однако появление теоретической возможности воплощения идеала не означало его немедленной практической реализации. Совместимость Linux и утилит GNU была обусловлена тем, что и то, и другое писалось с ориентацией на одни и те же стандарты и практику. Однако, в рамках этой практики (множество различных UNIX-систем) оставался большой простор для несовместимости и различных решений. Поэтому на начальном этапе разработки ядра каждое заработавшее под Linux приложение GNU было для Линуса очередным достижением: первыми стали bash и gcc . Таким образом, сочетание GNU и Linux было возможностью создать свободную операционную систему, но само по себе ещё не составляло такой системы, потому что Linux и различные утилиты GNU оставались разрозненными программными продуктами, которые писали разные люди, не всегда принимая в расчёт то, что делают другие. Основное же качество системы — согласованность её компонентов.
Возникновение дистрибутивов
После определённого периода разработки под Linux уже стабильно работал ряд важнейших утилит GNU. Скомпилированное ядро Linux с небольшим комплектом скомпилированных уже в Linux утилит GNU составляло набор инструментов для разработчика программного обеспечения, желающего использовать свободную операционную систему на своём персональном компьютере. В таком виде Linux уже не только годился для разработки Linux, но и представлял собой операционную систему, в которой можно было уже выполнять какие-то прикладные задачи. Конечно, первое, чем можно было заниматься в Linux — писать программы на Си.
Первоначально, чтобы получить компьютер с работающей системой Linux, разработчики пользовались специальными комплектами дискет со скомпилированным ядром Linux и утилитами: с этих дискет можно было загрузить Linux и работать в нём. Однако это не слишком удобно, когда нужно работать в Linux постоянно, да и объём дискет накладывал очень сильные ограничения на дальнейшее расширение системы и включение новых утилит. К
огда задача получить компьютер с постоянно работающей на нём системой Linux стала востребованной и довольно распространённой, разработчики в хельсинкском и техасском университетах создают собственные наборы дискет, с которых скомпилированное ядро и основные утилиты можно записать на жёсткий диск, после чего загружать операционную систему прямо с него. Эти наборы дискет — первые прототипы современных дистрибутивов Linux — комплекты программного обеспечения, на основе которых можно получить работающую операционную систему на своём компьютере. Нужно отметить, что в дистрибутив Linux с самого начала входили программные продукты GNU. На самом деле, всякий раз, когда говорится «операционная система Linux», подразумевается «ядро Linux и утилиты GNU». Фонд свободного ПО даже рекоммендует называть это операционной системой GNU/Linux.
Однако скопировать все нужные программы на жёсткий диск ещё недостаточно, чтобы получить подходящую для нужд пользователя операционную среду (пусть даже это очень профессиональный пользователь). Поэтому первые наборы дискет можно только условно назвать дистрибутивами. Чтобы получить работающую операционную систему, тредуются какие-то специальные средства установки и настройки программного обеспечения. Именно наличие таких средств и отличает современные дистрибутивы Linux. Другое важнейшая задача дистрибутива — регулярное обновление. Программное обеспечение, особенно свободное, — одна из самых быстро развивающихся областей, поэтому мало один раз установить Linux, нужно ещё регулярно его обновлять. Первым дистрибутивом в современном понимании, получившим широкое распространение, стал Slackware, созданный Патриком Фолькердингом (кстати, этот дистрибутив сохранился и до наших дней). Он был широко известен пользователям Linux уже к 1994 году.
Несмотря на то, что с появлением первых дистрибутивов установка Linux уже не требует самостоятельной компиляции всех программ из исходных текстов, использование Linux оставалось уделом разработчиков: пользователь этой операционной системы в тот период её развития мог заниматься почти исключительно программированием. По крайней мере, чтобы решать в ней другие повседневные прикладные задачи (например, чтение электронной почты, написание статей и т. п.), он должен был сначала некоторое время позаниматься программированием и даже разработкой самой системы Linux, чтобы создать для себя соответствующие прикладные программы или заставить их работать в Linux.
Однако разработчики — тоже люди, которые пишут и электронные письма, и статьи, и даже рисуют картинки. Всё программное обеспечение для Linux было открытым, поэтому вскоре стало появляться всё больше прикладных программ для Linux, которые использовались всё большим сообществом, отчего становились надёжнее и получали всё новую функциональность. В конце концов возникает идея, что из Linux и GNU-приложений для Linux целенаправленными усилиями небольшой группы разработчиков можно делать целостные операционные системы, подходящие для очень широкого круга пользователей и продавать эти системы пользователям за деньги как аналог и альтернативу существующим патентованным операционным системам.
Выгода операционной системы, целиком состоящей из свободного программного обеспечения, очевидна — собирающие эту систему не должны никому платить за входящие в неё программы. Более того, дальнейшая разработка и обновление имеющихся программ ведётся сообществом разработчиков также совершенно бесплатно, не нужно платить сотрудникам, которые занимались бы этим. В итоге затраты фирмы, собирающей дистрибутив Linux для пользователя, ограничиваются оплатой программистов, интегрирующих разрозненные приложения в систему и пишущих программы для стандартизации процедур установки и настройки системы, чтобы облегчить эти задачи неподготовленному пользователю, а также затратами на само издание получившегося дистрибутива. Для конечного покупателя это означает принципиальное снижение цены на операционную систему.
Первой успешной компанией, работающей по такой схеме, стала RedHat, появившаяся в 1995 году. RedHat адресовала свои разработки не только программистам профессионалам, но и обыкновенным пользователям и системным администраторам, для которых компьютер — в первую очередь офисное рабочее место или рабочий сервер. Ориентируясь на уже существующие на рынке предложения для такого класса пользователей, RedHat всегда уделял большое внимание разработке приложений с графическим интерфейсом для выполнения типичных задач по настройке и администрированию системы. Бизнес RedHat развивался довольно успешно, в 1999 году эта компания акционировалась — сразу после выпуска акции росли в цене очень энергично, однако потом ажиотаж улёгся. В настоящее время доля RedHat на рынке серверов и рабочих станций Linux очень велика. Благодаря RedHat в сообществе пользователей Linux очень широкое распространение получил формат пакетов RPM.
Практически одновременно с RedHat появился проект Debian. Его задача была примерно той же — сделать целостный дистрибутив Linux и свободного программного обеспечения GNU, однако этот проект был задуман как принципиально некоммерческий, проводимый в жизнь сообществом разработчиков, нормы взаимодействия в котором полностью соответствовали бы идеалам свободного ПО.
Официальное название дистрибутива — Debian GNU/Linux.
Сообщество разработчиков Debian — международное, участники которого взаимодействуют через Internet, а нормы взаимодействия между ними определяются специальными документами — полиси (policy).
Сообщество разработчиков не извлекает никакой прибыли от продажи Debian, его версии распространяются свободно, доступны в Интернет, могут распространяться и на твёрдых носителях (CD, DVD), но и в этом случае их цена редко сильно превышает стоимость носителя и наценку, окупающую затраты на издание. Первоначально разработка Debian спонсировалась Фондом свободного программного обеспечения. Адресатами дистрибутивов Debian всегда в первую очередь были профессиональные пользователи, так или иначе связанные с академической разработкой программного обеспечения, которые готовы читать документацию и собственными руками организовать нужный профиль системы, соотвествующий именно их задачам. Ориентация на такую аудиторию предопределила некоторые тенденции развития Debian: в нём никогда не было обилия «простых» графических средств настройки среды, всевозможных мастеров, однако всегда уделялось много внимания средствам последовательной и единообразной интеграции программного обеспечения в единую систему. Именно в Debian появился менеджер пакетов (APT). В настоящее время Debian — самый популярный дистрибутив Linux среди пользователей, являющихся профессионалами в области информационных технологий.
Всякий раз, когда свободное программное обеспечение оказывается востребованным, немедленно возникает множество альтернативных решений — так произошло и с дистрибутивами Linux. После 1995 года возникло (и продолжает возникать) огромное количество коммерческих компаний и свободных сообществ, которые ставят своей задачей подготовку и выпуск дистрибутивов Linux. У каждого из них — свои особенности, своя целевая аудитория, свои приоритеты. К настоящему времени на рынке дистрибутивов выделилось несколько лидеров, которые предлагают более или менее универсальные решения и наиболее широко известны и используются. Помимо уже названных RedHat и Debian следует назвать в ряду дистрибутивов, ориентированных на рядового пользователя, немецкий SuSE и французский Mandrake, среди адресованных специалистам — Gentoo. Но помимо «крупных» игроков на рынке дистрибутивов есть горадо большее количество менее распространённых дистрибутивов. Теперь перед пользователем, желающим установить Linux, встаёт вопрос выбора дистрибутива. Критерии выбора — и задачи, которые предполагается решать с помощью Linux, и уровень подготовки пользователя, и технологии, и предстоящие контакты с тем сообществом, которое занимается разработкой дистрибутива.
История Linux в России
Получилось так, что в международном сообществе разработчиков, начинавших и продолжавших развивать Linux, все в той или иной степени могли объясниться по-английски. Это и неудивительно, поскольку исторически английский оказался языком компьютерной науки и операционной системы UNIX, глобальной сети Internet, программирования. В международном сообществе разработчиков программного обеспечения английский выполнял и выполняет роль, подобную латыни в научном сообществе средневековой Европы. Но если Linux предполагается использовать не только для программирования и общения с программистами, но и для повседневных задач, необходима локализация — т. е. возможность общаться с комьютером и при помощи компьютера и на других языках.
Локализация — комплексный процесс, затрагивающий самые разные стороны системы. Для полноценной поддержки того или иного языка в системе необходимо обеспечить возможность ввода на этом языке (поддержка раскладок клавиатуры и кодировок), вывода (экранных шрифтов), печати, а затем уже необходимо переводить интерфейс различных приложений на данный язык, разрабатывать средства подготовки электронных и бумажных публикаций на этом языке и т. д. В этой лекции мы кратко рассмотрим только историю локализации Linux в России для русского языка, т. е. русификации Linux.
Первой компанией, поставившей своей целью выпуск дистрибутивов Linux для русскоговорящих пользователей, была УрбанСофт, открытая в Петербурге в 1992 году. Весь её бизнес состоял в выпуске и продаже CD-дисков с дистрибутивами свободного программного обеспечения. В первую очередь это были дистрибутивы RedHat, а также Debian, в которые включались разработанные силами УрбанСофт пакеты для русификации.
Несколько позже в Москве IPLabs Linux Team выпускает Linux Mandrake Russian Edition — модифицированный (чтобы соответствовать нуждам русского пользователя) вариант дистрибутива Mandrake Linux. Впоследствии эта команда начинает выпускать дистрибутивы, которые отличаются от Mandrake уже не только наличием пакетов для русификации, но и другими принципиальными возможностями. В конце концов команда разработчиков создаёт фирму ALT Linux и начинает выпускать дистрибутивы под маркой ALT Linux.
Также появляется компания ASPLinux, целью которой является выпуск RedHat с модификациями для поддержки русского языка, название продукта совпадает с именем компании.
Все перечисленные Российские производители дистрибутивов Linux существуют и по сей день, и продолжают с большей или меньшей активностью выпускать дистрибутивы.