AnyBlog.net

AnyBlog.net @AnyBlog

Linux: история создания и развития открытой ОС


Истоки Linux восходят к 1970-м годам XX века. Отправной точкой можно считать создание операционной системы Unix в 1969 году в исследовательском подразделении компании AT&T — Bell Laboratories. Unix впоследствии стала базой для множества операционных систем промышленного назначения. На приведённой временной шкале представлены ключевые ответвления, сыгравшие важную роль в развитии ОС на основе Unix:

В становлении Linux решающее значение имели два проекта — GNU и Minix.

GNU

Проект GNU был анонсирован в сентябре 1983 года американским программистом Ричардом Столлманом (Richard M. Stallman), работавшим в лаборатории искусственного интеллекта Массачусетского технологического института (MIT). В рамках профессионального сообщества, к которому он принадлежал, была распространена практика открытого обмена программным обеспечением и его исходными кодами.

Однако в то время действовали строгие ограничения, связанные с лицензированием Unix. Например, лицензия от AT&T стоила порядка 40 000 долларов, что делало её доступной только для крупных организаций. Без соответствующей лицензии программисты не имели законного права использовать или модифицировать исходный код, что препятствовало техническому прогрессу и затрудняло развитие новых программных решений. Создание каждого модуля «с нуля» влекло за собой существенные временные и трудозатраты.

