标签:
Android系统启动操作流程由linux系统启动与Android系统启动连个阶段组成。
1.linux系统启动
Android操作系统启动的次序分别为系统上电、Bootloader引导、Linux内核启动、init初始化系统服务等。事实上,启动流程的每一步都蕴含着不同的安全含义,尤其在系统安全性和用户自由度之间如何取舍需要更多的技术和智慧。
1.1系统上电与启动ROM
如同传统的PC设备,Android系统的CPU上电复位后,将程序指针(PC)指向复位时的零地址(启动地址),从该地址读取启动程序的可执行代码直接运行,或者将可执行代码与数据载入CPU内置RAM中在运行。所谓的启动ROM内固化有启动代码,其起始地址就设在CPU复位后的启动地址(零地址处),CPU复位后PC指针指向该处,开始执行代码。
早期PC的启动ROM通常是PROM、EPROM或EEPROM,内部固化的程序就是所谓的BIOS,相当于我们后续讨论的BootLoader的一部分。BIOS运行针对硬件设备的初始化,在载入硬盘的主引导扇区MBR后,系统才会开始引导操作系统。
Android等嵌入式设备则不同,没有标准化的BIOS,也没有硬盘之类的存储设备。启动ROM通常是NOR Flash,或者直接就是NAND Flash,装载着所谓的启动代码。类似于PC的BIOS和MBR,称为Bootloader。当然BootLoader在穷ROM的起始地址必须恰好是cpu复位后所指向的地址。
NOR Flash与NAND Flash启动过程的简述如下:
NOR Flash作为启动ROM的启动过程。ROM可以字节寻址,程序即按顺序执行。由于NOR Flash具有这样的性质,因此将启动代码置于NOR Flash中。执行过程简述为:
标签:
原文地址:http://www.cnblogs.com/dingyanxin/p/4515206.html