[운영체제] Hardware Abstraction Layer (HAL) 이란?

이트루·2022년 9월 19일
0
post-custom-banner

하드웨어 추상화 계층(Hardware Abstraction Layer)이란, 말 그대로 보자면 하드웨어를 사용하기 위한 abstraction layer이다. 이는 하드웨어의 구체적인 특징 및 복잡한 내부 구조를 감추고, 깔끔하고 일관성 있는 인터페이스를 제공한다. 기반이 되는 하드웨어의 종류에 관계없이 단순, portable하고 추상화된 API를 통해 응용 프로그램들이 호스트 시스템의 컴퓨터 하드웨어를 발견하고 사용할 수 있게 하는 것이다.

이전에는 hardware가 다양하지 않았기에 direct로 구현해도 대부분 커버 가능한 수준이었다. 그러나, 기술의 발전에 따라 다양한 하드웨어가 생겨나며 OS 측에서 direct로 구현하면 하드웨어가 변경될 때 마다 새로 구현해줘야 하는 번거로움이 생겨났다. 따라서 HAL이라는 개념이 등장하게 되었는데, 이는 OS 쪽이 아닌 하드웨어의 공급 업체에서 구현해야 하는 표준 인터페이스를 정의하며 OS에서 하위 수준의 드라이버 구현을 고려하지 않아도 되게 해주는 시스템이다. Driver(하드웨어)는 바뀌어도 APP쪽에서 사용하는 API는 그대로 사용하는 것이다. 따라서 하드웨어의 변경에 따라 APP단이 변경되지 않고, 상위 수준 시스템을 수정하거나, 시스템에 영향을 주지 않고도 하드웨어 관련 기능을 구현할 수 있다. 다시 한번 강조하자면, OS가 아닌 하드웨어 공급업체에서 제품에서 제공하는 특정 하드웨어에 상응하는 HAL 및 드라이버를 구현하도록 한다.

예를 들어보자. Word 프로그램에서 작성한 글을 복사기로 프린트하려고 한다. 이때, HAL이 없다면 하드웨어에 맞춰 프로그램들을 수정해야 할 필요가 있다. 그러나, HAL을 이용한다면 복잡한 과정 없이 프린터기 변경을 손쉽게 할 수 있다. - 호환성

  • API: 컴퓨터나 소프트웨어를 서로 연결하는 Interface. 시스템이 동작하는 방식에 관한 내부의 세세한 부분을 숨기는 것을 목적으로 하며, 내부의 세세한 부분이 나중에 변경되더라도 프로그래머가 유용하게 사용할 수 있고 일정하게 관리할 수 있는 부분들만 노출시킨다
profile
내 꿈은 세계정복🧐
post-custom-banner

0개의 댓글