Правильная ссылка на эту страницу
http://az-design.ru/Support/SoftWare/Windows/InsideNTforword.shtml

ПРЕДИСЛОВИЕ
К книге Хелен Кастер "Основы Windows NT и NTFS"

       В 1963 году я окончил колледж со специализацией в математике (и, частично, в физике) и с огромным желанием быть инженером и "создавать вещи". Поэтому я пошел работать в компанию DuPont в Уилмингтоне, штат Делавэр инженером по прочностным испытаниям. После почти года полнейшей скуки я перешел в группу математики и статистики, где получил задание разработать компьютерную имитационную модель нового процесса производства пенопласта компании Scott Paper. Работать с машинами, которые никогда не делали того, что я от них хотел, было тяжелым испытанием для моей гордости; через шесть месяцев я попался на удочку, и компьютеры, которых я старался избегать со времен окончания школы, стали делом моей жизни.
       Вскоре после этого я перешел в инженерный отдел компании DuPont, где программирование стало моей основной работой. У нас была небольшая группа, создававшая управляющие компьютерные системы. Основным мотивом моего перехода в эту группу было желание быть поближе к компьютерам; точнее же, я хотел работать над созданием операционных систем (ОС). В составе этой группы мне посчастливилось работать над несколькими автономными системами реального времени; при этом приходилось заниматься как написанием центральной управляющей программы, выполнявшей планировку различных задач и мониторинг работы системы, так и кодированием реальных прикладных программ.
       Скоро я понял, что заниматься разработкой серьезных ОС можно только в компании, для которой компьютеры — основной бизнес. Так что в 1971 году я оставил DuPont и перешел на работу в Digital Equipment Corporation в городе Мейнард, штат Массачусетс. Как оказалось, я занялся операционными системами очень вовремя. Кто бы мог подумать, что мне повезет разрабатывать несколько ОС; ведь мало кому удается поучаствовать в разработке хотя бы одной.
       Моим первым проектом в области ОС была система реального времени RSX-11M, которая работала на 16-разрядных миникомпьютерах PDP-11 фирмы DEC. В то время наши цели казались очень амбициозными. Нужно было создать многозадачную ОС, которая работала бы на 32 Кбайт памяти, поддерживала иерархическую файловую систему, подкачку приложений, планировку задач в реальном времени и имела набор утилит для разработчиков. ОС и утилиты должны были работать на всех платформах серии PDP-11, от самых малых систем до PDP-11/70, имевшей аппаратуру отображения адресов памяти и поддерживавшей ОЗУ до 4 Мбайт.
       У меня остались самые нежные воспоминания о том, как RSX-11М обретала свои формы. Я завел резиновый штемпель, провозглашавший "Конечная цель — это размер", которым проштемпелевывал всю проектную документацию подряд, дабы быть уверенным, что все программисты и менеджеры проекта понимают важность достижения наших целей. Тогда мы также познакомились с мощью условного ассемблирования (в те годы использование языков высокого уровня для создания ОС было лишь в зародыше), и когда кто-нибудь разрабатывал новое средство, просто добавляли его как опцию при генерации системы.
       При разработке RSX-11М большую часть времени мы проводили, изобретая решения проблем памяти. Так как система должна была работать на 32 Кбайт, мы разделяли весь запас памяти поровну между ОС и программами-утилитами. В результате для утилит осталось всего 16 Кбайт, и мы провели много часов за подгонкой оверлейных структур, обеспечивающих приемлемую производительность множества системных программ RSX-11М.
       Хотя в случае RSX-11М требования к размеру и производительности были иной раз очень строгими, из всех систем, над которыми я работал, она была, вероятно, самой простой. Нужно было создать новую реализацию существующей системы, но мы могли свободно менять и усекать интерфейсы программирования — конечно, при условии, что прикладные программы можно было ре-ассемблировать или перекомпилировать с минимальными изменениями исходного текста. Система RSX-11М вышла в свет в 1973 году, через 18 месяцев после начала работы. Она имела большой успех и помогла сделать PDP-11 самым популярным 16-разрядным миникомпьютером своего времени.
       Компьютеры PDP-11 обеспечивали лучшее соотношение цена/производительность по сравнению с большими ЭВМ и могли использоваться на уровне отделов предприятий. Вместе с другими популярными миникомпьютерами тех лет они породили первую волну уменьшения размеров (downsizing) в компьютерной индустрии. Уменьшение размеров было попыткой перенести приложения больших ЭВМ на миникомпьютеры. Многие такие приложения были слишком велики для PDP-11, и почти сразу же Digital начала борьбу с тем, что Гордон Белл (Gordon Bell) считал единственной самой важной причиной устаревания компьютерных архитектур — недостаточным количеством адресных разрядов.
       Так родилась архитектура VAX, которая стала одной из наиболее популярных архитектур конца семидесятых и сохраняла свои позиции все восьмидесятые годы. Архитектура VAX обеспечивала 32-разрядную виртуальную адресацию и устраняла необходимость втискивать программы в, казалось, постоянно сокращающееся адресное пространство.
       Появление VAX предоставило мне возможность во второй раз участвовать в разработке ОС. Мне посчастливилось быть руководителем разработки ОС для архитектуры VAX-11, результатом которой стала система VMS.
       VMS была второй системой разделения времени общего назначения фирмы Digital, разработанной специально для архитектуры VAX. Так как последняя была непосредственной наследницей необычайно популярной архитектуры PDP-11, теперь было необходимо обеспечить для приложений совместимость лучшую, чем на уровне исходных текстов. В связи с этим в архитектуре VAX имелся режим совместимости с PDP-11, в котором команды последней исполнялись непосредственно аппаратурой. В те времена казалось совершенно невообразимым, что одна ОС поддерживает более одной среды "совместимости". Хотя она и не была лучшей из известных ОС PDP-11 (это поразительно, но у Digital было в разное время не менее десяти таких ОС!), все же именно RSX-11М была выбрана в качестве системного интерфейса, эмулируемого VAX в режиме совместимости с PDP-11. Для большинства людей за пределами компании это решение, вероятно, было не очень понятно, но у RSX-11М был самый обширный набор средств разработки приложений; она имела большинство возможностей ОС общего назначения и поддерживала многозадачность; ее файловую систему можно было расширить с сохранением совместимости. Наконец, VAX-11 исполняла двоичный код RSX-11M "как он есть"; это позволяло смонтировать тома RSX-11М и обеспечить доступ к ним как программам, выполнявшимся в режиме совместимости RSX-11M, так и VAX-программам.
       С технической точки зрения самой большой нашей ошибкой было то, что мы писали VMS не на языке высокого уровня. В то время у нас была группа очень опытных программистов на ассемблере, существовали некоторые строгие ограничения по размеру и не было компилятора, достаточно качественного для генерации кода ОС. Таким образом, чтобы гарантировать завершение работы над системой в приемлемые с точки зрения рынка сроки, мы написали ее на ассемблере. Оглядываясь назад, все равно было бы трудно принять решение писать VMS на языке высокого уровня. (Мораль: лучшее техническое решение — не всегда лучшее с финансовой точки зрения.)
       В начале восьмидесятых годов, пока миникомпьютеры были заняты "поглощением" приложений больших ЭВМ и новых программ, возникли две важных технологии: персональные компьютеры (ПК) и рабочие станции. По окончании проекта VMS я несколько лет занимался разработкой компиляторов, после чего возглавил группу, разрабатывавшую MicroVAX 1 — первую рабочую станцию Digital серии MicroVAX.
       Рабочие станции, такие как MicroVAX, обеспечивали высокопроизводительные вычисления однопользовательского режима для приложений типа систем автоматизированного проектирования (САПР); ПК использовались для бизнес-приложений индивидуального характера. Электронные таблицы и текстовые процессоры — две ранних разновидности продуктов для ПК, имевшие большой успех. Хотя рабочие станции были относительно дороги, цены на персональные компьютеры были доступны для малого бизнеса.
       Чтобы удовлетворять требованиям, в первых ПК использовали 8-разрядные, а позднее 16-разрядные микропроцессоры. Им были присущи ограничения, сходные с имевшимися у RSX-11М, что требовало значительных усилий от программистов и разработчиков ОС. Аппаратных ресурсов было настолько мало, что основным назначением ОС была поддержка нескольких низкоуровневых функций обслуживания аппаратуры и предоставление набора библиотек работы с файловой системой. Однако персональные компьютеры обеспечили то, чего не могли дать миникомпьютеры — рынок, на котором независимые производители программного обеспечения могли продавать свои продукты в больших объемах. Результатом явилось поистине удивительное количество и разнообразие приложений для ПК.
       В середине восьмидесятых годов микропроцессоры получили 32-разрядную адресацию, что сразу стало использоваться на рабочих станциях. Однако из-за наличия очень большого количества ПК и приложений для них уже нельзя было просто сделать новый компьютер, а потом перекомпилировать для него все прикладные программы. У конечных пользователей ПК просто не было исходных текстов программ, и они нуждались в совместимости на уровне двоичных кодов.
       Летом 1988 года мне позвонил Билл Гейтс из корпорации Microsoft с интересным предложением. Он спрашивал, не соберусь ли я приехать и поговорить о создании новой ОС Microsoft для персональных компьютеров. В то время меня не очень интересовала работа с персональными компьютерами, но я подумал, что это хорошая возможность встретиться с Биллом и обсудить его идеи. То, что предлагал Билл, сводилось к созданию новой ОС — переносимой и отвечающей требованиям, которые предъявляются к ПК при выполнении критически важных задач. Для меня это был шанс создать еще одну операционную систему!
       В конце концов Билл убедил меня, что эту возможность нельзя упускать, так что в октябре 1988 года я перешел в Microsoft и начал подбирать группу для создания новой ОС. В то время я еще не понимал, что это будет самый амбициозный проект ОС, в котором я когда-либо участвовал.
       Наши цели включали переносимость, защиту от несанкционированного доступа, поддержку POSIX, совместимость, масштабируемую производительность (поддержку мультипроцессорной обработки), расширяемость и легкость интернационализации. Из всех этих целей самой сложной и оказавшей наибольшее влияние на структуру ОС была совместимость. Сотни тысяч проданных систем PDP-11 ничто по сравнению с десятками миллионов персональных компьютеров! Мало того, мы должны были обеспечить совместимую поддержку трех разных 16-разрядных сред и добавить новые 32-разрядные возможности, позволяющие освободить приложения для ПК от ограничений виртуального адресного пространства, аналогичных существовавшим в PDP-11. И сверх всего, мы хотели поддерживать стандартную спецификацию интерфейса UNIX под названием POSIX.
       Теперь, спустя почти четыре года, мы близки к выпуску этой системы — Windows NT — на рынок. Хелен Кастер (Helen Custer) приступила к работе над данной книгой тогда же, когда началась разработка системы. По мере развития проекта книга подвергалась постоянным изменениям, отражая изменения в архитектуре ОС. Это было трудной задачей — писать и переписывать различные главы книги по мере развития проекта. Хотя идеи проекта принадлежат нам, Хелен выделяла их суть и делала их понятными не только профессиональным разработчикам ОС. За это мы все в большом долгу перед ней.
       Не представляется возможным упомянуть всех, кто сделал свой вклад в проект Windows NT. Я обязан сказать, что не я спроектировал ее — я просто был одним из участников этого. По мере чтения книги Вы познакомитесь с некоторыми другими, но далеко не со всеми участниками. Система является результатом усилий всей команды, и ее разработка потребовала нескольких сотен человеко-лет. Возможно, самый важный вклад внесли те, кто занимался тестированием системы. Без них Windows NT не смогла бы достичь сегодняшнего уровня качества.
       Я надеюсь, что читать эту книгу о Windows NT будет для Вас таким же удовольствием, каким было для нас ее разрабатывать.

Дэйв Каптер, руководитель разработки Windows NT

  Оглавление
Начало раздела
 




Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:44 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/SoftWare/Windows/InsideNTforword.shtml