Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
практическая №15.docx
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

2000 Поставляется с двумя подсистемами, а в Windows xp, кроме Win32,

не поставляются никакие другие подсистемы окружения.

К компонентам операционной системы, работающим в режиме ядра,

относятся:

− исполнительная система, обеспечивающая базовыми сервисами в части

управления памятью, процессами и потоками, вводом-выводом и т.д.;

− ядро, которое содержит обобщенный набор функций операционной

системы, скрывающий различия между аппаратными платформами (на

разных этапах развития операционной системы Windows NT

поддерживались не только процессоры Intel, но и MIPS, Alpha AXP,

Motorola PowerPC). Ядро предоставляет процедуры/функции и базовые

объекты, используемые исполнительной системой и драйверами для

реализации структур и функций более высокого уровня. К таким

функциям относятся планирование потоков, диспетчеризация прерыва-

ний, синхронизация процессов и т.д.;

− драйверы устройств;

− уровень аппаратных абстракций (Hardware Abstraction Layer, HAL) —

набор низкоуровневых функций (около 92), обеспечивающий

стандартный интерфейс взаимодействия с аппаратно-зависимыми

элементами для функций, вызываемых компонентами ядра, драйверов и

исполнительной системы, позволяющий абстрагироваться от того, на ка-

кой конкретно элементной базе (чипе контроллера прерывания, контроллера ПДП) реализовано выполнение доступа к шине, таймеру и т.д.;

− подсистема поддержки окон и графики.

Драйверы устройств в Windows, в отличие от DOS, для поддержки

переносимости не обращаются к оборудованию напрямую, а используют функции, предоставляемые HAL.

Драйверы устройств режима ядра делятся на следующие основные категории:

− драйверы файловой системы (например сетевые редиректоры и серверы).

Не стоит понимать буквально, что речь идет только о файловой системе

операционной системы. На самом деле многие физические устройства

(например COM-порты) представляются в системе как файлы, и

обращение к ним осуществляется посредством вызова функций, как к

обычным файлам, но со специфическими параметрами. Далее уже

драйверы файловой системы, получившие запрос на ввод-вывод,

определяют, о каком устройстве идет речь, и вызывают соответствующие

физическому устройству драйверы следующего уровня;

− драйверысподдержкой Plug-and-Play (PnP) и ACPI (Advanced Configuration

Power Management interface — усовершенствованный интерфейс

управления конфигурацией и энергопотреблением);

− драйверы, не поддерживающие спецификации PnP и ACPI (например

драйверы протоколов TCP/IP, IPX/SPX и т.д.), которые расширяют

функциональность системы, предоставляя доступ из режима пользова-

теля к системным сервисам и драйверам режима ядра.

В свою очередь, в каждой из категорий есть группы драйверов, которые

различаются в зависимости от модели устройства и места драйверов в цепочке обработки запроса на обслуживание операций ввода-вывода.

Начиная с Windows 2000, была введена поддержка PnP и энергосберегаю-

щих технологий (ACPI), что привело к созданию модели драйверов, называемой Windows Driver Model (WDM). Здесь речь идет о линейке операционных систем NT, хотя модель драйверов WDM и была ранее реализована в Windows 98 и Windows Millennium Edition, операционная система Windows 2000 и более поздние версии линейки NT поддерживают и так называемые унаследованные драйверы (NT4), естественно, с некоторой потерей функциональности. Модель WDM предусматривает существование трех типов драйверов:

− драйвер шины. Интересным моментом является то, что, в отличие от

операционной система NT4, Windows 2000 и выше, позволяют

реализовать поддержку новых типов шин, не поддерживаемых самой

операционной системой, не путем создания своего HAL (DLL), а всего

лишь добавлением своего драйвера шины. Это крайне существенно для

поставщиков OEM-оборудования;

− функциональный драйвер;

− драйвер фильтра.

В рамках обобщения понятия устройства в Windows существует понятие

класса устройств. Введение этого уровня абстракций сопровождается

неизбежным появлением типа драйверов, отвечающих за обслуживание устройств одного класса (например CD-ROM), и драйверов, отвечающих за решение того или иного уровня взаимодействия с конкретным оборудованием. В рамках этого деления существуют драйверы:

− классов устройств;

− порт-драйверы;

− минипорт-драйверы.

Драйверы устройств в операционной системе Windows могут работать как в

режиме ядра, так и в пользовательском режиме. К последним относятся:

− драйверы виртуальных устройств (VDD);

− драйверы принтеров.

Важнейшим компонентом исполнительной системы, отвечающим за связь с

устройствами, является подсистема ввода-вывода. Построение подсистемы ввода-вывода, как и других компонентов операционной системы Windows призвано обеспечить максимальную устойчивость системы в целом. Поэтому в соответствии с общей доктриной разделения ответственности, связанной с

режимами работы в операционной системе Windows, приложения пользователя не могут обращаться к устройствам (драйверам) напрямую, а лишь через посредников в лице диспетчеров. Некоторые компоненты подсистемы и диспетчеры, как, например, диспетчер Plug-and-Play, работают как в пользовательском режиме, так и в режиме ядра, но в целом вся подсистема и, в частности, ееглавный компонент — диспетчер ввода-вывода работает в режиме ядра. В некотором промежуточном положении (с точки зрения доступности из разных режимов) оказываются inf- и cat-файлы (хранят цифровые подписи,удостоверяющие аттестацию лаборатории Microsoft WHQL — Microsoft Windows HardwareQualityLab) иреестр. Диспетчер ввода-вывода не только обеспечивает

взаимосвязь между приложениями пользователя и драйверами устройств, но

также предоставляет общий для драйверов код, используемый при обработке

запросов, что существенно влияет на минимизацию кода самих драйверов. Он также обеспечивает управление буферами запросов ввода-вывода и при

необходимости вызовы одним драйвером других для организации обработки

запроса по цепочке. Упрощенная схема организации подсистемы ввода-вывода [2] изображена на рисунке 1.3.

Рисунок 1.3 – Компоненты подсистемы ввода-вывода

Подсистема ввода-вывода Windows проектировалась с целью обеспечения

максимальной гибкости, как с точки зрения возможности ее расширения

драйверами специфических устройств, так и с учетом поддержки максимального абстрагирования устройств для прикладных приложений. Важными моментами обеспечения подобной функциональности являются возможности динамической загрузки (явной или на основе перечисления) и выгрузки драйверов, обобщенный вид формируемых структур запросов на ввод-вывод и диспетчеризация. Одним из инструментов регистрации, запуска, останова и выгрузки драйверов служит механизм управления сервисами.