ЖУРНАЛ «СТА» №2/2006

версии ОС), Windows 3.1, MSDOS, POSIX и OS/2; ● подсистемы окружения. Это часть операционной системы (программ- ные оболочки), предоставляющая приложениям пользователя опреде- лённый для конкретной подсистемы набор функций. Windows обеспечи- вает работу с тремя подсистемами окружения: Win32, POSIX и OS/2. Windows 2000 поставляется с двумя подсистемами, а в Windows XP, кроме Win32, не поставляются дру- гие подсистемы окружения. К компонентам ОС, работающим в режиме ядра, относятся: ● исполнительная система, обеспечи- вающая базовыми сервисами в части управления памятью, процессами и потоками, вводомвыводом и т.д.; ● ядро, которое содержит обобщённый набор функций ОС, скрывающий различия между аппаратными плат- формами (на разных этапах развития ОС 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 Hardware Quality Lab) и реестр. Диспетчер вво- давывода не только обеспечивает взаимосвязь между приложениями пользователя и драйверами устройств, но также предоставляет общий для драйверов код, используемый при об- работке запросов, что существенно влияет на минимизацию кода самих драйверов. Он также обеспечивает управление буферами запросов вво- давывода и при необходимости вы- 70 СТА 2/2006 П Р О Г РАММНО Е ОБ Е С П Е Ч Е НИ Е / Д РАЙ В Е Р Ы www.cta.ru

RkJQdWJsaXNoZXIy MTQ4NjUy