25 августа 1991 года, ровно 31 год назад, в USENET-конференции comp.os.minix появилось сообщение от молодого человека по имени Линус Бенедикт Торвальдс о том, что он создал бесплатную операционную систему для 386 и 486-совместимых ПК, с отдельным примечанием: в качестве хобби, новинка не претендует на лавры серьезного профессионального проекта вроде GNU. Так началась история Linux. Официальные источники гласят, что к творчеству Торвальдса сподвигли лицензионные и функциональные ограничения ОС MINIX, в которой он тогда работал. Кое-где даже упоминается, что он вдохновлялся книгой создателя MINIX профессора Эндрю Таненбаума «Операционные системы: разработка и реализация» (Operating Systems: Design and Implementation). Однако изучая историю Linux, я случайно наткнулся на воспоминания однокурсника Торвальдса — Ларса Вирзениуса, вовлеченного в разработку Linux с самых первых дней существования этого проекта. Ларс рассказывал эту историю из «первых рук», причем излагал ее немного не так, как она описана в «Википедии».



То самое историческое сообщение в группе comp.os.minix

В 1988 году Ларс Вирзениус окончил среднюю школу и поступил в Хельсинкский университет на факультет информатики. В сентябре его пригласили в клуб для шведоговорящих студентов «Спектрум», где состояли ребята, интересующиеся информатикой, физикой, химией и другими точными науками. Там он и познакомился с Линусом Торвальдсом. По воспоминаниям Вирзениуса, в университете было несколько компьютерных классов, в которых стояли «маки» и персоналки с MS-DOS, а также терминалы, подключенные к мейнфрейму VAX/VMS. Среди этого великолепия обнаружился один-единственный старенький компьютер от DEC с операционной системой Ultrix — одной из версий BSD Unix. MS-DOS не нравилась Ларсу своими ограниченными возможностями, графический интерфейс Mac OS показался ему неудобным, и он оккупировал машину с Ultrix. Однажды, работая в терминале, Вирзениус опечатался в команде «rm», набрав вместо нее «rn» — и совершенно случайно открыл для себя мир конференций USENET, где общались тысячи IT-специалистов и компьютерных энтузиастов с разных уголков нашей планеты. Своей необычной находкой Ларс поспешил поделиться с Линусом Торвальдсом.

Один из циклов в университете Хельсинки был посвящен программированию на С в Unix. К тому моменту Вирзениус неплохо знал С, Торвальдс тоже умел программировать на этом языке, при этом оба были постоянными участниками конференции comp.lang.c, сообщения которой они читали с университетского компьютера DEC. Поэтому содержание лекций казалось им не слишком интересным — значительная часть теории была им уже знакома. Ларс и Линус сдавали лабораторные работы экстерном, соревнуясь между собой, кто уложит очередную программу из учебного задания в меньшее количество строк кода. Гораздо большее удовольствие друзьям доставляли эксперименты с университетской машиной: Ларс разработал аналог демона Cron, чтобы выгружать почту в USENET-конференции по расписанию, а Линус написал код для поддержки Postscript-принтера в Ultrix.

На рождество 1990 года Торвальдс решил сделать себе подарок: он взял льготный студенческий кредит и 5 января купил 386-й компьютер. На этот компьютер Торвальдс действительно установил MINIX, но основной проблемой, которая злила и бесила его, было отсутствие в этой системе нормальной поддержки многозадачности. Больше всего Торвальдс хотел организовать модемный доступ со своей личной «трёшки» на университетский компьютер DEC, чтобы комфортно читать из дома любимые конференции USENET, но ни одна из существовавших тогда терминальных программ его не устраивала — в каждой чего-нибудь, да не хватало. Перепробовав кучу вариантов, Торвальдс начал писать собственный терминал. Причем он пошел нестандартным путем: вместо того чтобы использовать довольно ограниченные возможности MINIX, он решил, что его программа будет работать с «железом» напрямую, не опираясь на ресурсы ОС. Первая версия поддерживала два потока: один считывал нажатия клавиш и передавал их в последовательный порт, второй слушал последовательный порт и транслировал данные в терминал. После того, как Торвальдс добавил в свою программу поддержку набора команд VT-100, используемых в терминалах DEC, у него получилась софтина, вполне пригодная для обмена сообщениями в конференциях USENET из дома.

