【Android】Android 固件和内核启动过程概览

前言

来了解一下Android 固件和内核启动过程是怎么样的

固件启动过程

手机中的固件,就相当于 PC 机里的 BIOS(或者现在的 EFI),其主要部件是一个由硬件制造厂商提供的 boot ROM。

顾名思义,boot ROM 是记录在只读 (read-only-memory)部件中的所以它一般都很小,只记录了一小段在手机刚一加电到加载 sbl之前必须要先执行的启动代码。它的作用是初始化其他的硬件部件,使它们处于至少是可以使用的状态。然后,boot ROM 就会加载sbl(secondary boot loader,次级启动加载器)并把系统控制权交给 sbl。sbl是个软件,所以它不受硬件 ROM 容量的限制,可以记录更多的数据,所以也能去执行更复杂的初始化任务(比如,显示一个启动画面)。

手机里的处理器和 PC 机里的还不一样,它并不是一个单独的CPU(比如说一块Intel或者ARM 处理器),而是一个完整的芯片组 (SoC,System-on-Chip)。事实上,这也就意味着有好几个处理器在同时工作,而应用处理器 (application processor)只是其中之一。比如说,高通的“骁龙”处理器中就至少含有4 个子处理器:RPM(资源/电源管理)、Krait(应用处理器)、Adreno(图形处理器–GPU’)、和Hexagon (数字签名处理器–DSP,Digital Signal Processor)。

所以MSM芯片组的启动也是一个特别冗长的过程,先执行 boot ROM中的PBL(初级启动加载器primary boot loader),然后再加载执行 sbl(次级启动加载器)。

而这个sbl本身又可以分为三个阶段(sbl1-sbl2-sbl3),各个 sl 阶段加载和验证下一阶段代码的过程又是一段令人眼花缭乱的复杂操作,其中还涉及了 rpm和 tz (ARM 可信区域)中的代码。之后应用处理器才能启动其他的组件,执行 aboot 中的代码,一直要到到这儿,Android 的 Boot Loader 才算是正式登场。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员-薯片

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值