Слой аппаратных абстракций | это... Что такое Слой аппаратных абстракций? (original) (raw)

У этого термина существуют и другие значения, см. HAL.

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

В операционных системах семейства Windows NT HAL является неотъемлемой частью кода, исполняемого в режиме ядра, находится в отдельном загрузочном модуле, загружаемом совместно с ядром.[1] Это обеспечивает возможность использования одного и того же загрузочного модуля собственно ядра ОС Windows NT на ряде систем с различными архитектурами шин ввода/вывода, управления прерываниями и таймерами. К примеру, рабочие станции, основанные на SGI Intel x86 (англ.)русск., были не совместимы с IBM PC-совместимыми рабочими станциями, но благодаря HAL Windows NT мог запускаться на них. Аналогичным образом одно и то же ядро Windows NT используется и на современных системах с контроллером прерываний APIC, так и на устаревших системах без поддержки APIC.

BSD, Mac OS X, Linux, CP/M, MS-DOS, Solaris и некоторые другие портируемые ОС также имеют HAL, несмотря на то, что он не разрабатывался явно для выполнения описанных выше функций. Некоторые системы, такие как Linux, имеют возможность вставлять подобный слой, к примеру Adeos (англ.)русск., во время работы. Ядро операционной системы NetBSD широко известно наличием чистого слоя абстрагирования от аппаратного обеспечения (HAL), что позволяет ему быть высоко-портируемым. Частью этой системы являются uvm(9)[2]/pmap(9)[3], bus_space(9)[4], bus_dma(9)[5] и другие подсистемы. Популярные шины, которые используются более чем на одной архитектуре, такие как ISA, EISA, PCI, PCI-E и др., также абстрагированы, позволяя написанным под них драйверам также быть высоко-портируемыми с минимальным изменением кода.

«Экстремальный» пример HAL может быть найден в архитектурах System/38 (англ.)русск. и AS/400. Большинство компиляторов для таких систем генерируют абстрактный машинный код. Лицензированный внутренний код (Licensed Internal Code (англ.)русск., LIC) переводит этот виртуальный машинный код во внутренний(собственный) код процессора, на котором он запускается, и выполняет получившийся внутренний код. (Исключение составляют компиляторы, которые сами генерируют ЛИК; эти компиляторы не доступны за пределами IBM). К примеру, прикладное программное обеспечение и программное обеспечение операционной системы, расположенные над слоем ЛИК, скомпилированные на оригинальной архитектуре System/38, запускаются без каких-либо модификаций и перекомпиляций на последних системах AS/400. И это несмотря на тот факт, что лежащее в основе аппаратное обеспечение было кардинально изменено; по крайней мере три различных типа микропроцессоров находились в использовании.

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

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

См. также

Примечания

  1. Windows NT Hardware Abstraction Layer (HAL). Microsoft (31 октября 2006). Архивировано из первоисточника 3 марта 2012. Проверено 25 августа 2007.
  2. uvm(9) — NetBSD Manual Pages
  3. pmap(9) — NetBSD Manual Pages
  4. bus_space(9) — NetBSD Manual Pages
  5. bus_dma(9) — NetBSD Manual Pages
Просмотр этого шаблона Аспекты операционных систем (историясписок)
Ядро ГибридноеМикроМодульноеМонолитноеНаноЭкзоДрайверПространство пользователя • Область пользователя
Управлениепроцессами Режимы (супервизорареальныйзащищённый) • ПрерываниеКольца защитыПереключение контекстаМногозадачность (вытесняющаякооперативнаямультипрограммирование) • Процесс • Управление процессом • Планировщик задачМногопоточность
Управлениепамятью Защита памятиСегментная адресация памятиСтраничная памятьМенеджер виртуальной памятиОшибка сегментации • Общая ошибка защиты
Прочее Загрузчик ОСAPIVFSКомпьютерная сетьGUIСлой аппаратных абстракций (HAL)
Просмотр этого шаблона Компоненты Microsoft Windows
Основные AeroClearTypeДиспетчер рабочего столаDirectXПанель задач (ПускОбласть уведомлений) • Проводник (Пространство имён • Специальные папки • Ассоциации файлов) • Windows Search (Smart folders • iFilters) • GDIWIMSMB.NET FrameworkXPS • Active Scripting (WSHVBScriptJScript) • COM (OLEDCOMActiveX • Структурированное хранилище • Сервер транзакций) • Теневая копияWDDM • UAA • Консоль Win32
Службыуправления Архивация и восстановление • COMMAND.COMcmd.exeСредство переноса данных • Просмотр событий • Установщикnetsh.exePowerShell • Отчёты о проблемах • rundll32.exe • Программа подготовки системы (Sysprep) • Настройка системы (MSConfig) • Проверка системных файлов • Индекс производительности • Центр обновленияВосстановление системыДефрагментация дискаДиспетчер задачДиспетчер устройствКонсоль управленияОчистка дискаПанель управления (элементы)
Приложения Контакты • DVD Maker • Факсы и сканирование • Internet Explorer • Журнал • Экранная лупаMedia CenterПроигрыватель Windows Media • Программа совместной работы • Центр устройств Windows Mobile • Центр мобильности • Экранный диктор • Paint • Редактор личных символов • Удалённый помощник • Распознавание речи • WordPadБлокнотБоковая панельЗвукозапись • Календарь • КалькуляторНожницыПочта • Таблица символов • Исторические: Movie MakerNetMeetingOutlook ExpressДиспетчер программДиспетчер файловФотоальбом
Игры Chess Titans • Mahjong Titans • Purble Place • Пасьянсы (КосынкаПаукСолитер) • СапёрПинбол • Червы
Ядро ОС Ntoskrnl.exeСлой аппаратных абстракций (hal.dll) • Бездействие системыsvchost.exeРеестрСлужбыДиспетчер управления сервисамиDLL (формат модулей) • PENTLDR • Диспетчер загрузки • Программа входа в систему (winlogon.exe) • Консоль восстановления • Windows RE • Windows PE • Защита ядра от изменений
Службы Autorun.inf • Фоновая интеллектуальная служба передачи • Файловая система стандартного журналирования • Отчёты об ошибках • Планировщик классов мультимедиа • Теневая копияПланировщик задач • Беспроводная настройка
Файловые системы ProtogonNTFS (Жёсткая ссылкаТочка соединенияТочка монтирования • Точка повторной обработки • Символьная ссылкаTxFEFS) • WinFSFATexFATCDFS • UDF • DFS • IFS
Сервер Active Directory • Службы развёртывания • Служба репликации файлов • DNS • Домены • Перенаправление папок • Hyper-VIIS • Media Services • MSMQ • Защита доступа к сети (NAP) • Службы печати для UNIX • Удалённое разностное сжатие • Службы удаленной установки • Служба управления правами • Перемещаемые профили пользователейSharePoint • Диспетчер системных ресурсов • Удаленный рабочий стол • WSUS • Групповая политикаКоординатор распределённых транзакций
Архитектура NT • Диспетчер объектов • Пакеты запроса ввода/вывода • Диспетчер транзакций ядра • Диспетчер логических дисков • Диспетчер учетных записей безопасности • Защита ресурсовlsass.execsrss.exesmss.exe • spoolsv.exe • Запуск
Безопасность BitLockerЗащитникПредотвращение выполнения данных • Обязательный контроль целостности • Защищенный канал данных • UAC • UIPI • БрандмауэрЦентр обеспечения безопасностиЗащита файлов
Совместимость Подсистема UNIX (Interix) • Виртуальная машина DOS • Windows on WindowsWOW64