Hardware Abstraction Layerハードウェアごとの違いを吸収する働きを持つソフトウェアのこと。アプリケーションから要求された機能をハードウェアがサポートしていない場合、要求された機能をソフトウェアで再現する仕組み。