对于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内核源代码情景分析.rar
《Linux内核源代码情景分析》是一本深入探讨Linux内核源码的权威书籍,它为读者揭示了操作系统内核的奥秘。本书通过详细的情景分析,将复杂的内核概念与实际应用相结合,帮助读者逐步理解Linux内核的工作原理。 在...
4. **内核源代码分析**:理解Linux内核源代码对于开发者来说极其重要,这可以帮助他们优化系统性能、调试问题以及开发新的驱动程序。书中可能详细解析了内核中的关键函数、数据结构和算法。 5. **内核版本管理**:...
### Linux内核源代码情景分析知识点总结 #### 第1章 预备知识 - **1.1 Linux内核简介** - Linux是由Linus Torvalds在1991年开始开发的操作系统内核,其设计思想受到Unix的影响,但并不直接继承Unix的任何代码。 -...
《Linux内核源代码情景分析》是一本深入探讨Linux内核源代码的权威书籍,它为读者提供了全面、详尽的内核解析。该书的完整版特别加入了书签目录和超清文字版,使阅读体验更为便捷,同时也方便了读者进行检索和学习。...
linux内核源代码情景分析,对于深入学习者有很大帮助
Linux内核源代码情景分析是一本专门针对Linux内核源代码进行详细解读的书籍。本书通过对源代码的分析,帮助读者理解Linux内核的工作原理和实现机制。Linux内核作为现代操作系统的核心,是计算机科学和软件工程领域中...
在内容上,《Android系统源代码情景分析(含CD光盘1张)》结合使用情景,全面、深入、细致地分析了Android系统的源代码,涉及到Linux内核层、硬件抽象层(HAL)、运行时库层(Runtime)、应用程序框架层...
Linux内核源代码是每一位对操作系统底层工作原理感兴趣或者在Linux平台上进行系统级开发的工程师必须深入了解的内容。《Linux内核源代码情景分析》这本书,结合了“linux-2.4.0.tar.bz2”这个特定版本的内核源码,为...
Linux内核网络栈源代码情景分析
《Android系统源代码情景分析 第3版》是深入理解Android操作系统内核与应用程序开发的一本重要参考资料。本书针对Java开发者,详细解读了Android系统的各个方面,包括系统架构、进程管理、内存管理、图形系统、网络...
Android系统源代码是开源操作系统的基石,它基于Linux内核,为智能手机、平板电脑以及其他智能设备提供了一个完整的软件栈。本资源"Android系统源代码情景分析-源码"旨在帮助开发者深入理解Android的工作原理,通过...