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

мир, я каждый раз рисковал, что меня столкнет в снег какая-нибудь старушка,
которой бы лучше сидеть дома и варить щи или смотреть по телику хоккей и
вязать, а не слоняться по Маннерхейминти. Весь тот месяц я играл в "Принца
Персии" на новом компьютере. Или читал книжки, чтобы понять, как он
работает.
Наконец, в пятницу днем Minix прибыла, и в тот же вечер я ее установил.
Для этого пришлось вставить в компьютер поочередно шестнадцать дискет. Все
выходные ушли на освоение новой системы. Я разобрался в ее достоинствах и --
что важнее -- в недостатках. Их я старался компенсировать, перенося домой те
программы, к которым привык в университете. Примерно за месяц я обжился
полностью.
Эндрю Таненбаум -- тот амстердамский профессор, который написал Minix,
-- хотел, чтобы система оставалась учебным инструментом. Поэтому она была
намеренно изуродована. Существовали заплатки -- то есть усовершенствования к
Minix, в том числе знаменитая заплатка австралийского хакера Брюса Эванса
(это был царь и бог Minix 386). С его заплаткой Minix на 386-м становилась
намного лучше. Я начал читать телеконференцию по Minix в онлайне еще до
покупки нового компьютера, поэтому с самого начала знал, что хочу установить
именно усовершенствованную версию Эванса. Но из-за лицензионных ограничений
пришлось сначала купить исходную версию Minix, а потом изрядно повозиться,
приделывая заплатки Эванса. Это было целое дело.
У меня возникло множество претензий к Minix. Хуже всего была эмуляция
терминала, очень важная для меня программа, потому что именно ее я
использовал для подключения к университетскому компьютеру. Я зависел от этой
эмуляции каждый раз, когда связывался с университетским компьютером, чтобы
поработать с мощной Unix-системой или просто выйти в онлайн.
Пришлось писать собственную программу эмуляции. Я peшил не подстраивать
ее под Minix, а опираться прямо на аппаратный уровень. Разработка программы
позволяла, кроме всего прочего, детально изучить работу 386-го. Как я уже
сказал, в Хельсинки стояла зима. У меня был крутой компьютер. Важнее всего
было разобраться, что эта машина может, и использовать эти возможности в
свое удовольствие.
Поскольку я программировал на голом железе, мне пришлось начать с BIOS
-- самой первой программы из ПЗУ, с которой начинается загрузка. BIOS
начинает считывать информацию либо с дискеты, либо с жесткого диска. Я
поместил свою программу на дискету. BIOS считывает первый сектор дискеты и
начинает его выполнять. Я впервые работал с PC, и мне надо было разобраться,
как все это делается. Все происходит в так называемом "реальном режиме". Но
для того чтобы воспользоваться всеми возможностями ЦП и его 32-разрядностью,
нужно было войти в "защищенный режим". А для этого нужно задать кучу разных
параметров.
Поэтому для построения программы эмуляции терминала таким путем нужно
было знать, как работает ЦП. Отчасти именно поэтому я писал на ассемблере --
хотел разобраться в ЦП. Еще нужно было знать, как писать на экран, как
читать с клавиатуры, как читать с модема и писать на него. (Надеюсь, я еще
не распугал тех своих читателей-неспециалистов, которые мужественно
отказались перескочить на страницу 142.)
Я хотел иметь два независимых процесса. Один должен был читать
информацию с модема и выдавать ее на экран. А другой -- читать с клавиатуры
и отправлять модему. Для этого я хотел использовать два двусторонних канала.