Aac dram hal что это
Перейти к содержимому

Aac dram hal что это

Что такое HAL и чем отличается от драйвера?

Frankenstine

Если я правильно понял, то:
Драйвер предоставляет некий интерфейс для доступа к железу.
HAL предоставляет унифицированный интерфейс для доступа к железу.

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

Что такое HAL?

читай, если не лень: HAL (Hardware Abstraction Layer) уровень абстрагирования от аппаратных средств DLL, которая скрывает детали взаимодействия ОС с конкретной аппаратной платформой (кэш-память, ввод-вывод, контроллер прерываний, таймер и т. д.), что позволяет переносить её на другие машины (Первоначально HAL появился в Windows NT для поддержки процессоров PowerPC и Alpha). В частности, содержит механизм распределения задач между процессорами в симметричной многопроцессорной системе, работающей под управлением Windows NT или Windows 2000 API , hardware-independent , portability

HAL
1) hard array logic — аппаратно реализованная матричная логика
2) hardware abstraction layer — уровень аппаратных абстракций (программное обеспечение, которое позволяет высшим уровням операционной системы абстрагироваться от конкретных особенностей аппаратного обеспечения — это обеспечивает переносимость Windows NT на другие платформы)
3) house-programmed array logic — матричная логика с пользовательским программированием

Sysadminium

В этой статье рассматривается архитектура Windows в общих чертах. В следующих уроках рассмотрим каждый элемент архитектуры более подробно.

Архитектура Windows

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

Чтобы лучше понять архитектуру Windows я подготовил такой рисунок:

архитектура Windows

При запуске Windows приложения идет обращение к “Подсистеме Windows“, а уже от туда идет обращение к “Исполнительной системе“, которая запустит процесс для этого приложения.

Microsoft также разработали “Подсистему для Linux” (WSL). Для этого в режим ядра поместили два драйвера: Lxss.sys и Lxcore.sys. Эти драйвера эмулируют ядро Linux. А также, в пользовательском режиме работает специальный менеджер – LX Manager. Этот менеджер обрабатывает приложения для Linux.

Когда вы запускаете Linux приложение, например bash.exe, то идет обращение через LX Manager к драйверам эмулирующим ядро Linux. И уже это ядро запускает и обслуживает данный процесс.

То-есть для Windows приложений существует “Подсистема Windows” в пользовательском режиме и “Исполнительная система” в режиме ядра. А для Linux приложений существует LX Manager в пользовательском режиме и специальные драйвера в режиме ядра.

Помимо “Исполнительной системы” и драйверов эмулирующих работу ядра Linux в режиме ядра работают:

  • драйвера устройств или приложений, которые являются исполняемыми файлами с расширением .sys;
  • ядро операционной системы;
  • HAL – прослойка между ядром (или драйверами) и оборудованием (системной платой).

В системе Windows ядро не выполняет все задачи, которые выполняются в режиме ядра. Ядру помогает “Исполнительная система“. Подробнее про неё будет написано в следующей статье. А пока посмотрим чем занимается само ядро.

Ядро состоит из набора функций Ntoskrnl.exe, которые являются фундаментальными в операционной системе. Эти функции используются компонентами исполнительной системы.

А также ядро поддерживает работу с оборудованием, например работу с прерываниями и процессором. И ещё ядро следит за синхронизацией процессоров в многопроцессорной системе.

С другим оборудованием ядро работает через HAL.

HAL – слой абстрагирования от оборудования. Он представляет собой загружаемый модуль режима ядра hal.dll, и является прослойкой между ядром и оборудованием. Под оборудованием я подразумеваю системную плату или платы расширения, а не периферию. Так драйвера принтеров работают напрямую с принтерами, а не через HAL.

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

Для Windows x86 включена пара библиотек HAL, но загружается одна в зависимости от типа системной платы:

  • halacpi.dll — платы с поддержкой acpi, но без поддержки apic;
  • halmacpi.dll — платы с поддержкой acpi и apic.

Для Windows x64 существует только один образ hal:

  • hal.dll — платы с поддержкой x64 всегда поддерживают acpi и apic.

Windows поддерживает расширения hal — это дополнительные библиотеки, которые могут загружаться при наличии конкретного оборудования, запрашивающего эти библиотеки. Например:

  • HalExtPL080.dll — расширение для контроллера DMA PL080;
  • HalExtIntcLpioDMA.dll — для некоторых платформ intel с пониженным энергопотреблением.

Создание расширений HAL требует сотрудничества с компанией MicroSoft. В связи с этим расширения снабжаются цифровой подписью.

Добавить комментарий

Ваш адрес email не будет опубликован.