하드웨어 추상화

하드웨어 추상화(hardware abstraction)는 특정 플랫폼의 구체적인 부분과 하드웨어의 자원을 직접 접근을 흉내내는 소프트웨어들의 집합이다.

하드웨어 추상화는 프로그램 인터페이스를 통해 하드웨어 리소스에 대한 액세스 권한을 프로그램에 제공한다.

프로그래머가 장치 독립적인 프로그램을 작성하도록 하고 운영 체제의 하드웨어 호출을 무시함으로써 고성능의 응용 프로그램 작성을 허용한다.

하드웨어 추상화 계층 
하드웨어 추상화 계층(HAL, Hardware Abstraction Layer)은 컴퓨터의 물리적인 하드웨어와 컴퓨터에서 실행되는 소프트웨어 사이의 추상화 계층이다. 이것은 하드웨어의 차이를 숨겨서 응용 프로그램이 작동할 수 있는 일관된 플랫폼을 제공한다.

하드웨어 추상화 계층의 적절한 예는 AS/400 구조에서 볼 수 있다. 이 LIC 구현과 인준된 내부 코드는 적어도 3개의 프로세스가 다른 것으로 변경되었다는 극적인 변화에도 불구하고 AS/400을 수정하지 않고도 이전 기종의 S/38 소프트웨어를 실행할 수 있었다.

BSD, 리눅스, 윈도우 NT는 하드웨어 추상화 계층에 기반하고 있다. 이 운영 체제들은 특정한 기능에 대한 하부 시스템을 가지고 있다.

운영 체제는 하드웨어 추상화 계층을 다른 하드웨어로 쉽게 이식할 수 있게 해주는 것으로 정의한다. 이것은 특히 수십 종의 마이크로콘트롤러에서 작동할 임베디드 시스템에 중요하다.

운영체제 기술