Android启动流程

1.设备上电后,跳转到boot rom中的boot code(固化在rom中)中执行,brom初始化栈,找到并初始化启动设备(外部memory比如emmc);

2.加载emmc中的preloader到内部ISRAM中,preloader开始执行,执行硬件初始化,创建c运行环境;

3.preloader从emmc中加载lk/uboot到内部memory(DRAM)执行;

4.lk开始执行,获取preloader中传递的参数,使能mmu,初始化硬件等;

5.lk加载kernel和ramdisk到DRAM中的相应地址,跳转到kernel去执行,执行ramdisk里的init进程,init(用户空间的鼻祖)进程fork其他进程,比如Zygote(java的鼻祖)进程,Zygote fork一个system server进程,该进程fork app进程,手机启动完成。

总结一下:

Android启动流程就是设备上电后跳转到boot code执行,并找到flash,将flash中的preloader加载到DRAM中,preloader加载lk和uboot,lk加载kernel和ramdisk,跳转到kernel启动内核,ramdisk负责创建init进程,init进程创建其他进程,系统启动完成

存在问题:ISRAM和boot rom不是同一个器件,boot code是放在boot rom中,而preloader是加载到ISRAM中,但是在课件的图中这两个是在一块的,如下图中的boot code是在rom中还是在ISRAM中。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值