Несколько человек даже предложили стать бета-тестерами.
В итоге разместить ее в Интернете было просто естественно. Я привык обмениваться программами именно так. Поэтому вопрос был только один – на каком этапе я решусь показать ее людям? Или точнее: когда она будет достаточно готова, чтобы мне нечего было стыдиться?
Вообще-то мне хотелось иметь компилятор и настоящую среду, чтобы можно было писать программы прямо в Linux, без помощи Minix. Но я был так горд, когда у меня заработала оболочка gnu, что был готов всем это показать. И еще мне хотелось получить отклики.
К тому моменту, как заработала оболочка, у меня было несколько элементарных бинарников, которые я скомпилировал для операционки. Делать с ними пока было особенно нечего, но уже было видно, что система похожа на Unix. На самом деле она работала, как увечная Unix.
И вот я решился ее выложить. Я не делал публичных объявлений, а просто написал пятерым-десятерым хакерам на личные адреса, что она лежит на FTP-сайте. В числе прочих я написал знаменитому среди фанатов Minix Брюсу Эвансу и Ари Лемке. Я выложил исходники самой Linux и еще несколько бинарников, чтобы можно было хоть что-то делать. Я сказал, что нужно, чтобы запустить все это хозяйство. На машине должна была стоять Minix (версия 386) и нужен был компилятор GCC. Причем на самом деле нужна была моя версия GCC, поэтому ее я тоже выложил.
Существуют правила нумерации версий. Это вопрос психологический. Когда вы считаете, что программа по-настоящему готова – это версия 1.0. А до этого вы нумеруете версии так, чтобы было видно, сколько еще предстоит потрудиться до выпуска 1.0. Из этих соображений я положил на FTP-сайт версию 0.01. Чтобы все знали, что она мало на что пока годится.
Эту дату я хорошо помню: 17 сентября 1991 года.
Не думаю, чтобы ту версию проверяло больше одного-двух человек. Для этого нужно было возиться с установкой специального компилятора, выделить пустой раздел, чтобы использовать его для загрузки, откомпилировать мое ядро и запустить оболочку. А кроме запуска оболочки, делать было особенно нечего. Можно было распечатать исходники – всего 10 000 строк, т.е. меньше ста страниц, если печатать мелким шрифтом. (Сейчас там уже порядка 10 миллионов строк.)
Я стал распространять свою операционку прежде всего, чтобы доказать, что все это не пустая болтовня – я действительно что-то сделал. В Интернете много болтают. О чем бы ни шла речь – об операционке или о сексе – многие в киберпространстве просто вешают лапшу на уши. Поэтому важно после того как ты растрезвонил, что пишешь операционку, иметь возможность сказать: «Вот – я ее и правда сделал. Я не трепло – можете сами посмотреть».
Ари Лемке, который организовал для нее РТР-сайт, невзлюбил название Fгеах. Ему больше нравилось другое рабочее название, которое я использовал – Linux. Поэтому он назвал мой каталог pub/OS/Linux. Признаюсь – я не особенно сопротивлялся. Но инициатива была его. Поэтому я могу честно – или почти честно – сказать, что не был нескромным. Я тогда подумал, а что – хорошее название, и всегда можно будет на кого-нибудь свалить. Что я и делаю.
Как я уже говорил, моя операционка была не очень полезной. Она легко рушилась, если переполнить память или еще что-то не так сделать. Даже если вы ничего плохого не делали, система рушилась после более-менее продолжительного периода работы. Она тогда и не предназначалась для работы. На нее можно было только любоваться. И восхищаться ею.
То есть просто экспонат для группы людей, которые интересуются разработкой операционных систем. Для горстки технарей с узкой специализацией.
Реакция была неизменно положительная, но при этом так же неизменно звучало: «А вот хорошо бы она еще это делала» или «Смотрится классно, но на моем компьютере не работает» .
Помню одно сообщение, где говорилось, что автору очень понравилась моя операционка, он не меньше абзаца описывал, какая она классная. Потом объяснял, что она только чтоуничтожила его жесткий диск и что мой драйвер дисковода с придурью. Даже потеряв все свои файлы, он все равно был настроен очень положительно. Такие сообщения было читать очень приятно. Это был отчет об ошибках в программе, которая все у него вверх дном перевернула.
Именно таких сообщений я и ждал. Я исправил кое-какие глюки (например, система перестала зависать, когда кончалась память). И еще я сделал большой шаг вперед – перенес в нее компилятор GCC, так что можно было компилировать небольшие программы. Теперь пользователям не нужно было перед запуском операционки загружать мой компилятор GCC.
IX.
Вы скорбите о тех временах, когда мужчины были настоящими мужчинами и сами писали драйверы устройств?
Из объявления о выпуске Linux 0.02
В начале октября была выпущена версия 0.02 с исправлением ошибок и добавлением некоторых программ. В ноябре я выпустил версию 0.03.
К концу 1991-го я был уже готов остановиться. Я сделал много интересных вещей. Не все работало идеально, но в программистском мире люди часто теряют интерес к проекту, когда решены основные задачи. Со мной примерно так и было. Кому интересно вылавливать блох? Удержали меня две вещи: во-первых, я нечаянно запортил раздел с Minix, а во-вторых, мне продолжали приходить отклики.
В те времена я загружался в Linux, но использовал Minix как основную среду разработки. Под Linux я в основном получал с университетского компьютера почту и новости с помощью своей программы эмуляции терминала. Поскольку университетская машина была постоянно занята, я написал программу автодозвона. Но в декабре я по ошибке позвонил вместо модема на винчестер. Вместо параметра auto-dial /dev/ttyl (последовательный интерфейс) я указал /dev/hdal (винчестер). В итоге я нечаянно попортил некоторые важные части раздела, где у меня сидела Minix. Теперь я не мог ее загружать.
Это был решающий момент: можно было переустановить Minix или принять вызов и объявить, что Linux может полностью ее заменить. Я написал программы для компиляции Linux внутри нее самой и каждый раз, когда мне требовалась Minix, просто добавлял в Linux нужную функцию. Это большой шаг вперед, когда отказываешься от исходной базовой среды и переходишь на самообеспечение. Поэтому в конце ноября я выпустил версию 0.10. А еще через несколько недель – 0.11.