Section 9 Chapters Android Hardware Abstraction Layer
Experience
This chapter summarizes the main contents of the Android Hardware abstraction layer, and makes an overall introduction to the Android HAL. Through the 9th chapter of learning, so I have a perceptual understanding of HAL.
First I learned the definition of the hardware abstraction layer of Android, simply, the Linux kernel driver package, provide interfaces upward, shielding the implementation details of the lower level. That is, the support for the hardware is divided into two layers, one layer in user space, one layer in the kernel space (Kernel spaces), where the hardware abstraction layer runs in user space, and the Linux kernel driver runs in kernel space.
Secondly, I understand that the support of the hardware is divided into two layers of the meaning of this arrangement, from a commercial point of view, the hardware support logic is placed in the kernel space, may harm the interests of manufacturers. We know that the Linux kernel source code copyright complies with the GNU License, while the Android source code copyright complies with Apache License, the former must publish the source code when publishing the product, while the latter does not need to publish the source code. If the hardware support for all the code is placed on the Linux driver, it means that the release of the source code to expose the driver, and open source code means that the hardware parameters and implementation are open, in the mobile phone market competition today, which for manufacturers, the damage is very large. Therefore, Android will think of hardware support into the hardware abstraction layer and the kernel driver layer, the kernel driver layer only provides simple access to hardware logic, such as read and write hardware registers of the channel, as to what value from the hardware or write what value to the hardware logic, are placed in the hardware abstraction layer, This will hide the business secrets. It is also because of this layering that Android is kicked out of the Linux kernel mainline code tree. As you can imagine, the hardware support for Android's driver in kernel space is incomplete, and when the Linux kernel is ported to another machine, the hardware is completely useless due to lack of support from the hardware abstraction layer, which is why Android is an open system rather than an open source system.
http://www.cnblogs.com/yun123456/
9th Android Hardware Abstraction Layer learning experience