声明
- 只要是操作系统,不用说的就是其中肯定会运行着一些很多守护进程(daemon)来完成很多杂乱的工作。通过系统中的init.rc文件也可以看出来,其中每个service中就包含着系统后台服务进程。
- 而这些服务被分为:core类服务(adbd/servicemanager/healthd/lmkd/logd/vold)和main类服务;
- main类服务又分为:网络类服务(netd/mdnsd/mtpd/rild)、图形及媒体类服务(surfaceflinger/bootanimation/mediaserver/drmserver)、其他类服务(installd/keystore/debuggerd/sdcard/Zygote)
分析
并非所有的Android 设备都必须支持 SD 卡,不过在Android 系统中还是有一个 sdcard 守护进程,提供用户态中对 SD 卡的支持,其中包括在不支持权限管理的 FAT 文件系统上强制使用权限管理。这是由一种被称为FUSE (File systems in USEr mode,用户态下的文件系统) 的机制来实现的。这一机制在内核中注册了一个 stub 文件系统,并把对该文件系统的所有调用都传递给一个用户态进程(sdcard 进程)予以处理。相比在内核态中实现一个文件系统,使用 FUSE 更加灵活也更加可靠。文件系统代码使用的灵活性,再加上能够抵御可能并不值得信赖的代码对数据结构的破坏,这些优点使得 FUSE 对于那些使用相对不很频繁的文件系统来说是一个很好的选项 (不过因为从内核态将数据传到用户态