Android系统架构
(一)Linux Kernel(/kernel,/bootable,/devices)
Android内核 对Linux内核进行了增强,增加了一些面向移动计算的特有功能。例如:
- 低内存管理器LMK(Low Memory Keller)。源代码位于 drivers/staging/ android/lowmemorykiller.c
- 匿名共享内存(Ashmem),mm/ashmem.c。
- 轻量级的进程间通信Binder机制,源代码位于drivers/staging/android/binder.c。等。
这些内核的增强使Android在继承Linux内核安全机制的同时,进一步提升了内存管理,进程间通信等方面的安全性。
Android Linux Kernel 特征:
1.它没有glibc支持
由于Android最初用于一些便携的移动设备上,所以,可能出于效率等方面的考虑,Android并没有采用glibc作为
C库,而是Google自己开发了一套Bionic Libc来代替glibc。
2.它并不包括一整套标准的Linux使用程序
Android并没有完全照搬Liunx系统的内核,除了修正部分Liunx的Bug之外,还增加了不少内容,比如:它基于ARM
构架增加的Gold-Fish平台,以及yaffs2 FLASH文件系统(如果学习了嵌入式的话就会知道yaffs2 FLASH文件系
统已经在基于linux的很多嵌入式设备上采用了,技术已经非常成熟)等。
3.它没有本地基于X服务的窗口系统
什么是本地窗口系统呢?本地窗口系统是指GNU/Linux上的X窗口系统,或者Mac OX X的Quartz等。不同的操作系统
的窗口系统可能不一样,Android并没有使用(也不需要使用)Linux的X窗口系统(对原作者的这个观点不是很赞
同,原文章这一点放在第一条,并说“这是Android不是Linux的一个基本原因”,这个不敢苟同&#x