Android的系统架构
LINUX内核的系统架构
基于事件的隐式调用风格
u构件不直接调用一个过程,而是触发或广播一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。
u优点:方便重用,方便改进。
u缺点:不能保证是否响应和调用顺序。数据交换的性能和管理难得到保证。依赖于上下文约束的语义推理。
内存管理
u对任何一台计算机而言,其内存以及其它资源都是有限的。为了让有限的物理内存满足应用程序对内存的大需求量,Linux 采用了称为“虚拟内存”的内存管理方式。Linux 将内存划分为容易处理的“内存页”(对于大部分体系结构来说都是 4KB)。Linux 包括了管理可用内存的方式,以及物理和虚拟映射所使用的硬件机制。
进程管理
u进程调度控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。
虚拟文件系统
隐藏了各种硬件的具体细节,把文件系统操作和不同文件系统的具体实现细节分离了开来,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指Linux所支持的文件系统,如ext2,fat等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。
进程间通讯
uLinux支持进程问各种通信机制。一般情况下,进程在自己的地址空间运行,不会互相干扰,但是有很多应用要求在进程问传递信息,Linux也提供了Unix系统中常用的IPC机制。主要的进程问通讯方式有:管道(pipe)、文件锁、System V IPC、信号(signal)及共享内存。因为Linux支持网络,所以还可以使用网络接口进行进程间通汛。Linux进程闻通讯机制和硬件体系无关。
网络接口
u网络接口模块提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。网络代码在net/目录下,按照协议分成多个子耳录。