基于 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等服务;