Однако настоящий перфекционист редко останавливается на достигнутом — Торвальдс принялся совершенствовать терминал, добавляя туда поддержку команд sh и функций многозадачности, начав с переключения между потоками. Линус написал подсистему вывода сообщений USENET на принтер и модуль управления памятью, и уже не мог остановиться. Терминал стремительно разрастался, превращаясь в ядро новой ОС: вскоре он обзавелся собственным драйвером жесткого диска и драйверами файловой системы, — из-за того, что Линусу нужно было как-то сохранять на диск скачанные из USENET через терминал файлы. Этими драйверами и модулями Торвальдс понемногу заменял стандартные компоненты операционной системы. Постепенно, день ото дня, MINIX на его компьютере мутировал в Linux. Правда, изначально проект назывался по-другому: Торвальдс придумал смешное словечко «Freax» — сборную солянку из слов «Free» «Freak» и «Unix», и попросил администратора сайта ftp.funet.fi Ари Леммке выложить на этот портал исходники его терминала. Но Леммке решил назвать папку на сервере по имени автора софта, добавив к нему окончание от «Unix» — получилось «Linux». Название прижилось, хотя строку «Freax» все еще можно найти в makefile ранних версий ядра Linux.

Ларс Вирзениус вспоминает, что первую версию Linux невозможно было установить в обычном понимании этого слова. На компьютере Торвальдса Linux зародился сам собой путем добавления и замены различных модулей MINIX, а первая попытка поставить систему на компьютер Вирзениуса не увенчалась успехом. Торвальдс возился несколько часов, при этом установка потребовала ручного редактирования секторов диска в шестнадцатеричном формате. В конце концов Линус справился с этой задачей, и в итоге сумел собрать на дискете дистрибутив, пригодный для инсталляции на других ПК почти без применения черной магии.

Зимой 1991 года Торвальдс добавил в Linux поддержку виртуальной памяти, что значительно повысило практическую пользу ОС. Тогда же вместе с Вирзениусом он создал собственную группу в USENET — alt.os.linux, которая стала местом притяжения первых пользователей и евангелистов новой системы. В 1992 году был запущен проект документирования Linux — он начался с файла README, который Ларс написал лично, чтобы помочь людям самостоятельно скомпилировать ядро. Регулярно возникающие технические сбои только подстегивали процесс разработки. Так, по словам Вирзениуса, проблемы в сетевом стеке Linux приводили к генерации паразитного трафика, из-за чего Linux запретили использовать в университетской сети. Это заставило Торвальдса вплотную заняться решением данного вопроса: как следствие, реализация стека протоколов TCP/IP была переписана практически полностью в очень сжатые сроки. У какой-нибудь корпорации вроде Microsoft на это ушли бы месяцы.

В 1997 году Линус Торвальдс покинул университет, был принят на работу в Transmeta и переехал в США, после чего Ларс Вирзениус потерял его из вида. Но его рассказ немного проясняет историю появления Linux, добавляя в нее несколько новых интересных деталей. Получается, Linux появился на свет не из-за амбиций разработчика, желавшего сделать «MINIX лучше самого MINIX», а как следствие скромного желания читать почту в любимых конференциях, не покидая пределы родного дома. Как говорится, великие вещи порой рождаются случайным образом, но для их появления на свет все равно нужны талант и упорство.

