3.1 Android的Linux和标准Linux区别
Android和标准Linux2.6相同,只是多增加了内容,有两种:Android专用驱动和Android使用的设备驱动。还增加了些内容,如yaffs文件系统。
3.2 Android专用驱动
这些驱动一般不操作实际硬件,只是辅助系统运行,包括:
1. Ashmen:匿名共享内存驱动。
2. Logger:轻量级Log驱动。
3. Binder:基于OpenBinder系统驱动,为Android平台提供IPC支持。
4. PM: 电源管理模块。
5. Low Memory Kill: 缺少内存时,杀死进程。
6. Android PMEM: 物理内存驱动
a)Ashmem
通过这种内核机制,可为用户空间程序提供内存分配机制。实现类似于malloc()功能。
b)Binder
Binder的驱动程序为用户层程序提供IPC支持,整个系统依赖于它。它是Android主要使用的IPC方式,通常只要按照模板定义相关类即可,不用直接调用驱动。
c)Logger
该驱动为用户层提供log支持,作为一个工具使用。
3.3 Android使用的设备驱动
a)Framebuffer
标准显示设备驱动。每个系统可以有多个显示设备,对应也可以有多个framebuffer。在用户空间大多使用ioctl、mmap等接口来操作。也可以直接write操作,直接输出显示内容。架构如下: