Android的启动流程
1.硬件BOOT、加载Linux内核并挂载Rootfs
2.init进程启动及Native服务启动
3.SystemServer及Android服务启动
4.Home桌面启动
回顾:
【1】Uboot的启动流程
Uboot的启动分为两个阶段。
第一阶段:设置异常向量表,设置ARM核为svc模式,关cache和关mmu,
关看门狗,初始化时钟,串口,内存,初始化栈空间,清bss。跳转到第二阶
段。
第二阶段:硬件的初始化,读取环境变量,将内核从emmc加载到内存中,
调用内核
【2】kernel的启动流程
设置cpu为svc模式,关中断
为内核的解压做准备(内存,中断等等)
内核完成自解压,调用__start_kernel来执行内核
挂载根文件系统
开启第一个用户进程init,执行linuxrc应用程序
【3】rootfs执行过程
Linuxrc调用inittab文件(规定操作系统行为文件)获取操作系统行为。
执行启动第一个脚本rcS,rcS中调用mount -a 挂载fstab中所有设备
当控制台登录的时候,执行bin/sh命令,进入shell命令行(在进入前,会执行profile,设置环境变量)