基于 Android 6.0.0 源码进行分析
init 进程涉及的源码:
/system/core/init/init.cpp
概述
init 进程是 Linux 系统中用户空间的第一个进程,其进程号为 1。在 Kernel 启动后,在用户空间启动 init 进程,并调用 init 中的 main() 方法执行 init 进程的职责。对于 init 进程的功能,通过分析其 main() 方法的逻辑,主要可以划分为以下 5 部分:
- 挂载、创建所系统运行所需要的目录,如
tmpfs、pts、proc… - 加载属性服务;
- 解析并运行所有的 init.rc 相关的文件;
- 化身为守护进程,处理signal、property和keychord等服务;
