Торвальдс, придя на мероприятие из соседнего Хельсинкского университета, смотрит на Столлмана с удивлением. “Я впервые в жизни увидел стереотипного хакера, длинноволосого и бородатого, – вспоминает Торвальдс в своей автобиографии 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.