Android基礎

lc_chentinghua發表於2016-05-10

HAL(Hardware Abstract Layer)硬體抽象層,執行在使用者空間,向下遮蔽硬體驅動模組的實現細節,向上提供硬體訪問服務。

Linux核心原始碼GPL(GNU General Public License,GNU通用公共許可證,是一個被廣泛使用的自由軟體許可證)協議,所有修改均需開源。

Android系統原始碼遵循Apache License(對商業應用友好的許可)協議,它允許移動裝置廠商新增或者修改Android系統原始碼,而不必公開這些程式碼。

一方面硬體廠商是不願意公開自己的硬體實現引數與細節,另一方面是隻有核心空間才有特權操作硬體裝置,所以硬體的支援被分為兩部分,分別實現在核心空間和使用者空間。

核心空間仍然是以硬體驅動模組的形式來支援,不過它只提供簡單的硬體訪問通道。

使用者空間以硬體抽象層模組的形式來支援,它封裝了硬體的實現細節和引數,用以保護移動裝置廠商的利益。

 

而Android的學習從Kernel Space中的Linux Device Drivers開始,研究硬體通道的有關問題。

相關文章