За более чем четверть века вышло немало статей (в том числе и на Хабре), рассказывающих о разных отрезках истории Linux. В этой серии материалов мы решили выделить наиболее значимые и интересные факты, связанные с этой операционной системой.
Начнем с разработок, которые предшествовали Linux, и истории появления первой версии ядра.
/ Flickr / Toshiyuki IMAI / CC BY-SA
Эпоха «свободного рынка»
Появление 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 году, но сам факт появления свободной и открытой ОС стал важной вехой в истории опенсорсных проектов.
/ Flickr / Christopher Michel / CC BY / Фото обрезано
Назад — к истокам свободного ПО
В конце 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.
/ Flickr / Christopher Michel / CC BY
Рождение Linux и первых дистрибутивов
В 1991 году молодой программист из Хельсинкского университета Линус Торвальдс осваивал Minix. Его эксперименты с ОС переросли в работу над совершенно новым ядром. 25 августа Линус устроил открытый опрос группы пользователей Minix о том, что их не устраивает в этой ОС, и анонсировал разработку новой операционной системы. В августовском письме есть несколько важных тезисов о будущей ОС:
- система будет бесплатной;
- система будет похожа на Minix, но исходный код будет абсолютно другим;
- система не будет «большой и профессиональной, как GNU».
25 августа принято считать днем рождения Linux. Сам Линус ведет отсчет от другой даты — 17 сентября. Именно в этот день он загрузил первый релиз Linux (0.01) на FTP-сервер и отправил электронное письмо людям, проявившим интерес к его анонсу и опросу. В исходном коде первого релиза сохранилось слово «Freaks». Так Торвальдс планировал назвать свое ядро (комбинация слов «free», «freak» и Unix). Администратору FTP-сервера не понравилось название, и он переименовал проект в Linux.
Далее последовала череда обновлений. В октябре того же года была выпущена версия ядра 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, о которой мы поговорим в следующей статье.
Посты из корпоративного блога 1cloud.ru:
Комментарии (22)
lisovsky1
25.02.2019 11:42-2Мне кажется, что прочитал пересказ фильма «Revolution OS», в переводе Бачило.
kikiwora
25.02.2019 12:20Хорошая статья. Мне понравилась. Прочитал с удовольствием.
Спасибо автору, я бы плюсанул, если бы мог :(
А вообще скажу что уже очень давно хочу сам написать свою простую ОС для души и просто чтобы разобраться во всём. Может как дайду до этого и статью напишу. А то столько всего делал, но никому не рассказывал :)
Жду следующих частей с нетерпением.
GeMir
25.02.2019 15:37Собственно, «Just For Fun» Торвальдса читается вполне неплохо.
yerden
26.02.2019 15:21интересно, что он в этой книге то ли в шутку, то ли всерьёз рассказал про историю с придумыванием названия «Linux» и добавил, что теперь всегда можно будет идею этого названия свалить на другого :)
jorikaaa
26.02.2019 15:23Согласен, книжка очень интересная, читается на один раз. сам начинал с Красной Шапочки, если кто помнит такую. Для ценителей истории очень много страрых Линукс дистрибутивов досупно здесь — https://www.linux-distros.com Всем удачи!
IgorPie
Всегда удивляло, что люди писали ОС, которая была сама в себе. Ни игр, ни прикладного софта. Денег тоже не сулила.
А могли бы играть в doom или heretic.
raamid
И хорошо, что не играли.
Я вот как-то ради прикола написал диспетчер многозадачности для DOS с использованием прерывания таймера. Причем мотивом послужила статья в Компьютер Пресс, в которой говорилось что такое невозможно сделать. Это было захватывающе, впечатления гораздо более яркие чем завалить босса в Diablo. Жаль что статью не написал, я тогда не понимал, что это следует сделать.
61brg
Так-то это была тема лабораторной работы
kikiwora
Это тянет на курсовую или даже дипломную. Конечно же, если вы всё делаете правильно и по-честному а не воруете чужие решения и не сдаёте работу тяп-ляп как это делают современные студенты (не все, но большинство).
Уверен что человек много времени и сил на это потратил и многое продумал.
Написать полноценный диспетчер многозадачности не так просто как вы думаете.
Обычно на это дело выделяют как минимум целую команду разработчиков вместе с математиком. Не забывайте ещё про квантование по времени, о приоритетах процессов и их потоков и прочих нюансах.
chnav
kikiwora
Стоит ли ожидать статью на эту тему?
chnav
Я не настолько глубок в теме. У нас в 90-е использовали готовый пакет от какой-то немецкой компании, в документации были упомянуты эти тонкости. И то, шаг вправо-влево, неудачный резидент или экстендер памяти 386 — всё падает. Но в принципе добивались стабильной работы.
Vitalley
Теперь пора статью написать
amarao
Потому что «пользователь ЭВМ» в то время подразумевало, как минимум, умение программировать. Есть компилятор и приличный язык? Можем решать вычислительные задачи.
Мне до сих пор сильно жалко людей, которые не знают ни одного языка программирования и вынуждены вместо этого изобретать кошмары в excel.
IgorPie
В какое, в то? Компьютеры использовали на работе, а после (во время) — резались в игры.
В 1991м было достаточно из нортон коммандера уметь запускать лексикон, мультиэдит или приложения на dBaseIII+ / FoxPro. А если умеешь на 9-игольчатом принтере печатать, то ты — госу.
Владельцы Амиг и Атари смеялись над писюшниками, что их ПК годятся лишь как компы секретаршам.
Но глобальные сети, как мы видим, уже были.
amarao
Это одно из применений. Большинство же пользователей unix-систем вполне владели навыками программирования. Да, это разные миры, и на «секретаршах» поднялась MS, но целевая аудитория юникс-систем подразумевала достаточно квалифицированных пользователей.
chnav
Полностью солидарен. Unix-системы в 90-е были не очень-то и доступны рядовому студенту, в результате весь пыл и энергия выплеснулись на изучение/программирование DOS/Windows/OS2 на платформе x86 ))) К тому времени как Linux развернулся — лично мне было уже поздно менять среду обитания, тем более весь производственный софт у нас был на платформе Windows (опять же из-за форы Microsoft) и так сохраняется по сегодняшний день.
Я не могу объяснить своим более молодым коллегам почему я не выучил Linux в институте — да просто не было его!!! А потом нужда в нём отпала. Был правда один навигационный комплекс на Linux, который переехал ещё с рабочих станций Sun, и это была мука… Абсолютно чужеродная среда )))
Сейчас благодаря Windows 10 WSL есть шанс как-то _плавно_ влиться в эту экосистему.
da-nie
Меня вот больше удивляет, что другие люди такой ОС заинтересовались и стали развивать. Заинтересовать своим проектом и вызвать желание в нём разбираться у другого человека не очень просто. Особенно, когда аудитория не такая большая, как сейчас, когда кто-нибудь да найдётся. Ну и ещё что-то мне кажется, что в начале девяностых самодельное осестроение (хотя бы в кусочках) не было чем-то особенным.
IgorPie
Думаю, можно похвалить не только Торвальдса и соратников, но их учителей и преподавателей. Нашли общий язык, организовались, метко выбрали направление, нашли публичные лицензии и т.п.