Hardware abstraction layer

Hardware abstraction layer

Hardware abstraction layer

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, легко портируются на различное оборудование. Это особенно важно для встраиваемых систем, которые должны работать на большом количестве различных платформ.

См. также

Примечания


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "Hardware abstraction layer" в других словарях:

  • Hardware Abstraction Layer — Hardware Abstraction Layer,   HAL …   Universal-Lexikon

  • Hardware abstraction layer — A hardware abstraction layer (HAL) is an abstraction layer, implemented in software, between the physical hardware of a computer and the software that runs on that computer. Its function is to hide differences in hardware from most of the… …   Wikipedia

  • Hardware Abstraction Layer — Eine Hardwareabstraktionsschicht (engl. HAL, Hardware Abstraction Layer) ist eine architektonische Ebene größerer Computerprogramme oder Systeme solcher Programme, die dafür sorgt, dass andere Software Komponenten nicht auf die Spezifikationen… …   Deutsch Wikipedia

  • Hardware abstraction layer — Couche d abstraction matérielle Pour les articles homonymes, voir HAL. La couche d abstraction matérielle (Hardware Abstraction Layer ou HAL) est une spécification et un utilitaire logiciel qui traque les périphériques du système informatique. Le …   Wikipédia en Français

  • Hardware Abstraction Layer —    Abbreviated HAL. The lowest level of the Microsoft Windows NT operating system, which is specifically tailored to the type of hardware used in the server. If the hardware changes, changes also have to be made to the HAL …   Dictionary of networking

  • Hardware abstraction — Hardware abstractions are sets of routines in software that emulate some platform specific details, giving programs direct access to the hardware resources.They often allow programmers to write device independent, high performance applications by …   Wikipedia

  • Abstraction layer — This is about the concept in computer science, for the concept in grouping, see Principle of abstraction. An abstraction layer (or abstraction level) is a way of hiding the implementation details of a particular set of functionality. Software… …   Wikipedia

  • Operating System Abstraction Layer — An Operating System Abstraction Layer (OSAL) provides an application programming interface (API) to an abstract operating system making it easier and quicker to develop code for multiple software or hardware platforms. OS abstraction layers deal… …   Wikipedia

  • Hardware-Abstraktions-Schicht — Eine Hardwareabstraktionsschicht (engl. HAL, Hardware Abstraction Layer) ist eine architektonische Ebene größerer Computerprogramme oder Systeme solcher Programme, die dafür sorgt, dass andere Software Komponenten nicht auf die Spezifikationen… …   Deutsch Wikipedia

  • Hardware Compatibility List — Ein Betriebssystem ist die Software, die die Verwendung (den Betrieb) eines Computers ermöglicht. Es verwaltet Betriebsmittel wie Speicher, Ein und Ausgabegeräte und steuert die Ausführung von Programmen. Betriebssystem heißt auf Englisch… …   Deutsch Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»