对于android的开发者来说,最初学习android的时候一定有一个疑问,就是android和java到底有什么不同,这个问题不是今天讨论的范围,咱们暂且不表。待逐渐深入,尤其是了解了android的内核后会有另外一个疑问,它的内核跟linux有什么区别?
Greg
Kroah-Hartman用最简单的话这样总结“它只用了kernel,别的东西没用”,这句话的意思是,跟传统linux相比,android只有系统底层结构是一样的,其他东西都不一样,尤其是程序员的编程接口。因此,现存的Linux程序无法移植到android上去。所以,从某种意义上说,Android是一种全新的系统。恐怕这也是2010年,Android 代码被从 Linux kernel 代码库中删除的原因之一,而且是很重要的原因。
上面所说的这个区别,也就是《Android系统源代码情景分析》试读章节中所提到的android对硬件支持划分为两层,在具体说之前,我们先来看看它是如何划分的。
<!--[endif]-->
图中的HAL就是android特有的硬件抽象层,简单说,它就是对linux驱动程序的封装,向上提供接口,屏蔽底层的实现细节。也就是说,把其对硬件的支持分为User Space(用户空间)和Kernel Space(内核空间)两层,其中硬件抽象层运行在用户空间,内核驱动程序运行在内核空间。
那么为什么要这么安排?整合起来都放在内核空间里不行么?从技术实现当然没问题,毕竟linux就是这样的。但是android不是linux,他需要有自己商业化的一部分。我们都知道,linux内核源代码是要遵循GPL的。其在发布时,必须要公开源代码。那么如果你是硬件商,想要你的硬件能在kernel下运作,就必须要有驱动,如果你将驱动程序放在内核空间里开源,那么就跟公开你的所有硬件配置一样了,所有厂商都不愿意这么做。所以android实现的等方式是把大部分的商业秘密都放到硬件抽象层里,不进行公开,而在内核驱动层只提供简单的访问逻辑和接口。
尽管存在着如此的争议,但是android解决了长期令手机制造商头痛不已的问题:业界缺乏一个开源的Java虚拟机,以及统一的应用程序接口。现在,程序员只要写一次程序,就能在各种手机硬件平台之上使用。对于android内核,我也只了解了一点点,也希望能通读《Android系统源代码情景分析》,了解更多更深的内容。
- 大小: 144 KB
分享到:
相关推荐
丛书名: Linux内核源代码情景分析 出版社:浙江大学出版社 目录 第1章 预备知识 1.1 Linux内核简介. 1.2 Intel X86 CPU系列的寻址方式 1.3 i386的页式内存管理机制 1.4 Linux内核源代码中的C语言代码 1.5 Linux...
linux内核源代码情景分析linux内核源代码情景分析linux内核源代码情景分析linux内核源代码情景分析linux内核源代码情景分析linux内核源代码情景分析linux内核源代码情景分析
linux内核源代码情景分析,对于深入学习者有很大帮助
Linux 内核源代码情景分析_全册_带书签 非扫描版 高清 文字版 可选择复制
Linux内核源代码情景分析(高清版) 让你对linux内核的细节熟悉,让你更快的对linux内核开发得心应手
Linux内核源代码情景分析(完整版-带书签目录超清文字版).pdf 这个是带完整目录书签的文字版本,文本内容可以复制的哦
《Linux内核网络栈源代码情景分析》主要对Linux1.2.13内核协议栈的全部源代码做了详细的分析,该版本所有代码都在一个文件夹中,每种协议的实现都只有一个文件与之对应,分析该版本源代码可以方便读者迅速掌握Linux...
Linux内核源代码情景分析.pdf---linux-2.4.0.tar.bz2--Source Insight 3
Linux内核源代码情景分析.pdfLinux内核源代码情景分析.pdfLinux内核源代码情景分析.pdfLinux内核源代码情景分析.pdf
在内容上,本书结合使用情景,全面、深入、细致地分析Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层(Application Framework)以及应用程序层(Application)。...
Linux内核源代码情景分析
linux内核源代码情景分析.pdf
linux内核分析----初始化 linux内核分析----初始化 linux内核分析----初始化 linux内核分析----初始化
LINUX内核源代码情景分析,针对linux kernel 2.6.
LINUX内核源代码情景分析(下)LINUX内核源代码情景分析(下)LINUX内核源代码情景分析(下)
LINUX内核源代码情景分析 PDF 清晰 包含目录
linux内核源代码情景分析,kind直接适用版 已经转换过了,所以可以直接用kind打开
linux内核简介在Linux既允许把设备驱动程序在编译时静态地连接在内核中,一如传统的驱动程序那样;也允许动态地在运行时安装,称为“模块”;还允许在运行状态下当需
linux源码情景分析(高清带标签版),linux源码情景分析(高清带标签版),linux源码情景分析(高清带标签版),重要的事情说三遍!