"Ради удовольствия." - читать интересную книгу автора (Торвальдс Л., Даймонд Д.)

решать задачу по-другому -- правильно.
Очень трудно объяснить, что интересного в том, чтобы биться головой об
стену три дня подряд, не зная, как лучше, красивее решить задачу. Но когда
ты нашел решение -- это чувство нельзя сравнить ни с чем в мире.






VI.

Мой эмулятор терминала обрастал наворотами. Я регулярно использовал
его, чтобы подключиться к университетскому компьютеру и получить почту или
поучаствовать в конференции по Minix. Беда была в том, что я хотел скачивать
и закачивать файлы. То есть мне нужно было уметь писать на диск. Для этого
моей программе эмуляции нужен был драйвер дисковода. А еще ей был нужен
драйвер файловой системы, чтобы она могла вникать в организацию диска и
записывать скачиваемые файлы.
Тут я чуть было не сдался: мне показалось, что возни будет слишком
много и дело того не стоит. Но заняться все равно было особенно нечем. В
университете той весной не было ничего сложного. Развлекался я только раз в
неделю -- по средам ходил на собрания "Спектрума". Я был настолько
антиобщественным животным, что это была для меня единственная возможность
отвлечься от учебы и программирования. Без этих вечеринок я был бы в ту
весну полным отшельником, а так -- был почти отшельником. "Спектрум"
открывал мне путь к общению, поэтому я вряд ли пропустил хоть одну встречу.
Эти собрания были для меня настолько важны, что иногда я терял сон в
ожидании очередного вечера, надеясь, что не буду там постоянно думать о том,
какой я неконтактный, какой у меня нос и что у меня нет девушки. Это все
стандартные для хакеров заморочки.
Одним словом, жизнь моя не блистала разнообразием. А разработка
драйверов для дисковода и файловой системы казалась интересным делом. И я
решил им заняться. Написал драйвер дисковода. А поскольку я хотел записывать
файлы в файловую систему Minix, да к тому же эта система была хорошо
документирована, я сделал свою файловую систему совместимой с системой
Minix. Таким образом я мог читать файлы, созданные в Minix, и писать файлы
на тот же диск, так что Minix могла читать файлы, созданные моей программой
эмуляции терминала.
Я крутился как белка в колесе: программирование -- сон --
программирование -- еда (соленые сухарики) -- программирование -- сон --
программирование -- душ (на скорую руку) -- программирование. К концу работы
стало ясно, что моя программа превращается в операционную систему. И я стал
думать о ней не как о программе эмуляции терминала, а как об операционной
системе. Этот сдвиг произошел, вероятно, в дурмане одного из затянувшихся
сеансов программирования. Было это днем или ночью? Не знаю. Сижу я в своем
старом халате и работаю с программой эмуляции, снабженной дополнительными
функциями. А потом вдруг понимаю, что этих функций стало так много, что
программа превратилась в рабочую версию операционной системы.
Я называл ее "программой эмуляции терминала типа gnu-emacs". Gnu-emacs