一、uboot作用
uboot是一个裸机程序。
uboot主要是用来启动操作系统内核。
uboot还要负责部署整个计算机系统。
uboot中还有操作Flash等板子上硬盘的驱动。
uboot还得提供一个命令行界面来供人操作。
二、系统的组成
计算机系统就是有CPU来做核心进行运行的系统。典型的计算机有:
PC
(台式电脑+笔记本),嵌入式设备
(手机,平板电脑,游戏机),单片机
(一些家用电器);
不同的计算机有不同的组成部分,但是所有计算机系统运行时主要核心都是3个东西:
CPU+外部存储器
(Flash / 硬盘) + 内部存储器
(DDR SDRAM/SRAM)
三、PC机的启动过程
1、典型的PC机的部署:BIOS
程序部署在PC
机的主板上(出厂时已经预制了),操作系统部署在硬盘上,内存在掉电时无作用。
2、启动过程:PC
在上电后先执行BIOS
程序(PC
上的BIOS
就是NrFlash
),BIOS程序负责初始化DDR内存,负责初始化硬盘,然后从硬盘上将OS镜像读取到DDR
中,然后跳转到DDR
中去执行OS
直到启动(OS
启动后BIOS
就无用了)
四、典型嵌入式Linux系统启动过程
1、嵌入式系统的部署都是参考PC
机的,只是设备上有些差别。
2、典型的嵌入式系统部署:Uboot
程序部署在Flash
(能作为启动设备的Flash
)上、OS
部署在Flash
(嵌入式中用Flash代替了硬盘)上(uboot
的flash
和OS
的Flash
可以是一个Flash
,也可以不是,但通常都是一个Flash), 内存在掉电时无作用。
3、启动过程:嵌入式系统上电后先执行uboot,然后uboot负责初始化DDR(内存)、Flash,然后把OS
从Flash
读取到DDR
中,然后启动OS
(启动后uboot
就无用了)。
五、android系统启动过程。
1、android
系统的启动和Linux
系统几乎一样,但在内核启动后加载根文件系统不同。
2、嵌入式系统和PC机启动过程几乎一模一样,只不过硬盘换成了Flash
;