Комментарии (34)


  1. Nedder
    25.08.2022 08:08
    +4

    Ждал в конце статьи абзац, что это Ларс написал Linux, а Линус украл его и присвоил себе все лавры. ;)


    1. CyberPaul Автор
      25.08.2022 08:16
      +1

      Все не настолько плохо, хотя Ларс написал для первых релизов какой-то код, но в этих своих мемуарах он не уточняет, какой.


    1. Tim_86
      25.08.2022 21:27
      +1

      Linux писали (и продолжают писать) тысячи разработчиков (Торвальдс был просто первым, что не умаляет его заслуг), нет?


      1. alan008
        26.08.2022 09:41
        +1

        Если верить интернетам, в 1994 Линус выпустил первый стабильный релиз ядра, размер которого на тот момент достиг 176 тысяч строк кода (совсем немного по современным меркам). Текущий размер ядра Линукс — около 30 миллионов строк. Понятно, что всё это написал не сам Торвальдс, а тысячи разработчиков. Да и вообще основной размер там — драйверы разных устройств.


  1. engine9
    25.08.2022 09:35
    +1

    Кто нибудь самостоятельно пробовал устанавливать современные специализированные дистрибутивы на ЭВМ с 386 процессором?


    1. CyberPaul Автор
      25.08.2022 10:13
      +1

      Хороная тема для статьи! Осталось только где-то добыть машину с i386 и подобрать дистрибутив.


      1. engine9
        25.08.2022 17:53

        А вот у меня есть, предположительно железо там живое, т.к. материнка стартует и даже пищит. Правда, выдаёт некий код из длинных и коротких сигналов. Возможно из за того, что не подключен монитор.

        DOS для меня не является ностальгической темой, т.к. я в нём не работал. А вот накатить линукс на такую ЭВМ было бы очень интересным квестом.


      1. engine9
        25.08.2022 22:38

        Возможно, я смогу сделать установку удалённо под вашим руководством.


    1. MinimumLaw
      25.08.2022 10:29
      +1

      Ну как сказать... Я ставил Windows 95 (боюсь соврать, но вполне возможно OSR2) на amd386dx не помню сколько с 4 мегабайтами ОЗУ. И Linux на него же (не помню конкретный дистрибутив - скорее всего Slackware, но ядро там было 2.4 какое-то). На тот момент они уже были не сильно современными, но и к винтажу еще не относились. Что-то типа современной Windows 8.2.

      В целом, я даже немного пописал на ASM'е непосредственно под железо с промышленным INTEL'овским 386-ой камнем (даже в защищенном режиме). И даже игрался с AMD'шными ELAN'ами всех серий (AMD ELAN sc3x0/4x0/5x0). Но тогда меня больше манила магия схемотехники и запах канифоли. В программисты я ушел немного позже. Потому делалось это именно "Just for fun", а не с целью применения в ответственных решениях.

      Что до сегодня, то некоторым аналогом такого шага вполне можно считать "поднятие" системы на каком-нить не очень родном железе типа MIPS, RISC-V, SPARC или чем-то похожем. Там, вполне вероятно, придется и с секторами поdjtdfnm, и на ассемблере покодить. Только вот вопрос - есть ли теперь желающие этим заниматься "Just for fun"? Но это уже совсем другая история (с)


      1. CyberPaul Автор
        25.08.2022 10:58

        Так на Хабре регулярно появляются статьи и мануалы о попытках взгромоздить разные ОС на разные архитетуры. В "Хакере" помнится была не так давно статья про установку какого-то современного дистрибутива Linux на древний мак с PowerPC. Ссылку сейчас не найду уже.


        1. MinimumLaw
          25.08.2022 11:22

          Так ведь я ровно про то же. Мануалы на Хабре - это в 99.99% повторение рекомендаций разработчика чипа и портирование загрузчика с уже готовой архитектуры. А вот когда производитель чипа кроме Reference Manual ничего не дает - вот тут начинается самое интересное.

          Другое дело, что занимаются этим теперь не "Just for fun", а за зарплату. В лучшем случае в какой-нить DENX, а скорее непосредственно у разработчиков чипа в Samsung, Broadcom, Atmel, NXP и прочему легиону. Ибо чип без Linux, Andoid или Windows уже никому не интересен.

          Много ли людей, способных добавить новую архитектуру процессора в тот же U-Boot или Linux? Думаю совсем немного. Чуть больше тех, кто может сделать базовую поддержку (запустить ядро и сделать вывод на консоль хоть какого-то типа). Даже тех, кто напишет драйвера под все эти SPI/USB/PCIе контроллеры очень мало. А без этого никаких мануалов на Хабре бы и не появилось. Да что там - людей способных толково написать драйвер под USB сетевую карту сильно меньше, чем тех кто активно пропагандирует JavaScript (ничего лично - исключительно мое оценочное суждение, надиктованное моими тараканами).

          Впрочем, чего тут - статей по ад низкоуровневого программирования хватает. Ситуация эта имеет вполне себе обоснованные причины. Осталось только дождаться чем это все закончится в пределе. Пока все идет к полнейшей унификации. Может это и не плохо, но... Я еще помню союз и телевизоры с унифицированными схемами, которые отличались только дизайном корпуса. Но посмотрим. Активно на этот процесс влиять крайне тяжело.


      1. FSA
        25.08.2022 11:14
        +1

        OSR2 у меня ставилась на 386DX с 4 мегабайтами оперативки аж 3 с лишним часа :) Так что вспоминайте сколько сами ставили :-D


        1. MinimumLaw
          25.08.2022 11:24

          Да что-то около того. Лет-то прошло... Поди теперь упомни. Да и не наблюдал я за ней. Как копирование началось можно на работу уходить. А вернулся - еще полчаса и вуаля - рабочий стол готов.


          1. DMGarikk
            25.08.2022 11:35

            я на ti486DLC-40 с 4 мегабайтами ставил osr2, чёт не помню чтобы полдня ждал… долго да, но не 3 часа…


            1. FSA
              25.08.2022 12:18

              У вас как минимум процессор помощнее, так что у вас буст по времени распаковки мог быть. 486 уже мог в моно режиме воспроизводить MP3 файлы. 386 намного скромнее.


    1. DistortNeo
      25.08.2022 11:40
      +1

      Учитывая, что уже 10 лет как поддержка 386 выпилена из ядра, будет сложновато.
      https://www.phoronix.com/news/MTI0OTg


      1. CyberPaul Автор
        25.08.2022 11:43
        +1

        Вот уж где, а в Линуксе заменить ядро никогда не было проблемой.


  1. Zver89GAV
    25.08.2022 10:04
    +2

    Будь здоров пингвин! =)


  1. Aleksandr-JS-Developer
    25.08.2022 10:11
    +5

    Кто бы знал, что опечатка может привести к столь масштабным и хорошим последствиям


  1. saipr
    25.08.2022 10:15
    +1

    На компьютере Торвальдса Linux зародился сам собой путем добавления и замены различных модулей MINIX,

    Мы тоже примерно в это же время большие надежды возлагали не только на Unix, но и на Minix. Мы его успешно использовали на первых отечественных ПЭВМ ЕС-1840 и также пытались его развивать. В 1991 году мы имели ОС Minix, ОС Linux и ОС МИНОС. При этом, две последние так или иначе опирались на опыт Minix.


  1. igorzakhar
    25.08.2022 10:24
    +1

    Кое-где даже упоминается, что он вдохновлялся книгой создателя MINIX профессора Эндрю Таненбаума «Операционные системы: разработка и реализация» (Operating Systems: Design and Implementation). 

    "Примерно через год, когда Линус приехал в Нидерланды на свое первое публичное выступление, он отправился в университет, где преподавал Таненбаум, надеясь получить от него автограф на своем экземпляре книги «Проектирование и реализация операционных систем» – книги, которая перевернула его жизнь. Он ждал под дверью, но Таненбаум так и не появился. Профессор был в отъезде, и встреча не состоялась."

    "Just for Fun. Рассказ нечаянного революционера" Линус Торвальдс, Дэвид Даймонд


    1. CyberPaul Автор
      25.08.2022 10:53
      +1

      Я слышал, что Танненбаум раскритиковал Линукс в USENET, заявив что-то в том духе, что "в наше время ОС с монолитным ядром создают только недалёкие люди, и поэтому Линукс устарел". И вроде как эта дискуссия переросла в холивар с флеймом :).


      1. igorzakhar
        25.08.2022 11:03
        +1

        Да, в книге этому посвящена целая глава "Minix и Linux" и вставлены письма из их переписки.


    1. Ostrie_Brevna
      25.08.2022 10:57
      +4

      Кстати, упомянутую книгу "Just for Fun. Рассказ нечаянного революционера" Линус Торвальдс, Дэвид Даймонд очень рекомендую, она развёрнуто и с деталями рассказывает то, что кратко пересказано в данной хабрастатье (что никак не уменьшает ценности данной хабрастатьи)


  1. axe_chita
    25.08.2022 10:28
    +5

    Хочу сказать тост!
    «Вот была бы у Линуса хорошая терминальная программа, то мир бы никогда не увидел Linux. Но из-за отсутствия нужной ему, чисто утилитарной, программы Линус взял и написал ОС!
    Так выпьем за плохой код, который отбивает желание писать программы у бесталанных программистов, а гениальным программистом дает совершить невозможное чудо!»


    1. Nedder
      25.08.2022 10:40
      +3

      Если бы братья Райт не сделали Wright Flyer, мир так бы никогда не увидел летательного аппарата тяжелее воздуха? Нет конечно, появился бы "Linux" под другим названием.


      1. DMGarikk
        25.08.2022 11:23
        +1

        вот вот, freebsd хоть и вышла после но врятли под впечатлением от linux


        1. oWeRQ
          25.08.2022 14:03
          +2

          Если не ошибаюсь, в той же "Just for Fun" было написано, что появись 386BSD буквально на год раньше и линукса бы вероятно не было.


      1. axe_chita
        25.08.2022 13:52
        +3

        Братьям Райт просто повезло, и они оказались первыми. На самом деле сумма технологий для осуществления полетов, уже дошла до точки кристаллизации, и осталась малость — бросить в перенасыщенный раствор затравку. Что братья и сделали.
        И ОС подобная Linux тоже появилась бы, такого типа ОС была востребована.
        Но это уже был-бы не Linux, разве не так?


        1. DMGarikk
          25.08.2022 14:57

          Но это уже был-бы не Linux, разве не так?

          даже если и так, нам то что с того? этот фактор интересен разве что самому Линусу, точно также как вас не волнуют 100500 исчезнувших в небытие проектов которые возможно были более интересны.
          Сам по себе линукс ничем особо не примечателен (будучи yet another unix-like os на тот момент), ценность имеет разве что его лицензия… но тут уже больше вопрос в том кто более 'виноват в популярности', Линус или RMS ;) выкати Линус свою ОС под BSD-like лицензией, и может всё было бы по другому


          1. axe_chita
            25.08.2022 19:57

            Ну UNIX-ов (и подобных систем) в 80-90 на РС было очень много, тот же DOS бодро маршировал в UNIX-world с лозунгом «Пионер не забудь, в UNIX-ы ты держишь путь»!
            Вот только, у них всех был один маааааленький недостаток. Они были несвободными, более того они были коммерческими продуктами с очень ощутимой ценой для обычного пользователя. То есть, сложилась «революционная ситуация», низы уже не хотели жить по старому, а верхи не могли предложить что-то новое. И вот в этой закипающей «революционной ситуации» и появился Линус Торвальдс, нечаянный революционер, который совершил революцию Just for Fun. У низов появилось знамя, а Линус, неожиданно для себя, стал вождем революции.


  1. SuperTEHb
    25.08.2022 10:48
    +2

    Про развитие и немного создание Линукса в частности и открытого ПО в целом есть фильм Revolution OS. И даже в переводе за авторством Дмитрия Бачило. Осмелюсь порекомендовать тем, кому статья показалась интересной.


    1. CyberPaul Автор
      25.08.2022 10:54
      +1

      Обязательно посмотрю, спасибо. В свое время "Пираты Кремниевой долины" очень зашли!


  1. Dolios
    25.08.2022 11:52
    +3

    Just for Fun


    Так называется книга, в которой Торвальдс рассказывает про всё это..