前言
这是一篇关于AndroidOS的init进程的学习记录,init作为Android系统中首个启动的1号进程,自然是大名鼎鼎,我虽然有学习过,看了Android源码,但是总感觉零零散散,就好像在画一个个的点,不够系统,而通过画图能够将其系统直观地呈现出来。

总结
它是 androidOS 中的第一个进程,PID为1,主要做了以下工作:
1.创建并挂载部分OS目录
mkdir("/proc", 0755);
mkdir("/sys", 0755);
mount("tmpfs", "/dev", "tmpfs", MS_NOSUID, "mode=0755");
mkdir("/dev/pts", 0755);
mkdir("/dev/socket", 0755);
mount("devpts", "/dev/pts", "devpts", 0, NULL);
mount("proc", "/proc", "proc", 0, NULL);
mount("sysfs", "/sys", "sysfs", 0, NULL);)
2.初始化并启动属性服务;
- a. 控制属性
- b. 普通属性
3.加载并解析init.rc,fork&exec并启动app_process(zygote)进程。
- 3.1 动作解析器
- 3.2 服务器解析器(启动zygote)
这是一系列的课题,下一篇是关于zygote进程的 AndroidOS之zygote进程时序图
网友评论