嵌入式linux/Android系统详细启动流程解析

第一阶段:启动ROM_code

=============================

第二阶段:启动X_loader

=============================

第三阶段:启动U_boot

stage1:

基本硬件设备(如CPU等)的初始化;

为stage2部分的代码准备RAM空间;

设置好堆栈;

跳入stage2 C入口。

stage2:

监测系统内存映射;

将kernel镜像和根文件系统镜像从Flash读入RAM中;

设置内核启动参数;

调用内核。

=============================

第四阶段:启动内核

step1:

kernel自解压

step2:

设置CPU工作模式,打开mmu、cache,设置内核页表,初始化串口、console、mmc、nand、显示、网络(分配IP与Mac地址)等硬件设备,使能中断、初始化进程间通信IPC等。

step3:

挂载根文件系统,设置根文件系统为rootfs,加载设备驱动以及内核静态模块。

=============================

第五阶段:启动用户进程init

文件权限清零;

为rootfs创建必要的文件夹,挂在必要分区;

创建/dev/null和/dev/kmsg节点;

解析init.rc启动脚本,执行各阶段动作;

初始化qemu模拟器(保证Android app能在无真正Android设备的情况下运行Android app);

初始化属性系统,开启属性服务;

显示设备开机logo/声音;

init进程进入死循环。

=============================

第六阶段:启动java虚拟机zygote,进入java世界

=============================

第七阶段:启动systemserver后台服务

=============================

第八阶段:启动launcher桌面程序

=============================

第九阶段:启动lockscreen锁屏界面

=============================

第十阶段:启动第三方apk并显示于launcher桌面


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值