Выбрать главу

Торвальдс, придя на мероприятие из соседнего Хельсинкского университета, смотрит на Столлмана с удивлением. “Я впервые в жизни увидел стереотипного хакера, длинноволосого и бородатого, – вспоминает Торвальдс в своей автобиографии 2001 года, – у нас в Хельсинки я таких не встречал”. [107]

Линуса не слишком впечатляет “социально-политическая” сторона выступления Столлмана, его внимание привлекает кое-что другое: утверждение Ричарда, что ни один программист не пишет безошибочный код, и что даже если отдельные пользователи не хотят улучшать программу под свои задачи, любую программу можно значительно улучшить коллективно. Свободно делясь кодом программ, хакеры ставят совершенствование ПО выше любых эгоистичных мотивов вроде алчности или тщеславия.

Как и многие программисты его поколения, Торвальдс вырос не на мейнфреймах типа IBM 7094, а на разнородном ассортименте домашних компьютеров. Став студентом, Линус перешёл от программирования на персональном компьютере к программированию для Unix на университетском MicroVAX. Это восхождение по компьютерной лестнице даёт Торвальдсу несколько иное представление об ограничениях доступа. Если для Столлмана это были бюрократия и иерархия, то для Торвальдса – географическое положение и суровая северная зима. Ведь чтобы поработать на Unix, Линусу приходилось идти по морозному городу в университет. Поэтому очень скоро он начинает искать способы дотянуться до Unix из своей тёплой домашней комнаты.

Торвальдс использует Minix, компактную несвободную (на тот момент, сейчас Minix – свободное ПО) операционную систему, которую разработал профессор Амстердамского свободного университета Эндрю Таненбаум в качестве учебного пособия. Она включала в себя несвободный компилятор Free University Compiler Kit и ряд утилит вроде тех, к написанию которых Таненбаум издевательски пригласил Столлмана в 1983 году. [108]

Minix вполне умещается в память IBM PC 386 Торвальдса, но учебная система из него получается куда лучше, чем повседневная. Также в Minix нет эмулятора терминала, который отражал бы настоящий терминал, и позволял бы Линусу подключаться к MicroVAX из дома.

В начале 1991 года Торвальдс начинает разрабатывать эмулятор терминала, используя Minix, но разрабатывает так, чтобы эмулятор запускался как самодостаточная программа, не требуя запуска Minix. В процессе разработки он даёт эмулятору права на доступ к оборудованию компьютера. Линус называет свой эмулятор “GNU/Emacs мира эмуляторов терминала”. [109] http://lib.ru/LINUXGUIDE/torvalds_jast_for_fun.txt[110]

Поскольку в Minix нет многих важных функций, Торвальдс добавляет их к своему эмулятору терминала, создавая что-то вроде ядра, сравнимого с Minix, только монолитного. Окрылённый успехом, он запрашивает в посвящённой Minix группе Usenet копию стандартов POSIX, которым следуют все совместимые с Unix ядра.[111] А несколько недель спустя Линус уже имеет на руках полноценное ядро, которое он собирает в систему с некоторыми программами GNU, адаптировав их к своему ядру. После чего размещает в Usenet сообщение, напоминающее сообщение Столлмана 1983 года:

Привет всем, кто использует minix-

Я делаю операционную систему (бесплатную) для 386 (486) АТ-клонов (это просто хобби, я не замахиваюсь на масштабы и профессионализм gnu). Занимаюсь этим с апреля, и сейчас она почти готова. Хотелось бы услышать ваши отзывы, что вам нравится/не нравится в minix, потому что моя ОС чем-то похожа на неё (та же физическая структура файловой системы (по практическим причинам) в том числе). Я уже портировал bash (1.08) и gcc (1.40)…[112]

Сообщение не вызывает большого интереса, и через несколько месяцев Торвальдс выкладывает на FTP-сервер версию 0.01 своего ядра – самую раннюю версию, пригодную для опубликования. Ядру нужно дать название. У себя на компьютере Линус хранит его под названием Linux, следуя принятому в среде Unix обычаю давать названия с буквой “икс” на конце. Под таким же названием он выкладывает ядро на FTP-сервер, но через пару часов, считая такое название слишком “эгоистичным”, меняет его на Freax. Администратор FTP-сервера видит это и меняет название обратно на Linux.

Торвальдс сказал, что пишет бесплатную операционную систему, и его сравнение с GNU подсказывает, что он имел в виду полноценную операционную систему. На самом деле, он написал ядро, очень чистое и простое. У Линуса не было нужды писать что-то сверх этого, потому что он знал, что разработчики проекта GNU и других свободных проектов уже создали все нужные компоненты. Проект GNU хотел законченную операционную систему, а это значило, что все созданные компоненты должны были работать друг с другом. Работая над ядром, Торвальдс (и его единомышленники впоследствии) именно это и сделал – адаптировал свободные программы к своему ядру.

вернуться

107

Линус Торвальдс, Дэвид Даймонд, Просто удовольствия ради: Рассказ нечаянного революционера http://lib.ru/LINUXGUIDE/torvalds_jast_for_fun.txt[107]. Эта книга довольно точно рассказывает о жизни Торвальдса, но не очень точна в отношении Столлмана. Например, в ней говорится, что Столлман “хочет, чтобы у всего был открытый исходный код”, или что он “жалуется на людей, не использующих GPL”. На самом деле же Столлман продвигает свободное ПО, а не открытое, и признаёт этичными все свободные лицензии, а не только GPL.

вернуться

108

Таненбаум в своей книге “Операционные системы: разработка и реализация” называет Minix операционной системой, но в книге обсуждается только та часть системы, что соответствует ядру в Unix. У общепринятого термина “операционная система” есть 2 значения, и одно из них в терминологии Unix означает только ядро. А в Minix эта часть состоит из микроядра и запущенных на нём серверов, что напоминает систему GNU Hurd с ядром Mach. Микроядро в совокупности с серверами соответствуют ядру Unix. Но книга Таненбаума под словом “ядро” подразумевает только микроядро и ничего больше.

вернуться

109

Просто удовольствия ради: Рассказ нечаянного революционера

вернуться

110

http://lib.ru/LINUXGUIDE/torvalds_jast_for_fun.txt

вернуться

111

Позже стандарты POSIX расширили, включив в них множество возможностей командной строки, но в 1991 году их ещё не было.

вернуться

112

Просто удовольствия ради: Рассказ нечаянного революционера