IT用語帳

HAL(ハードウェア抽象化層)

Hardware Abstraction Layer

えいちえーえる

ハードウェアの差異を吸収し、上位ソフトウェアに統一的なインタフェースを提供するソフトウェア層。ハードウェア依存部分をHALに集約することで、アプリケーションやOSのポータビリティを向上させる。
ソフトウェア設計 > ミドルウェアとプロトコルスタック

関連キーワードの用語

ESファームウェア

ハードウェアに組み込まれた制御用ソフトウェア。ROMやフラッシュメモリに格納され、機器の基本的な動作を制御する。ソフトウェアとハードウェアの中間的な存在であり、OTA(Over-the-Air)更新などにより書き換え可能な場合もある。

ESデバイスドライバ

ハードウェアデバイスを制御するためのソフトウェア。デバイスのレジスタ操作、割込み処理、データ転送などを抽象化し、上位のアプリケーションやOSに統一的なインタフェースを提供する。組込みシステムでは各デバイスに応じた専用のドライバを開発する。

ESミドルウェア

OSとアプリケーションの間に位置し、共通的な機能を提供するソフトウェア。組込みシステムでは、ファイルシステム、TCP/IPスタック、USBスタック、GUIライブラリ、データベースエンジンなどが含まれる。

ESプロトコルスタック

通信プロトコルの各層の機能を階層的に実装したソフトウェア。TCP/IPスタック、Bluetoothスタック、USBスタックなどがある。組込みシステムでは、メモリ使用量や処理性能に配慮した軽量スタックが使用される。

ESBSP(ボードサポートパッケージ)

特定のハードウェアボード上でOSやアプリケーションを動作させるために必要なソフトウェア一式。ブートローダ、デバイスドライバ、ハードウェア抽象化層(HAL)などで構成される。ボード固有のハードウェア差異を吸収する。

IPオープンソースソフトウェア

ソースコードが公開され、誰でも自由に使用・改変・再配布できるソフトウェア。GPL、MIT、Apache Licenseなどのライセンス形態がある。利用にあたってはライセンス条件の遵守が必要。