前言
简单总结一下init进程相关知识,之前有摘抄过《》,这里就不会详细跟踪,也就简单的总结一下。
记录于此,方便自己查阅。不一定会您有用,可以跳过,谢谢。
正文
init相关内容涉及目录:
\system\core\init
init前戏
在启动init之前,Android系统需要做如下几个步骤。
1. 启动电源
当电源按下时,引导芯片代码从预定的位置(固化的ROM中的程序)开始启动。引导BootLoader到RAM中。
2. 启动BootLoader
引导程序BootLoader是Android系统运行前的一个程序,主要作用是把系统拉起来运行。
3. Linux内核启动
当内核启动时,设置缓存,保护存储器,加载驱动等。
内核启动完后,第一件事就是启动init进程。
4. init启动
init进程中的任务比较多,主要是用来初始化和启动属性服务,以及启动Zygote进程。
小结
当用户按下电源,从ROM固定位置中加载引导程序,引导程序又启动Linux内核,在Linux内核加载完成后,马上启动Init进程。
接下来就是Init的主场了。
init启动
由于之前跟着其博主文章走过一遍,这里只是简单的整理一下,细节不深入。
下面是init中主要任务
挂载文件系统,创建设备节点
初始化属性,启动属性服务,以及监听属性变化
监听和处理子进程终止
解析init.rc和其他.rc文件
启动了zygote等进程
init.rc
init.rc 文件并不是普通的配置文件,而是由一种被称为“Android初始化语言”(Android Init Language,这里简称为AIL)的脚本写成的文件。
\system\core\rootdir\init.rc
该语言主要包含如下5中类型语句:
这部分内容看《[》。
参考文章
《》
《[》
© 版权声明