Как ты наверняка знаешь, до 2001 года, то есть, до релиза Windows XP, существовали две ветви развития операционной системы Windows: Windows, основанная на DOS, и Windows, основанная на NT. В итоге победила вторая, ставшая предком для всех современных версий Windows. Между тем, к Windows на основе DOS относятся Windows 1.0 — 3.0, Windows 3.1, 3.11, Windows 95, Windows 98, Windows ME.
С Windows на основе DOS все понятно, к существующей 16-разрядной операционной системе MS-DOS, изначально купленной на стороне, прикрутили графический интерфейс. Вместе они служили верой и правдой. Однако через некоторое время в Microsoft пришли к тому, что рано или поздно понадобится абсолютно новая операционная система, основанная на 32-битной архитектуре без старого багажа.
Несколько лет спустя этой новой системой стала NT — для своего времени революционная ОС. Как раз об истории ее создания и пойдет речь в этой статье.
Showstopper
Мне нравится читать книги об истории программных продуктов, основателях софтверных компаний и просто о людях, оставивших след в истории компьютерной эры. В этот список входят такие книги, как «Just for Fun» Линуса Торвальдса, размышления о будущем, принадлежащие Биллу Гейтсу, рассуждения о программировании в книге «Мифический человеко‑месяц» Фредерика Брукса, «Время UNIX» Брайана Кернигана и другие. До недавнего времени из книг этого жанра мне больше всего нравилась работа Карен Саусвик «Все вокруг должны разориться», повествующая, как ни странно, о великом и ужасном Ларри Эллисоне.
Между тем, переворачивая страницы изданий об архитектуре операционных систем, в конце одного из томиков я наткнулся на следующую ссылку: Zachary, G. Pascal (1994). Showstopper! The Breakneck Race to Create Windows NT and the Next Generation at Microsoft. Warner Books. ISBN 0-02-935671-7. Сначала я был удивлен: как так, я до сих пор не прочитал книгу об истории создания одной из самых выдающихся операционных систем всех времен и народов? Причина вскоре стала для меня очевидной, да песнь не об этом.
Недолгие поиски в сети дали результаты: на винт моего компа был слит PDF-файл, содержащий эту книгу. Конечно, книги надо покупать в магазинах в бумажном виде, но меня посетило сомнение, что в три часа ночи в ближайшем книжном магазине нашего городка найдется книга тридцатилетней давности на английском языке. Короче, пришлось довольствоваться тем, что есть: не такой уж и плохой вариант.
info
Общеизвестный перевод слова Showstopper — представление, спектакль; менее распространенный — накладка, неисправность. Но в данном конкретном случае во время разработки системы NT этим термином называли критический баг, приводивший к сбою в работе системы; кроме него, существовали баги первого и второго приоритетов, находившиеся после showstopper.
Книгу логичнее отнести к художественному, нежели к техническому литературному жанру, из‑за этого лично мне было тяжеловато ее читать. В весьма небольшое количество страниц автору удалось вместить невероятный объем информации. Он вкратце рассказал о биографии Дэвида Катлера: о трудном детстве, о его юности, когда тот занимался спортом, но в связи с тяжелой травмой был вынужден оставить эти занятия. О его карьере, в частности о промежутке жизни, когда тот работал в Digital Equipment. О потрясающих успехах компьютеров (PDP, VAX) и операционных системах (VMS) этой компании. Наконец, о завершении работы в DEC.
С чего все началось?
Во многих источниках говорится о том, что в конце восьмидесятых Катлер просто уволился из Digital и перешел в Microsoft, но на самом деле это было далеко не так. У Дэвида был тяжелый жизненный период, когда руководство DEC отвергало многие его проекты современных операционных систем. В это время Дэйв был в Сиэтле, где под началом Digital открыл компанию для разработки компьютера PRISM и операционной системы Mica для него. Тем не менее эти начинания тоже были отвергнуты начальством в 1988 году, что поставило крест на бизнесе Дэйва.
Катлер пребывал в подавленном состоянии. Буквально в нескольких километрах в Сиэтле Билл Гейтс искал разработчика операционных систем, который мог бы руководить процессом создания переносимой — не зависящей от архитектуры ЭВМ — операционной системы. Он слышал о достижениях Катлера и, узнав, что тот находится с ним в одном городе, пригласил Дэвида на собеседование. Катлеру, только что потерявшему бизнес, мало что оставалось. С этого момента и началась история Windows NT. Кроме всего прочего, Дэйв с презрением относился к Unix, и работа в Microsoft давала ему шанс создать операционную систему, которая окажется лучше и совершеннее.
Кроме биографии Дэвида Катлера, автор рассказывает о биографии Гейтса. Казалось бы, что нового можно узнать об этом человеке? Оказывается, можно.
Основную часть книги автор посвящает, конечно же, разработке Windows NT, в подробностях описывая решения менеджмента группы разработки, взаимоотношения между членами команды и прочие картины внутренней кухни Microsoft. Много внимания уделяется отдельным участникам разработки, и это не только программисты, но и тестеры, билдеры, технические писатели. Кратко обрисованы их жизненные пути, обстоятельства, которые привели их в группу NT. В книге есть описание корпорации Microsoft изнутри на начало девяностых. Конечно, с того времени много что изменилось, но даже это поражает воображение. Прямо в кампусах, где ведется разработка ПО, находились тренажерные залы, бассейны — всё для сотрудников компании.
После ухода из DEC Катлер привел в Microsoft всю свою команду разработчиков, тем самым, как замечает автор в эпилоге, организовал компанию внутри компании, и этому не помешал даже Билл Гейтс. Во многом от этого и зависел будущий успех Windows NT. Катлер окружил себя уже знакомыми специалистами, с которыми он годами работал в Digital. Впоследствии программисты из Microsoft тоже начали вливаться в процесс разработки, стали организовываться дополнительные отделы. Например, графическим отделом руководил очень своеобразный программист Whitmer, а его команда называлась «Бессмертные» — Undead.
NT и OS/2
Меня всегда интересовало, какое отношение NT имеет к OS/2. Во многих источниках приводится довольно разная информация, вплоть до того, что NT — это продолжение OS/2. Так как книга Showstopper написана в результате общения автора с непосредственными разработчиками системы, мне кажется, что этому источнику можно доверять. В конце книги Захари перечисляет лиц, с которыми он провел интервью. Список громадный: фамилии расположены в двух столбцах и занимают две страницы. В него входят не только сами сотрудники Microsoft, но и члены их семей: автор показал, как NT повлияла на личную жизнь участников проекта.
В конце 1988 года совершенно независимо от OS/2 Дэйв Катлер начал разработку системы, которую впоследствии маркетологи окрестили New Technologies, сокращенно NT. До этого времени в подавляющем большинстве случаев операционные системы разрабатывались непосредственно на языке ассемблера (исключением стала Unix), тогда как большая часть NT писалась на C. Это делалось для того, чтобы обеспечить переносимость системы на другие аппаратные платформы.
Тем не менее в качестве целевого был выбран процессор i386 от Intel. Однако сначала NT собирались разрабатывать для процессора i860 — это представитель интеловской RISC-архитектуры, но из‑за конструкторских дефектов разработка системы для него была прекращена. В течение некоторого времени создание ОС и тестирование параллельно велись на архитектуре MIPS, в которой Катлер видел будущее. Однако не срослось: от ее поддержки после выпуска Windows NT 4.0 тоже отказались. В начале разработки NT она создавалась как обособленная система, не предполагалась совместимость ни с DOS, ни с другими версиями Windows, ни с OS/2.
После начала успешных продаж Windows 3.0 для Microsoft стало очевидно, что совместный с IBM проект операционной системы OS/2 не оправдал надежд, но отказываться от такого союзника им тоже не хотелось. Поэтому под флагом проекта OS/2 они стали скрывать разработку NT. В это же время стало понятно, что для более широкого распространения NT необходимо добавить к ней совместимость с основными версиями Windows, дополнив ОС возможностью выполнения написанных для Windows 3.х приложений.
Вместе с тем OS/2 также имела небольшой парк программ, от поддержки которых в новой системе нельзя было отказываться. Узнав об этом, Катлер был вне себя от злости. Он сказал, что разработка новой системы ведется уже полтора года без предположения о какой‑либо совместимости со старыми ОС, вследствие чего придется вносить изменения в базовый код. Кстати, именно эта обратная совместимость с Windows и стала в итоге одним из бедствий, так как речь шла еще о 16-битной Windows, при этом NT изначально была 32-разрядной. Уже перед самым релизом системы, обнаружив, что скорость выполнения старых 16-разрядных программ была неудовлетворительной, релиз несколько раз откладывали для внесения изменений.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее