HAL 【Hardware Abstraction Layer】 ハードウェア抽象化レイヤー
概要
HAL(Hardware Abstraction Layer)とは、コンピュータの構成を階層化したモデルのうち、ソフトウェア側の最下位でハードウェアに接し、ハードウェアごとの仕様の違いを吸収して共通の方法で取り扱えるようにする役割を果たす階層のこと。また、そのような機能を実装したソフトウェア部品(コンポーネント)のこと。一般的には、オペレーティングシステム(OS)の基盤部分である「カーネル」(kernel)とハードウェアの間に置かれるプログラム群を指し、個々のハードウェアによって異なる制御方法や通信方法の違いを隠蔽し、カーネル側から共通の仕様に基いて制御できるようにする。
「デバイスドライバ」(device driver)に近い概念だが、HALはCPU(マイクロプロセッサ)やマザーボード、バスなど、どのコンピュータにも共通して必要なハードウェアへのアクセス手段を提供し、周辺機器などのドライバもHALを介して個別の機器を制御する構造になっていることが多い。
OSの仕様にHALを組み込むことによって、機種や製品ごとに異なる仕様への対応が最小限の労力で済むようになり、OSを多くの機種へ対応させることができる。「HAL」という用語を用いるのは主にWindowsだが、他のOSでも何らかの形でHALに相当する仕組みを持っていることが多い。
(2024.1.19更新)