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

зародившемуся в Массачусетском технологическом институте. Это было
существенное новшество. Помню, за год до его внедрения я шутил на эту тему с
Ларсом: говорил, мол, когда-нибудь мы сможем запустить X Window, и все
заработает. Я совершенно не ожидал, что это произойдет так быстро. Хакер по
имени Орест Збровски сумел перенести X Window под Linux.
Система X Window работает с помощью Х-сервера, который берет на себя
всю графику. Сервер общается с клиентами, чья задача говорить: "Мне нужно
окно такой-то величины". Обмен информацией происходит на уровне сокетов,
или, точнее, Unix Domain Sockets. Это способ обмена информацией внутри Unix,
но он же используется и для передачи информации по Интернету. Орест написал
первый уровень сокетов для Linux, просто чтобы перенести под нее X Window.
Интерфейс Ореста был сметан на живую нитку и не интегрирован с остальным
кодом. Это тот случай, когда я согласился на грубо сработанную заплатку,
потому что она была нам нужна.
Я не сразу привык к тому, что у нас есть графический интерфейс
пользователя. Думаю, около года я им вообще редко пользовался. А сейчас уке
не могу без него: во время работы у меня всегда открыт миллион окон.
Орест не только дал возможность работать с окнами, но и вообще открыл
дорогу в будущее. Domain Sockets использовались для организации локальной
сети, которая позволяла работать системе X Window. Мы могли воспользоваться
теми же самыми Domain Sockets, чтобы обеспечить Linux большой рывок во
внешние сети -- получить возможность связывать компьютеры. Без включения в
сеть Linux была полезна только тем, кто сидел дома и выходил в большой мир
по модему или вообще делал все локально. Поэтому мы с большим воодушевлением
принялись разрабатывать сети для Linux поверх этих самых Domain Sockets,
хотя они вовсе не были для этого предназначены.
Я был настолько уверен, что все получится, что даже сделал скачок в
нумерации версий. В марте 1992 года я планировал выпустить версию 0.13. А
вместо этого, получив графический интерфейс пользователя, уверился, что мы
на 95% достигли цели -- выпуска полноценной, надежной операционной системы,
пригодной к тому же для работы в сети. И поэтому выпустил версию 0.95.
Господи, как же это было преждевременно! Чтобы не сказать, глупо.
Работа в сети -- поганое дело, и в итоге на ее организацию ушло почти
два года -- только тогда ее можно было выпустить в свет. Переходя в сеть,
получаешь целый букет новых проблем. Во-первых, защита. Ты не знаешь, кто
работает в сети и что он затеял. Нужно быть очень осторожным, чтобы никто не
мог повесить твой компьютер, посылая тебе кучи хлама. Ты уже не можешь
контролировать, кто вступает в контакт с твоей машиной. Причем у разных
людей могут быть совершенно разные настройки. Используя стандартный сетевой
протокол TCP/IP, трудно правильно установить все тайм-ауты. Казалось,
процесс будет бесконечным. К концу 1993 года у нас уже была почти
работоспособная сетевая система, хотя у некоторых возникали серьезные
проблемы с ее использованием. Мы не умели работать с сетями, в которых адрес
не укладывался в 8-битные границы.
Из-за своего чрезмерного оптимизма при выпуске версии 0.95 я оказался в
ловушке. В течение тех двух лет, что ушли на разработку и выпуск версии 1.0,
с номерами творилось что-то невообразимое. Между 95 и 100 не так много
чисел, но мы продолжали постоянно выпускать новые версии -- то ошибку
поправишь, то функцию добавишь. Добравшись до 0.99, мы были вынуждены начать
добавлять номера, чтобы указать на уровень заплат, а потом перешли на