- 论坛徽章:
- 0
|
tempname2 发表于 2012-03-10 01:01 ![]()
Android的HAL就是很普通的中间层。它只不过把已经抽象的东西再抽象一次。硬件被操作系统抽象了,在LINUX中大 ...
另外,HAL层在用户态的一个好处是,可以以闭源形式发布”驱动”。内核中的驱动代码仅暴露出基本的读写寄存器接口,这部分可以公开。而直正读写寄存器操作硬件的逻辑则在HAL层里实现,这部分则闭源发布二进制。
这个说法遍地都是。能否举一个具体的例子,android手机上的什么驱动放在HAL/用户态中?
我看过一些android架构介绍文档,基本上驱动都是放在内核态
linux本身也支持用户态驱动,比如framne buffer,但是linux的各种设备驱动基本上都是放在内核态中的。把所有驱动都放在用户态,这对linux等OS来说是极大的改动,甚至是成为基本的微内核架构,不是简单一个HAL就能搞定的,如果网卡驱动放到了用户态,那么协议栈是不是也要放到用户态?
把驱动放在用户态闭源就可以隐藏设备寄存器接口技术信息了么?比较复杂的软件如果想保护里面的实现知识产权,都是要加密的,否则反汇编、反编译、逆向工程就可以搞定了。驱动如果也加密,可想而知那个效率
|
|