Part1:计算机的主要部件
-
计算机系统是由
CPU
来做核心进行运行的系统。典型的计算机系统有:
PC
机:台式机、笔记本- 嵌入式设备:手机、平板电脑、游戏机
- 单片机:家用电器像电饭锅、空调
-
计算机系统的组成部件非常多 ,不同计算机的组成部件也不同。
但是所有的计算机系统运行时都需要的主要核心部件都是三个东西:
CPU
- 外部存储器(
Flash
/ 硬盘) - 内部存储器(
DDR SDRAM
/SDRAM
/SRAM
)
Part2:PC机的启动过程
-
典型的
PC
机的部署:BIOS
程序部署在PC
机主板上(随主板出厂时就已经预制了)
操作系统部署在硬盘上内存在掉电时无作用,
CPU
在掉电时不工作 -
启动过程:
PC
上电后先执行BIOS
程序(实际上PC
的BIOS
保存在NorFlash
)BIOS
程序负责初始化DDR
内存和硬盘
然后从硬盘上将OS
(操作系统)镜像读取到DDR
中
然后跳转到DDR
中去执行OS
直到启动Tips:
OS
启动后BIOS
就无用了
Part3:典型嵌入式Linux系统启动过程
-
嵌入式系统的部署和启动都是参考的
PC
机的,只是设备上有一些差别。 -
典型嵌入式系统的部署:
uboot
程序部署在Flash
(能作为启动设备的Flash
上)
OS
部署在Flash
(嵌入式系统中使用了Flash
代替了硬盘)内存在掉电时无作用
CPU
在掉电时不工作 -
启动过程:
嵌入式系统上电后先执行
uboot
然后
uboot
负责初始化DDR
、Flash
然后从Flash
中将OS
(操作系统)镜像读取到DDR
中
然后跳转到DDR
中去执行OS
直到启动Tips:
OS
启动后uboot
就无用了 -
总结:
嵌入式系统和
PC
机的启动过程几乎没有两样,只是BIOS
成了uboot
,硬盘成了Flash
Part4:Android系统启动过程
-
Android
系统的启动和Linux
系统(前面讲的典型的嵌入式系统启动)几乎一样。几乎一样意思就是前面完全一样,只是在内核启动后加载根文件系统不同了。
-
可以认为启动分为两个阶段:
第一个阶段是
uboo
t到OS
启动
第二个阶段是OS
启动后到rootfs
加载到命令行执行Tips: 现在我们主要研究第一个阶段,
Android
和Linux
启动的差别在第二阶段。
总结:uboot到底是干嘛的
-
uboot
主要作用是用来启动操作系统内核的。 -
uboot
还主要负责部署整个计算机系统。 -
uboot
中还有操作Flash等板子上硬盘的驱动。 -
uboot
还得提供一个命令行界面供人机交互。