하드웨어 추상화(Hardware abstraction)는 특정 플랫폼의 구체적인 부분과 하드웨어 자원을 직접 접근을 흉내 내는 소프트웨어들의 집합이다. 하드웨어 추상화는 프로그램 인터페이스를 통해 하드웨어 리소스에 대한 액세스 권한을 프로그램에 제공한다. 프로그래머가 장치 독립적인 프로그램을 작성하도록 하고 운영 체제의 하드웨어 호출을 무시함으로써 고성능 응용 프로그램 작성을 허용한다. 하드웨어 추상화 계층(HAL, Hardware Abstraction Layer)은 컴퓨터의 물리적인 하드웨어와 컴퓨터에서 실시되는 소프트웨어 사이의 추상화 계층이다. 이것은 하드웨어의 차이를 숨겨서 응용 프로그램이 작동할 수 있는 일관된 플랫폼을 제공한다. 간단히 얘기하면 프로그램이 수만 가지 하드웨어를 별 차이 없이 다..