HAL
読み:ハル
外語:HAL: Hardware Abstraction Layer
ハードウェアとソフトウェアの中間に位置し、ソフトウェアによって実装された抽象化のためのレイヤー。
概要
HALの考え方はシステムごとに千差万別である。カーネル空間にHALを置く場合と、ユーザー空間に置く場合とがある。
カーネル空間のHALは、デバイスドライバーのような存在であることが多く、ハードウェアにかかわらず共通のAPIを提供するような設計となることが多い。
ユーザー空間に置く場合、いわゆるミドルウェアとカーネルを分離して、上下を緩い繋がりとする設計で見られ、例えばAndroidなどはこのような設計である。ハードウェアの違いは、カーネルとHALのどちらかまたは両方で吸収できる。
特徴
設計ごとにHALの扱いは異なるが、いずれにせよハードウェアの違いをHALで吸収して共通のAPIを提供する。
これにより、上位アプリケーションがハードウェアにアクセスする場合でも、上位アプリケーションを殆ど変更せずに済む。
再検索