아이티/유닉스

HAL (Hardware Abstraction Layer)

김상햄 2020. 3. 29. 04:41

Unix System Structure

 HAL (Hardware Abstraction Layer) (하드웨어 추상화 계층) 은 무엇인가?

HAL은 유닉스 운영체제에서 커널과 하드웨어 사이의 인터페이스를 제공하는 소프트웨어 집합이다.

만약 우리가 각각 다른 구조를 가진 하드웨어들의 운영체제를 만들때 일일이 각 하드웨어 마다 따로 운영체제를 만들어야 하려면 많은 시간과 비용이 들 것이다. 이를 피하기 위해서 고안된 소프트웨어 집합이 HAL이다. HAL을 이용하면 우리가 여러 하드웨어(스마트폰, PC 등..)의 리눅스 운영체제를 만든다고 할때 운영체제를 처음부터 끝까지 전부 수정할 필요 없이 하드웨어에 의존적인 코드 부분만 수정하면 된다. 자주 쓰이는 하드웨어 의존 코드들을 인터페이스(Function)으로 묶어 함수 이름은 그대로 두고, 관련 하드웨어 구조에 따라 코드 내용만 바꿔주면 되는 것이다. 이 작업을 Porting이라고 한다.