Ахметов Камилл
Шрифт:
В Windows 98 была впервые введена поддержка нового класса драйверов, соответствующих модели WDM (Win32 Driver Model). WDM использует послойную архитектуру, в которой каждый слой изолирует часть сервисов, нужных для драйвера устройства.
Использование оперативной памяти
Сразу предупреждаю: в этом разделе упоминаются объемы оперативной памяти ПК, измеряемые в килобайтах (Кбайт), и это не опечатка, так как в начале 80-х годов многие полноценные приложения «умещались» в 16–64 Кбайт ОЗУ. Так вот, базовая, или стандартная, память (conventional memory) IBM PC-совмести-мых компьютеров представляла собой «целых» 640 Кбайт оперативной памяти, а всего микропроцессоры 8086/88 могли адресовать до 1 Мбайт, или 1024 Кбайт памяти. Для обращения к базовой памяти не были нужны никакие дополнительные драйверы, поскольку MS-DOS изначально была создана для работы в адресах 0–640 Кбайт.
Это казалось очень много, и именно в этом заключалась третья проблема MS-DOS. Ведь для создания ядра операционной системы, способной обеспечить графический пользовательский интерфейс и унифицированный доступ ко всем устройствам ввода-вывода для всех приложений, нужно было очень много памяти для программного кода и данных – гораздо больше, чем 640 Кбайт.
Первые три поколения Windows
В ходе самостоятельных разработок в области графического интерфейса Microsoft стремилась к тому, чтобы оконная среда не только была оболочкой для MS-DOS, позволяющей работать с файлами и запускать программы, но и предоставляла разработчикам собственный интерфейс прикладного программирования (Application Programming Interface, API).
Существовавшие тогда IBM PC-совместимые компьютеры не могли обеспечить полноценного функционирования графической среды, поэтому Windows 1.0 (1985 г.) выглядела довольно бледно и была примечательна преимущественно тем, что была первой. Она работала в реальном режиме процессора 8086, имела графический интерфейс с неперекрывающимися окнами, обеспечивала совместную работу графических Windows-приложений и одного приложения MS-DOS.
В 1987-88 годах появлялись уже вполне работоспособные реализации Windows/286 и Windows/386 (Windows 2.x). В интерфейсе этих ОС окна приложений могли перекрываться; свернутые окна приложений, работающих в фоновом режиме, выглядели как небольшие значки в нижней части экрана. Тогда же был реализован механизм динамического обмена данными (DDE). В Windows/286 можно было запустить в один момент времени лишь одно MS-DOS-приложение. Windows/386 (1988 г.) уже могла выполнять одновременно несколько приложений MS-DOS в отдельных виртуальных машинах благодаря механизму вытесняющей многозадачности.
Среда Windows имела свой API для работы с приложениями, но до появления Windows 3.0 была способна задействовать только нижние 640 Кбайт памяти MS-DOS и до 32 Мбайт так называемой отображаемой памяти, которая отображалась 16-килобайтными страницами на непрерывный страничный блок размером 64 Кбайт, находящийся выше стандартных 640 Кбайт – в области старших адресов (ухищрение разработчиков, к счастью, давно забытое). До версии 3.0 эта графическая среда особенного успеха на рынке не имела, так как практически не давала преимуществ ни разработчикам, ни пользователям.
Оболочкой ранних версий Windows служила MS-DOS Executive (рис. 1.3). Эта программа позволяла мышью или клавишами управления курсором отыскивать файл или каталог, легко открывать его, выбирать дисковод и переходить в над-каталог, нажав клавишу Backspace. Вот и все плюсы этой однооконной программы, не поддерживавшей, кстати, и перетаскивания мышью (drag-and-drop, «перетащи и отпусти»).
Рис. 1.3.
Одновременно с разработкой Windows во второй половине 80-х годов Microsoft (совместно с IBM) вела разработки графического интерфейса Presentation Manager для будущей операционной системы OS/2, которая должна была прийти на смену MS-DOS, и приложений для компьютеров Macintosh фирмы Apple. Собственно, свои первые программы с графическим интерфейсом – текстовый процессор Word и электронную таблицу Excel – Microsoft выпустила именно для Macintosh. «Мы тесно сотрудничали с Apple в процессе создания Macintosh… – пишет Билл Гейтс. – Разработка графических программ потребовала немалого воображения».
Неудивительно, что к 1990 году Microsoft добилась серьезных успехов в разработке графического интерфейса. И только тогда Apple подала на Microsoft в суд, усмотрев в интерфейсе Windows 3.0 сходство с интерфейсом ОС компьютеров Macintosh!
Инженерам Microsoft, кроме того, удалось самостоятельно решить проблему доступа ко всей оперативной памяти программ, использующих Windows API. Руководство Microsoft хорошо понимало, что встраивание этой находки в будущую версию Windows положит конец совместному проекту IBM и Microsoft в отношении OS/2.
«Деловые отношения с IBM для нас были жизненно важны», – признается Гейтс. До 1990 года он не уставал повторять, что именно OS/2 с интерфейсом Presentation Manager (PM) станет ОС будущего, а проект Windows с интерфейсом, идентичным PM, существует «для бедных». Говорить так его, видимо, обязывал контракт с IBM.
Но в это самое время полным ходом двигался проект Windows 3.0 – среды, использующей, в отличие от предыдущих версий Windows, преимущества защищенного режима, включая работу с расширенной (а не только базовой и отображаемой) памятью. В книге «Гейтс» Стивен Мэйнс и Пол Эндрюс описали историческое обсуждение проекта Windows 3.0 (имевшее место, вероятно, в начале 89-го), когда разработчик Дэвид Вейс доложил о том, что нашел способ перевести Windows в защищенный режим:
«– Хорошо, давайте займемся этим, – сказал Гейтс.
Баллмер[5] повернулся к Биллу:
– А что мы скажем IBM?
Улыбка осветила лицо Билла Гейтса:
– А это ваша проблема, Стив.
И проблема была. IBM видела в Windows лишь промежуточное звено между DOS и PM, но не более того. Теперь, преодолев внутренние ограничения DOS, Windows сама противопоставлялась OS/2 и Presentation Manager. Единственное, чего ей недоставало, – даты выхода».[6]
Вскоре после выхода Windows 3.0 деловые отношения с IBM перестали быть для Microsoft жизненно важными. Поддержка же Microsoft Windows стала жизненно важной для IBM OS/2 (а не наоборот). А Microsoft объявила о своих дальнейших планах: поддержке и развитии Windows, OS/2 (без IBM) и создании новой ОС NT (New Technology). Но об этом позже. А событием 1990 года и, как стало ясно потом, началом новой эпохи стал выпуск 22 мая 1990 года графической ОС Microsoft Windows 3.0. Она имела приятный графический GUI (по сравнению с тем, что до сих пор появлялось для IBM PC), предоставляла значительный комплекс услуг, оперировала всем объемом памяти, адресуемым микропроцессорами 80286, 80386 и выше. С 32-разрядными микропроцессорами (80386 и выше) и при наличии не менее 2 Мбайт памяти Windows 3.0 могла задействовать виртуальную память – этот режим работы был назван 386-м расширенным (386 Enhanced Mode).