Android内核与标准Linux内核在文件系统、进程间通信机制、内存管理等方面存在不同

1、文件系统:

不同于桌面系统与服务器,移动设备大多采用的不是硬盘而是采用 Flash 作为存储介质。因此,Android 内

核中增加了标准 Linux 专用于 Flash 的文件系统 YAFFS2。对 NAND/Flash 芯片有着良好的支持。YAFFS2

是日志结构的文件系统,提供了损耗平衡和掉电保护,可以有效地避免意外断电对文件系统一致性和完整性

的影响。YAFFS2按层次结构设计,分为文件管理接口、内部实现层和NAND,简化了其本身与系统的接 EI

设计,能更方便地集成到系统当中。经过测试证明,YAFFS2 性能比支持 NOR 型闪存的 JFFS2 文件系统更

加优秀。

2、进程间通信机制:

Android 增加了一种进程间的通信机制 IPC Binder。Binder 通过守护进程 Service Manager 管理系统中的服务,

负责进程问的数据交换。各进程通过 Binder 访问同一块共享内存,以达到数据通信的机制。从应用层的角度看,

进程通过访问数据守护进程获取用于数据交换的程序框架接口,调用并通过接口共享数据,而其他进程要访问数

据,也只需与程序框架接口进行交互,方便了程序员开发需要交互数据的应用程序。

3、内存管理:

在内存管理模块,Android 内核采用了一种不同于标准 Linux 内核的低内存管理策略。在标准Linux内核当中,使

用一种叫做 OOM(Out of Memory) 的低内存管理策略;当内存不足时,系统检查所有的进程,并对进程进行限

制评分,获得最高分的进程将被关闭(内核进程除外),而 Android 系统采用的则是一种叫作 LMK(Low Memory

Killer) 的机制,这种机制将进程按照重要性进行分级、分组,内存不足时,将处于最低级别组的进程关闭。例如,

在移动设备当中,UI界面处于最高级别,所以该进程永远不会被中止。这样,在终端用户看来,系统是稳定运行的。

同时,Android 新增加了一种内存共享的处理方式 Ashmem(Anonymous Shared Memory 匿名共享内存)。通过

Ashmem,进程间可以匿名自由共享具名的内存块,这种共享方式在标准 Linux 当中也是不被支持的。

4、电源管理:

由于 Android 主要用于移动设备,电源管理就显得尤为重要。因此,在Android内核当中增加了一种新的电源管理策略。

目前,Android 采用的是一种较为简单的电源管理策略,通过开关屏幕、开关屏幕背光、开关键盘背光、开关按钮背光

和调整屏幕亮度来实现电源管理,并没有实现休眠和待机功能。目前有三种途径判断调整电源管理策略:RPC调用、

电池状态改变和电源设置。它通过广播 Intent 或直接调用 API 的方式来与其他模块进行联系,电源管理策略同时还

有自动关机机制,当电力低于最低可接受程度时,系统将自动关机。另外,Android 的电源管理模块还会根据用户行

为,自动调整屏幕亮度。

5、驱动及其他:

相对于标准内核,Android 内核还添加了字符输出设备、图像显示设备、键盘输入设备、RTC 设备、USBDevice 设备

等相关设备驱动,增加了日志(Logger)系统,使应用程序可以访问日志消息,使开发人员获得更大的自由。

你可能感兴趣的:(Android内核与标准Linux内核在文件系统、进程间通信机制、内存管理等方面存在不同)