码迷,mamicode.com
首页 > 其他好文 > 详细

第九章读后感

时间:2016-06-27 23:15:05      阅读:181      评论:0      收藏:0      [点我收藏+]

标签:

HAL硬件抽象层是建立在Linux驱动之上的一套程序库。属于Linux内核层上的应用层。添加它的主要目的就是尽量避免应用程序直接访问Linux驱动,保护“私人财产”。传统的Linux驱动一般有两种类型的代码:访问硬件寄存器的代码和业务逻辑代码。

       Linux驱动的业务逻辑对于部分企业或个人来说并不想将源代码公开,尽管这些Linux驱动是免费给用户的使用的,但由于这些Linux驱动的实现涉及一些技术专利或商业秘密,若是公开会有很大麻烦。但是作为Linux驱动,又不得不公开源代码。Google为了满足这些不想开源的Linux驱动作者的要求,在Android层次结构中的系统运行库层添加了一个HAL。HAL并不是Linux内核的一部分,而是位于Android的系统运行库层。

       Google为Android加入HAL的主要目的

1、  统一硬件的调用接口。由于HAL有标准的调用接口,所以可以利用HAL屏蔽Linux驱动复杂、不统一的接口。

2、  解决了GPL版权问题。由于Linux内核基于GPL协议,而Android基于Apache Licence 2.0协议。因此Google将原本位于Linux驱动中国的敏感代码向上移了一个层次。这样这些敏感代码就摆脱了GPL协议的束缚,那些不想开源的Linux驱动作者就没必要开源了。

3、  针对一些特殊的要求。对于有些硬件,可能需要访问一些用户空间的资源,或在内核空间不方便完成的工作以及特殊需求。在这种情况下,可以利用位于用户空间的HAL代码来辅助Linux驱动完成一些工作。

第九章读后感

标签:

原文地址:http://www.cnblogs.com/Silence-w/p/5621620.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!