AndroidOS之init进程时序图

前言

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

zygote-sequence-diagram.png

总结

它是 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进程时序图

你可能感兴趣的:(AndroidOS之init进程时序图)