25 лет Linux: история великой революции
Как четверть века назад проект одного студента изменил индустрию информационных технологий.
"На мне висело пять тысяч долларов в студенческих ссудах и примерно 50 долларов в месяц надо было выкладывать за компьютер. Остальные расходы шли в основном на пиццу и пиво. Но Linux отнимала у меня столько времени, что я очень редко куда-нибудь выходил — раз в неделю, не чаще", — рассказывает Линус Торвальдс о тех временах, когда он всё своё время посвящал работе над первой версией ядра будущей операционной системы.
25 августа 1991 года Торвальдс анонсировал свой проект в почтовой рассылке, через которую общались поклонники минималистичной учебной операционки Minix. Именно ей тогда пользовался Торвальдс, и именно она вдохновила его на создание Linux. Забавно, что тогда Торвальдс описывал свою разработку как любительскую и заранее предупредил сообщество, что Linux не вырастет во что-то большое и профессиональное.
Прошло 25 лет, и теперь больше трети веб-серверов в Интернете и 99% суперкомпьютеров из списка топ-500 работают на операционных системах с ядром Linux. Оно же лежит в основе операционной системы Android, используется в роутерах и различной встраиваемой электронике, а в будущем обещает стать основной платформой для "интернета вещей".
Linux прижился в корпоративном мире, и даже компании Microsoft пришлось смириться с успехами конкурента. Недавняя инициатива "Microsoft любит Linux" (Microsoft Loves Linux), в рамках которой инженеры Microsoft пробрасывают технологические мосты в мир Linux, подчёркивает это как нельзя лучше.
Изначально у Торвальдса вообще не было мысли разрабатывать операционную систему. Он в кредит купил новенький IBM-совместимый компьютер, установил на него Minix и хотел через так называемый эмулятор терминала подключаться к университетскому мейнфрейму (так раньше называли главный сервер, к которому обращались терминалы внутри заведения и эмуляторы терминала — по модему извне).
На мейнфрейме был установлен Unix — популярная ещё с семидесятых годов серверная ОС, которая была слишком дорогой, сложной и "тяжёлой" для ранних домашних компьютеров. Minix же — это вариация на тему Unix, созданная профессором Эндрю Таненбаумом в целях преподавания Unix. Она кое-как годилась для работы дома, но имела массу недостатков и ограничений. Решать эти проблемы Таненбаум не хотел, чтобы не усложнять Minix.
Торвальдса больше всего печалило то, как плохо в Minix работал эмулятор терминала, и он решил написать свою реализацию. Для этого он избрал сложный и неочевидный способ. Его программа не использовала операционную систему для связи с аппаратной частью компьютера и обращалась к "железу" напрямую. Компьютер приходилось каждый раз перезагружать с дискеты, зато такой подход давал максимальную производительность. Длинные зимние вечера, которыми Финляндия славится не меньше России, прошли не зря!
Когда у Торвальдса появилась необходимость скачивать через терминал файлы, он написал свой драйвер дисковода и драйвер файловой системы Minix. А потом, поняв, что ещё чуть-чуть и его творение станет операционной системой, он решил добавить в неё возможность выполнять программы из Unix. Уже через несколько месяцев этого частично удалось добиться, и тут вдруг выяснилось, что Minix больше не нужен.
Своё творение Линус Торвальдс в шутку назвал Linux — это слово образовано от его имени и Unix. В планах было сменить казавшееся нескромным название на Freax, но слово Linux успело прижиться быстрее, чем Торвальдс воплотил свой план в реальность. Почти сразу после публикации Linux версии 0.01, у новой ОС появились первые пользователи, а вскоре и люди, готовые помогать с разработкой и писать код.
Главной политикой Торвальдса всегда было разрешать каждому добровольцу делать то, что ему нравится. Если двое делали одно и то же, он выбирал лучший вариант и старался дипломатично объяснить своё решение. Постепенно Linux обрастал всё новыми возможностями, обретал новых поклонников и из студенческого проекта превращался во что-то большее.
Говорить, что Линус Торвальдс с нуля создал операционную систему, было бы большим преувеличением. Торвальдс разработал лишь ядро системы — важнейшую, но не самодостаточную деталь. Точно так же, как мотор не ездит отдельно от автомобиля, ядро не заменяет операционку. Оно позволяет программам работать и связывает их с "железом" компьютера, но кроме этого ничего не умеет.
Так откуда же у Торвальдса взялись остальные части системы? К примеру, компилятор, которым он превращал исходники на языке "Си" в машинные коды, а также другие программы, из которых состоит обращённая к пользователю часть ОС. Дело в том, что Торвальдс совместил ядро Linux с набором программ под названием GNU. Это сокращение шутливо расшифровывается как GNU is Not Unix (буква G как бы обозначает сам акроним GNU) — то есть "GNU не Unix".
За GNU на тот момент уже стояли годы разработки и мощная идеология. Проект создавался под предводительством Ричарда Столлмана. Это важнейший человек в мире свободного ПО, Linux не в последнюю очередь обязан своей популярностью его идеям.
Изначальной целью Столлмана было создать бесплатный клон Unix с открытыми исходниками. Причём нужно было сделать так, чтобы никто не смог присвоить себе исходные коды, закрыть разработку и не подпустить к ней других. Чтобы гарантировать это, Столлман с группой юристов написал лицензию GPL, General Public License.
Если обычное пользовательское соглашение программ накладывает кучу ограничений, то GPL, наоборот, даёт свободы. Всего их четыре: право запускать программу, право изучать, как работает программа, право изменять её по собственному желанию, право распространять её и право распространять изменённую версию.
Самое же уникальное свойство GPL заключается в её вирусной природе. Человек, который изменяет и распространяет софт, лицензированный по GPL, обязан и сам прилагать к новой программе исходный код на условиях GPL. То же будет вынужден сделать следующий программист и так далее. Именно поэтому такой софт называют "свободным". Его свобода — обязательное условие.
Вот ещё один очень важный момент: хоть понятие "свободный софт" и включает в себя открытость исходников и бесплатность, но никак не наоборот. Не любая открытая или бесплатная программа свободна в терминах GPL.
Линус Торвальдс с самого начала знал, что не собирается зарабатывать деньги на Linux, эта идея была противна духу его проекта. А ещё он опасался, что кто-то корыстный может перехватить начинание, как это, увы, нередко случается. Именно поэтому в качестве лицензии он взял GPL. А ещё такой выбор позволил ему добавить к системе все те части Unix, которые члены сообщества GNU уже успели переписать и опубликовать по лицензии GPL.
Главное, чего не хватало проекту GNU в тот момент, — это ядра. Столлман полагал, что рано или поздно он сможет заменить ядро Unix собственной разработкой под названием Hurd, но у Торвальдса-то было готовое рабочее ядро! Выбор казался очевидным, и планы развивать Hurd Столлману пришлось отложить. Сейчас, в 2016 году, работа над Hurd по-прежнему не завершена, и проект имеет версию 0.8.
Интересно, что Торвальдс не разделяет радикализма Ричарда Столлмана. Если Столлман считает, что всё ПО в мире должно быть свободным, то Торвальдс убеждён в том, что это выбор каждого. Однако расхождение в идеологических тонкостях делу не помешало. Объединение GNU и ядра Linux дало потрясающий результат. Каждый теперь мог скачивать, использовать и менять на своё усмотрение операционную систему и ничего за это не платить.
В 1992 году ядро Linux было уже достаточно приближено к полноценному Unix, чтобы на нём заработала юниксовская графическая система X Window. Это означало, что теперь можно было запускать программы, работающие с графикой, а не только с текстом.
Огромных усилий Торвальдсу и его добровольным помощникам стоила разработка сетевой подсистемы с поддержкой протокола TCP/IP (на нём работает Интернет и любые современные сети). Это на порядки сложнее, чем эмулятор терминала, с которого начинал Торвальдс, но к концу 1993 года и эта задача была решена.
К 1995 году Linux уже мог конкурировать с профессиональными системами, и его постепенно начали использовать в бизнесе. Это дало дорогу коммерческим дистрибутивам. В качестве яркого примера на ум, конечно, сразу приходит компания Red Hat — она жива и прибыльна по сей день. Но были и другие: VA Linux, Caldera и прочие. Сейчас на описание историй их появления и развития, разделений, слияний, продаж, судебных тягот и крахов мог бы уйти не один том.
Может показаться, что существование "коммерческого Линукса" идёт вразрез с идеологией свободного софта. Но это не так. Исходники того же Red Hat доступны и распространяются по GPL. Инженеры того же Red Hat вносят немалый вклад в развитие ядра Linux и других частей системы, а воспользоваться этими наработками может кто угодно. Зарабатывают такие компании на системной интеграции, разработке решений под ключ и технической поддержке. Как оказалось, свободный софт не только не вредит бизнесу, но открывает массу новых возможностей.
Сильнейший толчок развитию GNU/Linux дало появление Интернета. К середине девяностых веб и электронная коммерция породили нужду в софте, который бы работал на серверах. И для этого идеально годился так называемый стек LAMP — сочетание четырёх продуктов, распространявшихся по свободной лицензии. LAMP — это любой из дистрибутивов Linux, веб-сервер Apache, база данных MySQL и один из скриптовых языков программирования — PHP, Perl или Python (так уж совпало, что все они начинаются на P).
Благодаря LAMP даже небольшая фирма может позволить себе сервер, который открывает дорогу к электронной коммерции и электронному документообороту. Если раньше лицензии на коммерческую ОС и программное обеспечение обошлись бы в тысячи долларов, то теперь всё то же можно получить фактически за цену "железа". Получается, что свободный софт дал любому желающему возможность открыть свой бизнес в Интернете. Это ли не настоящая революция? А уж о том, сколько новых разработок вдохновил пример GNU и Linux, и говорить не приходится.
Большим вопросом до сих пор остаётся популярность Linux на настольных компьютерах. Приверженцы свободного софта вот уже двадцать лет пророчат, что где-то через год простые пользователи начнут сносить Windows и устанавливать на свои компьютеры Linux. Этого год за годом не случается, что, естественно, вызывает насмешки.
Не исключено и то, что через несколько лет Linux перестанет использоваться в операционной системе Android. Недавно стало известно, что в компании Google работают над собственным ядром ОС, которое называется "Фуксия" (Fuchsia). Но будет ли это потерей для Linux?
В этом плане показательна история о том, как Торвальдс однажды общался со Стивом Джобсом. Джобс хотел позвать его работать к себе в Apple, положить в основу Mac OS X свободный софт и привлечь к разработке сообщество. Торвальдс не оценил этот план: да, скрестив Linux и Mac OS X, как предлагал Джобс, можно было бы завоевать неплохую долю пользователей настольных компьютеров. Но доли рынка и завоевания, как оказалось, нисколько не волновали Торвальдса.
Гораздо важнее для создателя Linux было сделать так, чтобы разработка ядра ОС не зависела от какой-то конкретной компании. Ещё его смущала закрытость более высоких уровней Mac OS X, да и с технической точки зрения эта система его не привлекала. Оказалось, что интересы Джобса и Торвальдса лежат в совершенно разных плоскостях. Не поняв друг друга, они разошлись, и слияния двух миров не случилось.
Такой пассивный взгляд на вещи можно считать слабостью, но в то же время именно преданность идеалам даёт силу движению свободного ПО. Так что переживать за будущее GNU и Linux не стоит. Даже если свободный софт не захватит мир, о чём многие так мечтают, он уже серьёзно изменил его и продолжает менять каждый день.