В ответ на эти ограничения Столлман инициировал разработку свободной операционной системы — GNU (аббревиатура от GNU's Not Unix), совместимой с Unix, но не основанной на её коде.

Четверг, 27 сентября 1983 г., 12:35:59 EST

Свободный Unix!

После Дня Благодарения я начинаю писать Unix-совместимую программную систему GNU (Gnu’s Not Unix), которую буду предоставлять свободно(!) всем, кто может её использовать. Нужна помощь в виде времени, денег, программ и оборудования.

GNU будет содержать ядро плюс все утилиты, необходимые для того, чтобы писать и запускать программы на Cи: редактор, оболочку, компилятор Cи, линкер, ассемблер и ещё несколько вещей. После этого будут добавлены программа форматирования текста, YACC, игра Empire, электронная таблица и сотни других вещей. Мы надеемся включить всё, что обычно поставляется с Unix-системами, и всё, что ещё может оказаться полезным, в том числе онлайновую и печатную документацию.

GNU будет способна запускать программы Unix, но не будет идентична Unix. Мы будем вносить в систему улучшения, основываясь на нашем опыте работы с другими операционными системами...

Название проекта — рекурсивная аббревиатура «GNU is Not Unix». В отличие от проприетарного Unix, GNU должен был предоставить пользователям полную свободу использования, изучения и модификации программного обеспечения. Эти принципы легли в основу философии свободного ПО.

Позже Ричард Столлман опубликовал Манифест GNU , в котором изложил цели и идеологические установки проекта. Документ послужил основой для создания лицензии GPL (GNU General Public License) , оказавшей значительное влияние на развитие программной индустрии.

Основные положения лицензии GPL гарантируют пользователям следующие свободы:

  • Свобода запускать программу с любой целью (свобода 0);
  • Свобода изучать, как работает программа, и адаптировать её под свои нужды (свобода 1), что требует доступа к исходному коду;
  • Свобода распространять копии программы, помогая другим (свобода 2);
  • Свобода улучшать программу и делиться результатами с сообществом (свобода 3), также при наличии доступа к исходному коду.

Программное обеспечение, распространяемое по лицензии GPL, может свободно использоваться, модифицироваться, копироваться и передаваться третьим лицам, при условии, что любые производные работы также распространяются на условиях GPL. Это условие обеспечивает открытость кода и предотвращает его закрытие в составе проприетарных продуктов. Таким образом, GPL обеспечивает не только свободу программного обеспечения, но и сохраняет эту свободу в будущем.


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

Как отмечал сам Ричард Столлман: «К 1990-му году система GNU была практически завершена, за исключением одного ключевого компонента — ядра операционной системы». Предполагалось, что ядро под названием Hurd будет реализовано в виде набора серверных процессов, функционирующих на базе микроядра Mach, разработанного сначала в Университете Карнеги-Меллона, а затем в Университете штата Юта. Разработка откладывалась из-за задержек с выпуском Mach как свободного ПО. На фоне этих ожиданий появился альтернативный вариант — ядро Linux, созданное финским студентом Линусом Торвальдсом как усовершенствование учебной системы Minix, о которой стоит упомянуть подробнее.

Minix

В течение 1990-х годов персональные компьютеры с процессорами Intel и операционными системами Microsoft заняли доминирующее положение на рынке настольных решений и начали активно проникать в сферу серверных систем, традиционно ориентированных на Unix. Аппаратные возможности платформы x86 постоянно росли и вскоре стали сопоставимы с рабочими станциями под управлением Unix. Однако большинство коммерческих реализаций Unix не имели версий для архитектуры Intel, поскольку разработчики традиционно сотрудничали с производителями специализированных процессоров или были частично аффилированы с ними. Примером могут служить платформы SGI и MIPS.
Появление Unix-подобных систем, способных работать на массовом «железе», было лишь вопросом времени. Одним из таких проектов стал Minix — облегчённая операционная система, разработанная в 1987-м году профессором Эндрю Таненбаумом (Andrew S. Tanenbaum) из Университета Врие (Нидерланды). Minix создавался как образовательный инструмент, иллюстрирующий принципы построения ОС. Его исходный код, объемом около 12 тысяч строк на языке C и ассемблере, был доступен всем читателям книги Таненбаума «Операционные системы». Это позволяло глубоко изучать работу операционной системы на практике.

Хотя Minix не отличался высокой производительностью и был ограничен архитектурой Intel 80286, он сыграл важную роль в распространении знаний о системном программировании. Благодаря открытости и доступности, Minix использовался как в учебных целях, так и энтузиастами по всему миру, включая будущего создателя Linux — Линуса Торвальдса.

Linux

В 1991-м году финский студент Линус Торвальдс, вдохновлённый архитектурой Minix, начал разработку собственного ядра для операционной системы, совместимой с Unix. Его целью было создать систему, способную работать на персональном компьютере с процессором Intel 386, используя преимущества этой архитектуры. Основное внимание уделялось производительности, расширяемости и совместимости с POSIX-стандартами.

25 августа 1991 года Линус опубликовал первое сообщение о своей разработке в группе новостей comp.os.minix:
From: [email protected] (Linus Benedict Torvalds)
Newsgroups: comp.os.minix
Subject: Что бы вы хотели видеть в minix?
Summary: небольшой опрос для моей ОС
Message-ID: <[email protected]>
Date: 25 Aug 1991 20:57:08 GMT
Organization: University of Helsinki


Привет всем пользователям Minix!
Я пишу (бесплатную) операционную систему — это хобби, нечто непрофессиональное вроде GNU — для AT 386 (486). Работаю над ней с апреля, и она скоро будет готова. Напишите, что вам нравится и не нравится в Minix — моя ОС во многом на неё похожа, в том числе по структуре размещения файлов…

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

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

Постепенно к разработке Linux стали подключаться сначала десятки, затем сотни и тысячи добровольцев. Система вышла за рамки хоббийного эксперимента и превратилась в функциональную операционную среду, пригодную для реального применения. Существенный вклад в это развитие внёс проект GNU, предоставив обширный набор свободных программ. Использование лицензии GNU General Public License (GPL) обеспечило полную открытость исходного кода и гарантировало, что Linux останется свободной в будущем. Это стало важным аргументом для студентов, программистов и всех, кто стремился к прозрачным и независимым решениям в области программного обеспечения.

К началу 1994 года в интернете уже действовала специализированная новостная группа — `comp.os.linux`, объединявшая растущее сообщество пользователей. Появились первые группы поддержки, локальные сообщества и тематические ресурсы. В том же году вышел первый номер журнала «Linux Journal», а интерес к системе начали проявлять и коммерческие структуры: несколько небольших компаний начали выпускать собственные дистрибутивы Linux.

Изначально Линус был категорически против коммерциализации своей системы. В файле `COPYING` к версии 0.01 содержался жёсткий запрет на взимание платы за распространение или использование Linux. Эти условия даже превосходили ограничения, предусмотренные лицензией GPL. Однако в 1992 году к Торвальдсу стали обращаться пользователи с просьбой разрешить брать плату хотя бы за физическое распространение системы — для покрытия затрат на диски и логистику. К тому моменту стало очевидно, что Linux неразрывно связана с многочисленными инструментами, созданными сообществом свободного ПО, включая компилятор GCC, лицензированный по GPL. В результате Линус пересмотрел свою позицию и с версии 0.12 официально перешёл на лицензию GNU GPL, тем самым гармонизировав Linux с правовыми принципами движения свободного ПО.

С технической точки зрения Linux представляет собой ядро Unix-подобной операционной системы. Оно обеспечивает взаимодействие с аппаратным обеспечением компьютера и выполняет критически важные задачи — от управления памятью до распределения вычислительных ресурсов между процессами. Однако полноценная операционная система требует не только ядра, но и целого набора пользовательских и системных утилит. Именно проект GNU к 1991 году предоставил обширную базу таких компонентов, включая оболочки, компиляторы и различные утилиты. Linux, с ядром Торвальдса и программами GNU, образовала полноценную операционную систему. Без GNU ядро оставалось бы изолированным, а без ядра GNU — незавершённым. Поэтому, с точки зрения идеологии, корректным названием считается GNU/Linux. Однако на практике более короткое имя Linux прижилось, и в дальнейшем использовалось как стандартное обозначение всей системы — с учётом вклада как Линуса, так и Ричарда Столлмана сообществу проекта GNU.

Теги: Linux, история Linux, GNU, Minix, Unix, Ричард Столлман, Линус Торвальдс, GPL, операционные системы, открытое программное обеспечение

Опубликовано: 19.05.2025