Hardware Abstraction Layer: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
m (RU:Hardware Abstraction Layer moved to Hardware Abstraction Layer: Translated; Move to default namespace)
No edit summary
 
(7 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Stub}}
{{Stub}}


== Hardware Abstraction Layer ==
The Hardware Abstraction Layer (HAL) is a abstraction layer between the physical PC hardware and the software. HAL is a part of the operating system. It's task is to allow instructions from high level programming languages to communicate between the low-level components (e.g. directly hardware).

A "Hardware Abstraction Layer" or HAL is an abstraction of the actual hardware, so as to present a consistent interface to software even if the underlying hardware alters or different models of the same device class vary a great deal in their implementation and actual interface. A HAL allows programmers to write device drivers in a consistent and largely model / brand agnostic manner, it might even isolate the kernel from much of the installed hardware. Operating systems which make use of a HAL will rarely, if ever, permit user-level software to interface directly with hardware devices and usually will not allow device drivers (which frequently run with privileges) to do so either. [[Device Driver Interfaces]] are one of the most important compoments in HAL.

== Usage Example ==

* A cash register program wants to read name of product just processed by cash register.
* It calls cash register driver to do so, and cash register driver calls '''Device Driver Interface'''.
* Then, Operating System Device Driver Interface, for example, it communicates with cash register using PCI.
* And at the last, Device Driver Interface passes product name from cash register to driver which passes product name to the program.

[[de:Hardware Abstraction Layer]]
[[Category:Kernel]]

Latest revision as of 19:34, 18 September 2016

This page is a stub.
You can help the wiki by accurately adding more contents to it.

Hardware Abstraction Layer

A "Hardware Abstraction Layer" or HAL is an abstraction of the actual hardware, so as to present a consistent interface to software even if the underlying hardware alters or different models of the same device class vary a great deal in their implementation and actual interface. A HAL allows programmers to write device drivers in a consistent and largely model / brand agnostic manner, it might even isolate the kernel from much of the installed hardware. Operating systems which make use of a HAL will rarely, if ever, permit user-level software to interface directly with hardware devices and usually will not allow device drivers (which frequently run with privileges) to do so either. Device Driver Interfaces are one of the most important compoments in HAL.

Usage Example

  • A cash register program wants to read name of product just processed by cash register.
  • It calls cash register driver to do so, and cash register driver calls Device Driver Interface.
  • Then, Operating System Device Driver Interface, for example, it communicates with cash register using PCI.
  • And at the last, Device Driver Interface passes product name from cash register to driver which passes product name to the program.