В этой статье нет глу­боких рас­сужде­ний об устрой­стве опе­раци­онных сис­тем: управле­нии памятью, пла­ниро­вании выпол­нения на CPU, о про­цес­сах и потоках, вво­де‑выводе и дру­гих сопутс­тву­ющих темах. Зато в ней крат­ко изло­жена исто­рия соз­дания опе­раци­онной сис­темы Windows NT, которая лежит в осно­ве всех сов­ремен­ных вер­сий Windows.

Как ты навер­няка зна­ешь, до 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 изнутри на начало девянос­тых. Конеч­но, с того вре­мени мно­го что изме­нилось, но даже это поража­ет вооб­ражение. Пря­мо в кам­пусах, где ведет­ся раз­работ­ка ПО, находи­лись тре­нажер­ные залы, бас­сей­ны — всё для сот­рудни­ков ком­пании.

Часть владений Microsoft, снимок Bing Maps
Часть вла­дений Microsoft, сни­мок Bing Maps

Пос­ле ухо­да из 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, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    6 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии