Microsoft раскрыла исторические аспекты разработки Windows
Несколько дней назад Microsoft опубликовала очень любопытную информацию, мимо которой мы не могли пройти мимо. Опубликованная статья называлась The engineer«s engineer: Computer industry luminaries salute Dave Cutler«s five-decade-long quest for quality и посвящена заслуженному инженеру Microsoft и первому архитектору Windows NT Дэйву Катлеру, который заложил основу всех версий Windows начиная с 1993 года.
Известно, что Windows NT разрабатывалась как серверная операционная система и она прошла достаточно долгий путь эволюции перед тем как предстать во всей своей красе перед домашними пользователями в виде Windows 2000 и Windows XP. Не многие знают, что, на самом деле, все семейство ОС Windows NT, начиная от самых первых ее версий и заканчивая Windows 10 основано на одной из первых полностью 32-битных ОС фирмы Digital Equipment Corporation под названием VAX VMS, которая основана на UNIX.
Мы приведем наиболее значительные отрывки из вышеуказанной статьи с нашими комментариями
В 1976 г. компания Digital Equipment Corporation (DEC) [или просто Digital] была на волне успеха и считалась преуспевающей компьютерной фирмой. [Digital не только специализировалась на разработке своей ОС, но и железа для нее] Совместно с другими такими компаниями как Data General, Prime Computer и прочими IT-компаниями, которые располагались вдоль т. н. шоссе 128 (Massachusetts Route 128), DEC формировала компьютерный ландшафт того времени [выпуская миникомпьютеры].
В то же время уже известный на тот момент инженер Гордон Белл (Gordon Bell), который работал в Digital на высокой должности, был обеспокоен падением динамики продаж флагманского 16-битного миникомпьютера компании, известного как PDP-11 [работавшего на ОС RSX-11]. Другое беспокойство менеджеров DEC вызывал факт разработки IBM первого [микро-]компьютера.
Белл решил использовать свое видение будущего, поставив на создание нового 32-битного миникомпьютера под названием VAX с новой ОС [VMS], которая будет обеспечивать обратную совместимость с приложениями для миникомпьютера PDP-11. Тогда Белл обратился к Дэвиду Катлеру, которому, на тот момент, было 33 года. Он считался перспективным инженером Digital, к тому же, имевшим опыт разработки RSX-11. Бэлл попросил Катлера возглавить проект разработки VAX [Virtual Address Extension].
Два года спустя, первые экземпляры миникомпьютеров VAX увидели свет на производстве Digital. При этом VAX сразу же закрепил свою позицию лидера на этом рынке. Тогда Белл назвал Катлера лучшим «лучшим разработчиком операционных систем в мире».
Рис. Дэйв Катлер.
В 1982 г. Катлер встретился с Беллом и анонсировал свой уход из DEC, что стало для него полной неожиданностью. В свою очередь, руководство DEC не собиралось просто так расставаться со своим самым талантливым инженером, хотя, подозревало, что его недовольство относится к растущей бюрократии в руководстве Digital. Катлеру сделали встречное предложение от которого он не смог отказаться. Так была создана дочерняя компания DECWest.
Офис новой компании расположился на расстоянии 3 тыс. миль от штаб-квартиры Digital: в Бельвью, штат Вашингтон, т. е. недалеко от Сиэтла и Microsoft. Молодой инженер Len Kawell стал одним из первых талантливых специалистов этой фирмы. Специалисты собрались разработать ОС реального времени (real-time) для VAX, но в результате был создан и новый компьютер MicroVAX, а также real-time ОС для него под названием VAXeln. Катлер взял на себя функции разработки нового железа, а Len Kawell отвечал за создание ПО.
Kawell говорил, что у Катлера есть уникальное видение функций железа (hardware), что отличало его от других инженеров того времени. Он мыслил на уровне машинных инструкций и операций с регистрами микропроцессора. Тем не менее, в 1988 г. Катлер покинул Digital, а новый компьютер MicroVAX и ОС для него так и не увидели свет. После этого Катлер ушел в Microsoft, познакомившись с Биллом Гейтсом еще за пять лет до этого. Для него уже был готов проект новой ОС, которой суждено было произвести настоящий переворот в области микрокомпьютеров.
Рис. Катлер с Соломоном и Руссиновичем, авторами известной книги Windows Internals.
После переговоров с Биллом Гейтсом в 1988 г., Катлер принял решение о переходе в Microsoft для создания настоящей 32-битной ОС для микрокомпьютеров. К нему также присоединилась команда инженеров из предыдущего проекта: пять специалистов по разработке ОС и шесть специалистов в hardware.
Команда Катлера приступила к разработке новой ОС для Microsoft в апреле 1989-го, работа велась более десяти часов в сутки, иногда, без выходных. Основной задачей при разработке Windows NT стала портируемость будущей ОС, т. е. возможность ее работы не только на микропроцессорах Intel архитектуры x86, но также и на RISC-архитектурах, которые были популярны в тов время и обеспечивали большую производительность по сравнению с x86. Одновременно с этим, специалисты Microsoft уже сотрудничали с компанией IBM в новом проекте по разработке ОС под названием OS/2. Но у OS/2 были явные недостатки, во-первых она была 16-битной, а во вторых не была портируемой и могла работать только на микропроцессорах фирмы Intel.
Цели разработки Windows NT были сложными и амбициозными. Команда Катлера должна была обеспечить выполнение следующих требований:
- Поддержка различных микропроцессорных архитектур [на уровне исходных текстов], включая, MIPS, Alpha, PowerPC, и x64.
- Поддержка запуска приложений других ОС [модель подсистем], включая, UNIX POSIX, OS/2 и Win32.
- ОС должна быть безопасной и соответствовать стандарту безопасности C2 (trusted computer certification).
- Поддержка нескольких одновременно работающих микропроцессоров (мультипроцессорная архитектура) и подлинная многозадачность. Обе эти функции считались уникальными на тот момент для сегмента ПК.
Рис. Логотип Windows NT.
Одной из самых сложных задач, которую предстояло решить разработчикам, была задача тестирования разрабатываемой ОС. На раннем этапе команда не обладала всеми необходимыми ресурсами для разработки нужного набора тестов. Вместо этого, они сделали выбор в пользу динамической системы проверки стрессоустойчивости, что создало высокую нагрузку на систему в целом. Каждую ночь разработчики запускали стресс-тесты новой ОС на сотнях машин. Утром авторы Windows приезжали в офис и производили сортировку ошибок для последующего их анализа.
Интересно отметить, что первоначально в качестве основной подсистемы Windows рассматривалась не Win32, а OS/2, но позже Microsoft отказалась от этой затеи.[Как и от разработки самой OS/2 как таковой] Отчасти это было связано и с быстро набравшей популярность Windows 3.1, продажи которой составили 16 миллионов копий за полгода. В результате 16-битное Windows API было взято за основу и расширено до 32-х бит. Для новой ОС также была написана своя 32-разрядная графическая подсистема. Позже разработчики были вынуждены адаптировать Windows NT на RISC микропроцессор MIPS R3000 вместо заявленного изначально Intel i860 XR. Еще одной проблемой, которую необходимо решить, была совместимость новой ОС с устаревшими приложениями MS-DOS и 16-битной Windows.
Рис. Архитектура Digital VMS.
Рис. Архитектура Windows NT.
Windows NT 3.1 увидела свет 27 июля 1993 г. В 1996 Катлер оставил руководство всем проектом Windows NT и сконцентрировался на руководстве команды разработки ядра до 2006 г. В марте 2005 года Катлер закончил часть работы по портированию Windows NT на платформу AMD64, когда были выпущены первые 64-битные версии для рабочих станций и серверов.
См. также Windows NT and VMS: The Rest of the Story windowsitpro.com/windows-client/windows-nt-and-vms-rest-story