Android中HAL层与内核驱动之间的关系
首先,Android的HAL是为了一些硬件提供商提出的“保护proprietary”的驱动程序而产生的东东,简而言之,就是为了避开linux kernel的GPL license的束缚。Android把控制硬件的动作都放到了user space中,而再kernel driver里面只有最简单的读写寄存器的操作,而完全去掉了各种功能性的操作(比如控制逻辑等),这些能够体现硬件特性的操作都放到了Android的HAL层,而Android是基于Aparch的license,因此硬件厂商可以只提供二进制代码,所以说Android只是一个开放的平台,并不是一个开源的平台。
从网上看到的这样一段话,还存在的疑问是,1.既然“把控制硬件的动作都放到了user space中“,那kernel driver的作用是什么,
2.HAL层与内核驱动层之间是怎么交互的,他们之间的接口函数是什么呢