嵌入式Linux系统启动过程

2019-04-14 17:23发布

Bootloader是系统上电后最初加载运行的代码,它提供了处理器上电复位后最开始执行的初始化代码。 一、计算机系统的主要部件 (1)计算机系统就是由CPU来做核心进行运行的系统。典型的计算机系统有:PC机(台式机、笔记本)、嵌入式设备(手机、平板电脑、游戏机)、单片机(家用电器像电饭锅、空调)。 (2)计算机系统的组成部件非常多,不同的计算机系统组成部件也不同。但是所有的计算机系统运行时需要的主要核心部件都是3个东西:CPU+外部存储器(flash/硬盘)+内部存储器(DDR SDRAM/SDRAM/SRAM)。   二、PC机的启动过程 (1)典型的PC机的部署:BIOS程序部署在PC机主板上(随主板出厂时已经预制),操作系统部署在硬盘上,内存在掉电时无作用,CPU在掉电是不工作。 (2)启动过程:PC机上电后先执行BIOS程序(实际上PCBIOS就是NorFlash),BIOS程序负责初始化DDR内存,负责初始化硬盘,然后从从硬盘上将OS镜像读取到DDR中,然后跳转到DDR中去执行OS直到启动(OS启动后BIOS 就无作用了)。   三、典型嵌入式Linux系统启动过程1)嵌入式系统的部署和启动都是参考PC机的,只是设备上有一些差异。2)嵌入式系统的部署:uboot程序部署在Flash(能作为启动设备的Flash)上、OS部署在Flash(嵌入式系统中用Flash代替了硬盘)上、内存在掉电是无作用,CPU在掉电时不工作。3)启动过程:嵌入式系统上电后先执行uboot、然后uboot负责初始化DDR,初始化Flash,然后将OSFlash中读取到DDR中,然后启动OSOS启动后uboot就无作用了)。
嵌入式系统和PC机的启动过程几乎一样,只是BIOS成了uboot,硬盘成了Flash   三、Android系统启动过程 (1)android系统的启动和Linux系统几乎一样,只是在内核启动后加载根文件系统后不同了。 (2)可认为启动过程分为2个阶段:第一阶段是ubootOS启动;第二阶段是OS启动后到rootfs加载到命令行执行。