全部博文(135)
2010年(135)
分类: LINUX
2010-09-07 22:39:10
Android中有些驱动程序提供辅助操作系统的功能,这些驱动程序不是linux的标准驱动,它们一般并不操作实际的硬件,只是辅助系统的运行。主要要以下几种:
Ashmem:匿名共享内存驱动
Logger:轻量级的Log驱动
Binder:基于OpenBinder系统的驱动,为Android平台提供IPC支持。
Android Power Management:电源管理模块
Low Memory Killer:在缺少内存的情况下杀死进程
Android PMEM:物理内存驱动
Binder:Android的Binder驱动程序为用户层提供了IPC支持,Android的运行整个依赖Binder驱动。Binder设备节点名称:/dev/binder。用ls -l /dev/binder可查看设备属性。主设备号为10(misc driver),次设备号动态生成。
Binder驱动程序在内核的路径如下:
\android_kernel_f301\include\linux\binder.h
\android_kernel_f301\drivers\misc\binder.c
Binder在Android用户空间的调用主要表现在对libutil工具库和service manager守护进程的支持。
\frameworks\base\cmds\servicemanager\Binder.c
\frameworks\base\cmds\servicemanager\Binder.h
\frameworks\base\libs\utils\Binder.cpp
\frameworks\base\libs\utils\Binder.h
Binder是Android中主要的使用的IPC方式,通常只需要按照模板定义相关的类即可,不需要直接调用Binder驱动程序的设备节点。