input core 와 HAL(Hardware abstraction Layer)간의 차이점이 뭔가요?
android 측면에서 살펴보면 user는 HAL(Hardware abstraction Layer)를 통해서 device driver로
접근해서 device를 제어하는 것으로 알고있습니다. 이때 devidce driver는 file operator 구조체를
재정의(?)해서 구현할 수있는 것으로 알고있습니다.
input core함수는 input.c에 정의되어 있는데 keyboard나 touch같은 input device를 제어해주는
부분으로 알고 있습니다. input_handler()(input.c에 정의되어 있는걸로 알고있습니다.)함수를 touch
에서 interrupt가 발생하면 device driver가 인식하고 인식한 device driver는 통해
input_report_abs()같은 함수를 통해 큐에 저장시켰다가 input_sync()를 통해 input core에게 event가 발생했음을 알려주는 것으로 알고 있습니다.
1. 여기서 궁금한 것은 그럼 결국 HAL이라는 것은 결국 device driver를 제어하는 영역을 말하는 것이고
HAL영역에서 input device driver를 제어하는 것은 input core인 것인건가요??
2. HAL의 영역을 두는 것은 linux의 장점인 추상화를 통해 유저 입장에서 device를 제어할 경우 편하게 사
용하게 하기 위해서 HAL영역을 따로 두는 것인가요!?
두가지 질문을 합니다. 프로그래머로 거듭나기 위해 열심히 달리는 1인입니다.
짧은 지식으로 대충 후려 갈겼네요.. 틀린 부분 지적해주시면 감사하겠고, 답변 기대하겠습니다.
댓글 달기