Как я уже говорил, моя операционка была не очень полезной. Она легко рушилась, если переполнить память или еще что-то не так сделать. Даже если вы ничего плохого не делали, система рушилась после более-менее продолжительного периода работы. Она тогда и не предназначалась для работы. На нее можно было только любоваться. И восхищаться ею.
То есть просто экспонат для группы людей, которые интересуются разработкой операционных систем. Для горстки технарей с узкой специализацией.
Реакция была неизменно положительная, но при этом так же неизменно звучало: «А вот хорошо бы она еще это делала» или «Смотрится классно, но на моем компьютере не работает».
Помню одно сообщение, где говорилось, что автору очень понравилась моя операционка, он не меньше абзаца описывал, какая она классная. Потом объяснял, что она только что уничтожила его жесткий диск и что мой драйвер дисковода с придурью. Даже потеряв все свои файлы, он все равно был настроен очень положительно. Такие сообщения было читать очень приятно. Это был отчет об ошибках в программе, которая все у него вверх дном перевернула.
Именно таких сообщений я и ждал. Я исправил кое-какие глюки (например, система перестала зависать, когда кончалась память). И еще я сделал большой шаг вперед – перенес в нее компилятор GCC, так что можно было компилировать небольшие программы. Теперь пользователям не нужно было перед запуском операционки загружать мой компилятор GCC.
IX
Вы скорбите о тех временах, когда мужчины были настоящими мужчинами и сами писали драйверы устройств?
Из объявления о выпуске Linux 0.02В начале октября была выпущена версия 0.02 с исправлением ошибок и добавлением некоторых программ. В ноябре я выпустил версию 0.03.
К концу 1991-го я был уже готов остановиться. Я сделал много интересных вещей. Не все работало идеально, но в программистском мире люди часто теряют интерес к проекту, когда решены основные задачи. Со мной примерно так и было. Кому интересно вылавливать блох? Удержали меня две вещи: во-первых, я нечаянно запортил раздел с Minix, а во-вторых, мне продолжали приходить отклики.
В те времена я загружался в Linux, но использовал Minix как основную среду разработки. Под Linux я в основном получал с университетского компьютера почту и новости с помощью своей программы эмуляции терминала. Поскольку университетская машина была постоянно занята, я написал программу автодозвона. Но в декабре я по ошибке позвонил вместо модема на винчестер. Вместо параметра auto-dial /dev/tty1 (последовательный интерфейс) я указал /dev/hda1 (винчестер). В итоге я нечаянно попортил некоторые важные части раздела, где у меня сидела Minix. Теперь я не мог ее загружать.
Это был решающий момент: можно было переустановить Minix или принять вызов и объявить, что Linux может полностью ее заменить. Я написал программы для компиляции Linux внутри нее самой и каждый раз, когда мне требовалась Minix, просто добавлял в Linux нужную функцию. Это большой шаг вперед, когда отказываешься от исходной базовой среды и переходишь на самообеспечение. Поэтому в конце ноября я выпустил версию 0.10. А еще через несколько недель – 0.11.
Вот тут системой стали по-настоящему пользоваться несколько человек. До этого мне приходили сообщения только о мелких ошибках – достаточно было исправить одну строку. Теперь же мне стали присылать заявки на новые функции. Помню, мне пришлось выйти из дома, чтобы увеличить ОЗУ с 4 до 8 мегабайт. Еще пришлось купить сопроцессор для операций с плавающей точкой, потому что некоторые спрашивали, поддерживает ли Linux сопроцессоры. Новое железо позволило проводить вычисления с плавающей точкой.
Помню, в декабре мне написал один немец. Он пытался скомпилировать ядро, но не мог запустить GCC, потому что у него было всего два мега, а компилятору тогда было нужно больше мега. Он спрашивал, нельзя ли компилировать Linux какой-то другой программой, которая не требует столько памяти. И хотя у меня таких проблем не было, я решил написать новую функцию специально для него. Это называется страничной подкачкой на диск и дает возможность в дополнение к имеющейся памяти использовать винчестер. Дело было в канун Рождества 1991 года. Помню, как 23 декабря старался реализовать подкачку. К 24-му она вроде заработала, но время от времени сыпалась. Наконец, 25-го все было готово. Это была первая возможность, которую я добавил по чужой заявке.
Я очень этим гордился.
Конечно, я ничего не сказал родным, когда мы собрались у папиной мамы (Фармор) на праздничный обед с окороком и селедкой. Каждый день полку линуксоидов прибывало, и я стал получать сообщения из таких стран, в которых мечтал побывать (вроде Австралии и США). Не знаю почему, но мне не хотелось обсуждать эти дела с родителями, сестрой или другими родственниками. Они же не разбирались в компьютерах. Наверное, я думал, что они ничего не поймут.
С их точки зрения, я просто занимал телефон своим модемом. Раньше в Хельсинки ночью был пониженный тариф, поэтому я старался большую часть делать дома по ночам. Но иногда я занимал телефон целый день. Я пытался раздобыть второй номер, но мы жили в старом доме, и запасных линий у них не было, а новые проводить они не собирались. В то время Сара только и делала, что разговаривала с друзьями по телефону. По крайней мере, мне так казалось. Поэтому у нас периодически возникали стычки. Виртуальные. Во время ее разговоров я принимался дозваниваться модемом, и у нее в трубке слышалось звяканье. Это ее раздражало, но так я давал ей понять, что мне очень-очень нужно считать почту. Я и не говорю, что был хорошим братом.
Подкачка на диск была довольно значительной вещью – в Minix ее не было. Я включил ее в версию 0.12, выпущенную в первую неделю января 1992-го. Linux тут же стали сравнивать не только с Minix, но и с Coherent, небольшой Unix-системой, выпущенной компанией Mark Williams. Добавление подкачки сразу вывело Linux вперед.
Тут-то и начался ее стремительный взлет. Люди стали переходить от Minix к Linux. В то время Linux еще многого не умела из того, что умела Minix, но самые ходовые вещи в ней были. Да еще эта новая возможность, которую все сразу оценили: подкачка позволяла запускать такие большие программы, для которых фактически не было памяти. Когда память кончалась, можно было взять использованный кусок, сохранить его на винт, запомнить, куда, и снова использовать кусок памяти. Это было важным событием в начале 1992 года.
Именно в январе пользоваться Linux стали не только те 5, 10, 20 человек, с кем я переписывался и кого знал по именам, но и сотни неизвестных мне людей. Среди пользователей Linux появились незнакомцы, и это было прикольно.
Примерно в это время по Интернету гуляла утка. Какой-то мальчик по имени Крейг якобы умирал от рака, и люди рассылали по цепочке письма, призывавшие поддержать его, послав ему открытку. Похоже, это был просто черный юмор: не думаю, что Крейг вообще существовал, а тем более болел раком. Но этот призыв породил миллионы открыток. Поэтому я – наполовину в шутку – попросил пользователей Linux присылать мне не деньги, а открытки. Это была своего рода пародия на цепочные рассылки («О боже, неужели еще один мейл с просьбой слать открытки?»). В мире PC тогда были очень популярны «шаровары» (условно-бесплатные программы): скачал программу – пошли автору долларов 10. Меня многие спрашивали, не послать ли мне долларов тридцать. Нужно было что-то ответить.
Оглядываясь назад, я понимаю, что деньги не помешали бы. На мне висело тысяч пять долларов в студенческих ссудах и примерно 50 долларов в месяц надо было выкладывать за компьютер. Остальные расходы шли в основном на пиццу и пиво. Но Linux отнимала у меня столько времени, что я очень редко куда-нибудь выходил – раз в неделю, не чаще. На девушек мне деньги не требовались, но на дополнительные железки пригодились бы. Хотя можно было обойтись и без них. Возможно, другой сын попросил бы за свою программу денег, чтобы помочь оплатить квартирные расходы своей одинокой работающей матери. Мне это и в голову не пришло. Можете меня судить.