Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Поддержка оборудования. Назначение и основные функции HAL. Типы драйверов




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

Hardware Abstraction Layer (HAL, Слой аппаратных абстракций) — слой абстрагирования, реализованный в программном обеспечении, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, запускаемом на этом компьютере. HAL предназначен для скрытия различий в аппаратном обеспечении от основной части ядра операционной системы, таким образом, чтобы большая часть кода, работающая в режиме ядра не нуждалась в изменении при её запуске на системах с различным аппаратным обеспечением. На персональных компьютерах HAL, по существу, может рассматриваться как драйвер материнской платы, позволяющий взаимодействовать инструкциям высокоуровневых языков программирования с низкоуровневыми компонентами, такими как аппаратное обеспечение.

HAL является даже более низким уровнем в компьютерных языках программирования, чем API, потому что он взаимодействует непосредственно с аппаратным обеспечением вместо ядра системы, следовательно HAL требует меньше процессорного времени чем API.

Идея – предоставлять всей остальной части ОС абстрактные виртуальные устройства, эти устройства представляются в виде машинно-независимых служб(процедурных вызовов и макросов), которые могут использоваться основной частью ОС и драйверами. Т.к. драйверы и ядро ОС пользуются службами HAL (идентичными для всех программно-аппаратных платформ, на которые планировалось установить Windows2000) и не обращаются к устройствам напрямую, требуется значительно меньше изменений для их переноса с платформы на платформу. Перенести сам HAL менее проблематично, так как весь машинно-зависимый код сосредоточен в одном месте(новая платформа – новый HAL).

Как правило, уровень HAL включает следующие основные опции:

· адресацию устройств

· управление регистрами

· обработка/возврат из прерываний

· операци с DMA

· управление устройствами службы времени

· интерфейс с BIOS

·...

Упрощенно место HAL в структуре Windows2000:

Переносимость адресации устройств – за счет отображения физических адресов на логические адреса. Структура логического адреса сходна по формату с используемыми в Windows2000 дискрипторами системных ресурсов. Переносимость прерываний обеспечивается двумя службами HAL:

· уникальным наименованием прерываний в каждой конкретной платформе

· связыванием прерываний с драйверами устройств.

Переносимость механизма DMA обеспечивается службой, которая позволяет управлять как единой для всех механизмом DMA, так и специфическими для разных платформ. Также уровень HAL обеспечевает синхронизацию при SMP и настройку своих служб в зависимости от конфигурации BIOSа.

Во время установки Windows2000 в зависимости от платформы выбирается наиболее подходящих тип HAL. В данной ОС драйверы устройств могут выполнять специфические функции, не связанные конкретно с внешним устройством, например, кодировки информации или быстрого доступа к некоторым структурам данных ядра. Выполнение запросов на ввод-вывод выполняется с помощью API. Запросы на ввод-вывод передаются драйверам в виде стандартных пакетов, которые назвыются IRP. При создании драйвера для Windows2000 он должен удовлетворять следующим требованиям: должен поддерживать работу с объектами в формате, принятом в Windows2000, должен поддреживать устройства Plug&Play, должен поддреживать режим энергосбережения для внешних устройств, должен быть настраиваемым, то есть не иметь встроенной поддержки определеннных аппаратных опций, должен поддерживать функционирование в многопроцессорной системе.

Типы драйверов устройств. Драйвер устройства – программа, управляющая конкретной моделью внешнего устройства и учитывающая его особенности; программа, которая общается с контроллером, отдает ему команды и получает ответы. Windows поддерживает множество типов драйверов устройств и сред их программирования. Драйверы могут работать в двух режимах: в пользовательском или в режиме ядра.

В пользовательском режиме:

1. Драйверы виртуальных устройств (virtual device drivers, VDD)

Используются для эмуляции 16-разрядных программ MS-DOS; перехватывают обращения таких программ к портам ввода-вывода и транслируют их в вызовы Windows-функций ввода-вывода, передаваемые реальным драйверам устройств. MS-DOS пользовательского режима не могут напрямую обращаться к аппаратным средствам — они должны делать это через драйверы устройств режима ядра.

2. Драйверы принтеров.

Драйверы подсистемы Windows, которые транслируют аппаратно-независимые запросы на графические операции в команды, специфичные для принтера. Далее эти команды обычно направляются драйверу режима ядра, например драйверу параллельного порта (Parport.sys) или драйверу порта принтера на USB-шине (Usb-print.sys).

 

В режиме ядра:

1. Драйверы файловой системы.

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

2. PnP-драйверы.

Драйверы, работающие с оборудованием и интегрируемые с диспетчерами электропитания и PnP. B их число входят драйверы для устройств массовой памяти, видеоадаптеров, устройств ввода и сетевых адаптеров.

3. Драйверы, не отвечающие спецификации Plug and Play

Также называются расширениями ядра. Расширяют функциональность системы, предоставляя доступ из пользовательского режима к сервисам и драйверам режима ядра. Они не интегрируются с диспетчерами PnP и электропитания. K ним, в частности, относятся драйверы протоколов и сетевого API.

 




Поделиться с друзьями:


Дата добавления: 2015-06-25; Просмотров: 1313; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.