В этом году ядру Linux исполняется 27 лет. ОС на его базе используют многие корпорации, государственные, исследовательские учреждения и дата-центры по всему миру.
За более чем четверть века вышло немало статей (в том числе и на Хабре), рассказывающих о разных отрезках истории Linux. В этой серии материалов мы решили выделить наиболее значимые и интересные факты, связанные с этой операционной системой.
Начнем с разработок, которые предшествовали Linux, и истории появления первой версии ядра.
Эпоха «свободного рынка»
Появление Linux считается одним из важнейших событий в истории открытого ПО. Рождение этой операционной системы во многом обязано идеям и инструментам, которые формировались и «зрели» десятилетиями в среде разработчиков. Поэтому для начала обратимся к истокам «опенсорсного движения».
На заре 50-х большая часть программного обеспечения в США создавалась сотрудниками университетов и лабораторий и распространялась без каких-либо ограничений. Это делалось с целью упрощения обмена знаниями в научной среде. Первым опенсорсным решением того периода считается система A-2, написанная для ЭВМ UNIVAC Remington Rand в 1953 году.
В те же годы сформировалась первая группа разработчиков свободного ПО — SHARE. Они работали по модели «совместного однорангового производства». Результатом труда этой группы ближе к концу 50-х стала одноименная ОС.
Эта система (и другие продукты SHARE) пользовалась популярностью у производителей компьютерного оборудования. Благодаря политике открытости они могли предложить клиентам не только аппаратное, но и программное обеспечение без дополнительных затрат.
Приход коммерции и рождение Unix
В 1959 году компания Applied Data Research (ADR) получила заказ от организации RCA — написать программу для автозаполнения блок-схем. Разработчики выполнили работу, но не сошлись с RCA в цене. Чтобы не «выбрасывать» готовый продукт, в ADR переделали решение для платформы IBM 1401 и начали самостоятельно его реализовывать. Однако продажи шли не очень хорошо, так как многие пользователи ждали бесплатную альтернативу решению ADR, которую планировали в IBM.
В ADR не могли допустить выпуск бесплатного продукта с аналогичной функциональностью. Поэтому разработчик Мартин Гетц (Martin Goetz) из ADR подал патент на программу и в 1968 году первым в истории США получил его. С этого момента принято отсчитывать эпоху коммерциализации в индустрии разработки — из «бонуса» к оборудованию ПО превратилось в самостоятельный продукт.
Приблизительно в то же время небольшая команда программистов из Bell Labs начала работу над операционной системой для мини-компьютера PDP-7 — Unix. Unix создавали в качестве альтернативы другой ОС — Multics.
Последняя была слишком сложной и работала только на платформах GE-600 и Honeywell 6000. Переписанная на языке СИ Unix должна была стать портативной и более простой в использовании (во многом благодаря иерархической файловой системе с единым корневым каталогом).
В 50-х холдинг AT&T, в состав которого на тот момент входила Bell Labs, подписал соглашение с правительством США, запрещающее корпорации продавать программное обеспечение. По этой причине первые пользователи Unix — научные организации получали исходный код ОС бесплатно.
AT&T отдалилась от концепции свободного распространения ПО в начале 80-х. В результате вынужденного разделения корпорации на несколько компаний запрет на продажу ПО перестал действовать, и холдинг прекратил бесплатное распространение Unix. Разработчикам грозили исками за несанкционированный обмен исходным кодом. Угрозы не были беспочвенными — с 1980 года компьютерные программы стали объектом авторского права в США.
Не всех разработчиков устраивали условия, которые диктовали в AT&T. Поисками альтернативного решения занялась группа энтузиастов из Калифорнийского университета в Беркли. В 70-х учебное заведение получило лицензию от AT&T, и энтузиасты начали создавать на его основе новый дистрибутив, который впоследствии стал Unix Berkeley Software Distribution, или BSD.
Открытая Unix-подобная система возымела успех, на что сразу обратили внимание в AT&T. Компания подала в суд, и авторам BSD пришлось удалить и заменить весь задействованный исходный код Unix. Это немного замедлило распространение Berkeley Software Distribution в те годы. Последняя версия системы вышла в 1994 году, но сам факт появления свободной и открытой ОС стал важной вехой в истории опенсорсных проектов.
Назад — к истокам свободного ПО
В конце 70-х сотрудники Массачусетского технологического института написали драйвер для принтера, установленного в одной из аудиторий. Когда бумага застревала и создавалась очередь из заданий на печать, пользователи получали уведомление с просьбой устранить проблему. Позже в отделе появился новый принтер, для которого сотрудники захотели добавить такую функцию. Но для этого нужен был исходный код первого драйвера. Штатный программист Ричард Мэттью Столлман (Richard M. Stallman) запросил его у коллег, но получил отказ — выяснилось, что это конфиденциальная информация.
Этот незначительный эпизод, возможно, стал одним из судьбоносных в истории свободного ПО. Столлман негодовал из-за сложившегося положения вещей. Его не устраивали ограничения, накладываемые на обмен исходным кодом в ИТ-среде. Поэтому Столлман решил создать открытую операционную систему и позволить энтузиастам свободно вносить в нее изменения.
В сентябре 1983 года он объявил о создании проекта GNU — GNU’s Not UNIX («GNU не Unix»). В его основе лежал манифест, который послужил и базисом для лицензии на свободное программное обеспечение — GNU General Public License (GPL). Этот шаг стал началом активного движения за открытое ПО.
Несколько лет спустя профессор Амстердамского свободного университета Эндрю Таненбаум (Andrew S. Tanenbaum) в качестве учебного пособия разработал Unix-подобную систему Minix. Он хотел сделать ее максимально доступной для студентов. Издатель его книги, к которой прилагалась ОС, настаивал хотя бы на номинальной плате за работу с системой. Эндрю и издатель пришли к компромиссу по цене лицензии в $69. В начале 90-х Minix завоевала популярность среди разработчиков. И ей было суждено стать основой для разработки Linux.
Рождение Linux и первых дистрибутивов
В 1991 году молодой программист из Хельсинкского университета Линус Торвальдс осваивал Minix. Его эксперименты с ОС переросли в работу над совершенно новым ядром. 25 августа Линус устроил открытый опрос группы пользователей Minix о том, что их не устраивает в этой ОС, и анонсировал разработку новой операционной системы. В августовском письме есть несколько важных тезисов о будущей ОС:
- система будет бесплатной;
- система будет похожа на Minix, но исходный код будет абсолютно другим;
- система не будет «большой и профессиональной, как GNU».
Далее последовала череда обновлений. В октябре того же года была выпущена версия ядра 0.02, а в декабре — 0.11. Изначально Linux распространялся без лицензии GPL. Это означало, что разработчики могли пользоваться ядром, модифицировать его, но не имели права перепродавать результаты своих трудов. Начиная с февраля 1992 года, все коммерческие ограничения были сняты — с релизом версии 0.12 Торвальдс изменил лицензию на GNU GPL v2. Этот шаг Линус позже назвал одним из определяющих факторов успеха Linux.
Популярность Linux в среде разработчиков Minix росла. Некоторое время обсуждения велись в фиде comp.os.minix сети Usenet. В начале 92-го создатель Minix Эндрю Таненбаум запустил в сообществе спор об архитектуре ядер, заявив, что «Linux устарел». Причина, по его мнению, заключалась в монолитном ядре ОС, которое по ряду параметров уступает микроядру Minix. Еще одна претензия Таненбаума касалась «привязки» Linux к линейке процессоров x86, которая, по прогнозам профессора, должна была кануть в небытие в ближайшее время. В полемику вступил сам Линус и пользователи обеих ОС. В результате спора сообщество разделилось на два лагеря, а у приверженцев Linux появился свой фид — comp.os.linux.
Сообщество занималось расширением функциональности базовой версии — разрабатывались первые драйверы, файловая система. Самые ранние версии Linux умещались на двух дискетах и состояли из загрузочного диска с ядром и корневого диска, который устанавливал файловую систему и несколько базовых программ из инструментария GNU.
Постепенно сообщество начало разрабатывать первые дистрибутивы на базе Linux. Большинство ранних версий создавались энтузиастами, а не компаниями.
Первый дистрибутив — MCC Interim Linux — был создан на основе версии 0.12 в феврале 1992 года. Его автор — программист из Компьютерного центра университета Манчестера — назвал разработку «экспериментом» с целью устранить некоторые недостатки в процедуре установки ядра и добавить ряд функций.
Вскоре после этого число пользовательских дистрибутивов значительно возросло. Многие из них остались локальными проектами, «прожившими» не более пяти лет, например, Softlanding Linux System (SLS). Однако были и дистрибутивы, которым удалось не только «закрепиться» на рынке, но и во многом повлиять на дальнейшее развитие опенсорсных проектов. В 1993 году состоялся релиз двух дистрибутивов — Slackware и Debian, — которые дали старт серьезным переменам в индустрии свободного ПО.
Debian создал Иан Мердок (Ian Murdock) при поддержке Free Software Foundation Столлмана. Он задумывался как «изящная» альтернатива SLS. Debian поддерживается по сей день и является одной из самых популярных разработок на базе Linux. На его основе, в свою очередь, был создан ряд других важных для истории ядра дистрибутивов — например, Ubuntu.
Что касается Slackware, это — еще один ранний и успешный проект на базе Linux. Его первая версия вышла в 1993 году. По некоторым оценкам, через два года на долю Slackware приходилось уже около 80% установок Linux. И десятилетия спустя дистрибутив оставался популярным среди разработчиков.
В 1992-м в Германии была основана компания SUSE (аббревиатура от Software- und System-Entwicklung — разработка программного обеспечения и систем). Она первой начала выпускать продукты на базе Linux для бизнес-клиентов. Первым дистрибутивом, с которым стали работать SUSE, как раз был Slackware, адаптированный для немецкоязычных пользователей.
Именно с этого момента начинается эпоха коммерциализации в истории Linux, о которой мы поговорим в следующей статье.