Лекция 06. Архитектура Windows
Рис. 1.
Windows состоит из нескольких основных элементов. Каждый элемент предоставляет свои услуги пользователю и приложениям, запускаемым в Windows
Архитектура Windows 9х складывается из нескольких элементов. Каждый элемент обслуживает какую-нибудь одну часть рабочей среды Windows. Например, слой Windows API (программный интерфейс для создания приложений) позволяет приложениям взаимодействовать с внутренними частями Windows, такими, как система управления файлами. Невозможно написать приложение для Windows без помощи API.
Компонент СВМ (системная виртуальная машина) содержит три основных элемента: 32-разрядные приложения Windows, оболочка и 16-разрядные приложения Windows. По сути дела, этот компонент обеспечивает большую часть пользовательских функций Windows 9х. Без него вы не смогли бы запустить ни одного приложения.
Для запуска приложений ДОС Windows использует совершенно иной набор функций. Она запускает их даже в ином режиме работы процессора.
В Windows 9х включены два интерфейса Windows API. Первый API точно такой же, как поставлялся с Windows 3.1. Он обслуживает все 16-разрядные функции, которые предоставлялись приложениям в старой Windows. Старые 16-разрядные приложения будут при работе использовать именно этот API. Другой API —Win32 API, используемый Windows NT. Он предоставляет собой подмножество функций, которые могут потребоваться 32-разрядным приложениям, 32-разрядный API предоставляет тот же самый набор функций, что и 16-разрядный API, но более надежен.
Компонент Windows 95 «базовая система» обеспечивает все функции операционной системы. Это ядро Windows 95, часть, без которой Windows 95 просто не сможет работать. Последующий список подробно описывает каждую часть базовой системы:
- Подсистема управления файлами: эта часть базовой системы обеспечивает интерфейс со всеми устройствами блочного обмена, подключенными к компьютеру. Причем, неважно, как выполнено подключение — физически или через сеть. Существенно лишь то, что компьютер имеет доступ к этому устройству.
- Сетевая подсистема: Windows для рабочих групп была первой версией Windows, претендующей на удовлетворение сетевых потребностей рабочих групп.
- Службы операционной системы: эта часть операционной системы работает с такими функциями, как, например, самонастройка (plug and play). Она также исполняет разнообразные запросы пользователя и операционной системы. Например, каждый раз, когда пользователь запрашивает у Windows 9х текущее время, он запрашивает обслуживание у этого компонента Windows 9х.
Диспетчер виртуальных машин: это тот самый компонент, который собирает все воедино. Диспетчер виртуальных машин заботится о графике выполнения задач, он начинает и заканчивает работу каждого приложения (включая приложения для ДОС, которые вы можете запустить). Этот компонент операционной системы управляет также виртуальной памятью компьютера. Приложение непосредственно не обращается к этому компоненту Windows, а использует для обработки запросов Windows API. Как и приложения для Windows, приложения для ДОС не могут напрямую обращаться к этому компоненту Windows.
Загрузка WINDOWS
Загрузка 16-разрядного ядра
Когда командный процессор закончит свою работу, начинается новая фаза загрузки. 32-разрядная операционная система Windows начинает загрузку в 16-разрядном режиме. Но на то есть некоторые причины.
Одна из них связана с особенностями реализации стандарта самонастройки (plug and play). Современная версия стандарта требует, чтобы производитель обеспечил 16-разрядный интерфейс защищенного режима. Это позволяет производителям операционных систем, таким как Microsoft, тестировать самонастраивающееся оборудование, не переключаясь в реальный режим. Это сделано потому, что, как предполагается, операционная система работает значительно стабильней, если ей не надо переключаться в реальный режим.
Первое, что должна проделать Windows 9x при запуске, это проверить состояние оборудования. Кроме того, она вызывает программу самонастройки в ПЗУ и запрашивает у нее перечень установленного оборудования. Windows пользуется этой информацией для конфигурирования системы. Конечно, она должны принимать во внимание и то оборудование, которое не поддерживает функцию самонастройки. Закончив со списком оборудования, Windows 95 начинает загрузку всех 16-разрядных VxD, необходимых для поддержки этого оборудования.
Что же представляет собой VxD? Это виртуальный драйвер устройства — версия защищенного режима тех драйверов, которые использовались в ДОС. Windows 9x использует виртуальные драйверы устройств для управления всеми функциями нижнего уровня.
Завершив этот этап, Windows инициализирует все обнаруженные драйверы. Начинается инициализация с системных драйверов — то есть с тех драйверов, которые отвечают за работу функций нижнего уровня (таких, как функции файловой системы). Затем инициализируются драйверы устройств.
В этом месте Windows 9x загружает три 16-разрядных компонента оболочки: USER.ЕХЕ, GDI.EXE и KRNL386.EXE. Кроме того, загружаются некоторые дополнительные драйверы и другие компоненты, например, шрифты. Теперь Windows 9x полностью готова к работе и функционирует в 16-разрядном режиме. Хотя интерфейс еще не загружен, все остальные компоненты уже на своих местах.
Загрузка 32-разрядного ядра
Как только 16-разрядное ядро обнаружит вызов оболочки, оно загружает приложение под названием VWIN32.386. Эта небольшая программа загружает три 32-разрядных файла DLL, которые входят в состав Win32 API:
USER32.DLL,
GD132.DLL
KERNEL32.DLL. Завершив эту работу, VWIN32.386 возвращает управление 16-разрядному ядру, которое, в свою очередь, вызывает 32-разрядное ядро. Начиная с этого момента, Windows 9x работает в 32-разрядном режиме.
Теперь, когда система начала работу в 32-разрядном режиме, она инициализирует все 32-разрядные драйверы. Этот процесс ничем не отличается от аналогичного этапа работы 16-разрядного ядра, поэтому я не буду на нем задерживаться.
Во время этого процесса, Windows попросит пользователя ввести имя и пароль и сравнит их с содержимым соответствующего файла паролей. Если проверка пароля пройдет успешно, Windows завершает процесс загрузки. Ну, и, наконец, Windows 95 запускает интерфейс проводника (он был загружен еще раньше, но не был запущен), который выводит на рабочий стол все необходимые объекты и инициализирует панель задач. Именно в этот момент он заглядывает в папку Автозагрузка и запускает находящиеся там приложения. Теперь система готова к работе.
Адресация памяти
Если вы думаете, что управление памятью в Windows 95 не представляет никаких сложностей, подумайте еще раз. Windows имеет множество способов доступа к этому важнейшему ресурсу, и очень важно понять, чем эти способы отличаются друг от друга. Мы рассмотрим две различные модели памяти, которыми может пользоваться Windows 95 для управления памятью компьютера: сегментированную и непрерывную. Из этих двух моделей, наиболее эффективной является непрерывная, но для обеспечения совместимости поддерживаются обе. В следующих параграфах объясняется, зачем это сделано.
Реестр Windows.
Реестр Windows содержит информацию обо всем, что необходимо операционной системе для работы. Он хранит все параметры оборудования, конфигурации программ, характеристики сети и список всех подключаемых библиотек (DLL).
Файл WIN.INI содержит параметры рабочей среды Windows; он изменяет способы взаимодействия Windows с пользователем. Файл SYSTEM.INI содержит информацию о конфигурации оборудования и системных драйверов; он изменяет способ конфигурирования Windows при запуске системы. Различия между этими двумя файлами незначительны. Например, WIN.INI содержит информацию о конфигурации последовательных портов и принтера. Windows 9х копирует содержимое файлов SYSTEM.INI и WIN.INI в реестр. Единственная причина существования эти файлов состоит в том, что они нужны приложениям для Windows 3.
Для просмотра и изменения содержания реестра используется утилита «редактор реестра» (RegEdit). Для хранения информации реестра Windows 95 использует два скрытых файла, USER.DAT и SYSTEM.DAT, но редактор реестра показывает их как один целостный реестр. Хотя экран этого редактора кажется поначалу сложным для понимания, на деле все просто. Основная разница между реестром и альтернативными ему файлами Windows 3.1 SYSTEM.INI и WIN.INI в том, что реестр имеет иерархическую организацию и содержит ясные описания, которые легко искать и корректировать. Каждое приложение, которое вы устанавливаете, добавляет в него запись, но организация этого файла позволяет легко удалить эту запись при удалении приложения.
Реестр Windows 95 использует два типа записей: разделы и параметры. Разделы, имеют статус заголовков, сообщающих, что содержится в данной части реестра. Содержание разделов может простираться от описания параметров всех дисков системы до ассоциаций файлов, необходимых для конфигурирования компьютера. Самый верхний раздел иерархии обычно содержит информацию общего характера. Каждый подраздел содержит более конкретные сведения данного раздела. Разделы всегда появляются в левой части окна редактора реестра.
В разделах содержатся параметры, которые можно представить как текст, который заполняет заголовки, предоставляемые разделами. Параметры могут содержать почти все. Например, значение параметра ассоциации файла может сообщить вам, какое приложение будет запущено, если вы, находясь в проводнике, дважды щелкнете на файле с данным расширением. Значение параметра может также сообщить, какие прерывания и адреса портов использует некоторое устройство. Достаточно сказать, что вы найдете нужный параметр, использовав разделы, а прочитав значение параметра, найдете нужную вам информацию.
Категориями являются шесть основных разделов, расположенных в разделе Мой компьютер. Категории делят реестр на шесть основных областей:
HKEY_CLASSЕS_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
HKEY_CURRENT_CONFIG
HKEY_DYN_DATA