前言

简单总结一下init进程相关知识,之前有摘抄过《Androidinit进程的启动》,这里就不会详细跟踪,也就简单的总结一下。

记录于此,方便自己查阅。不一定会您有用,可以跳过,谢谢。

正文

init进程是Android系统重用户空间的第一个进程,进程号为1,是Android系统启动流程中的重要一步。作为天字一号的进程,做了很多极其重要的任务,比如创建Zygote和属性服务等工作。

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中主要任务

  1. 挂载文件系统,创建设备节点

  2. 初始化属性,启动属性服务,以及监听属性变化

  3. 监听和处理子进程终止

  4. 解析init.rc和其他.rc文件

  5. 启动了zygote等进程

init.rc

init.rc 文件并不是普通的配置文件,而是由一种被称为“Android初始化语言”(Android Init Language,这里简称为AIL)的脚本写成的文件。

\system\core\rootdir\init.rc

该语言主要包含如下5中类型语句:

  1. Action

  2. Command

  3. Service

  4. Option

  5. Import

这部分内容看《[]Android源码之init.rc文件规则和init.c解析》。

参考文章

  1. Android init进程的启动

  2. 《[]Android源码之init.rc文件规则和init.c解析

  3. 《Android进阶解密》

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
none
暂无评论...