U-boot, linux kernel, rootfs 理解

一,U-boot

Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader程序。

这段bootloader程序会先初始化DDR等外设,然后将Linux内核从flash(NAND,NOR FLASH, SD,

MMC 等)拷贝到 DDR 中,最后启动 Linux 内核。

二,Linux 内核

操作系统是计算机资源的管理者,主要管理cpu的资源调度、存储器、I/O设备、文件四个部分管理。

Kernel 指大多数操作系统的核心部分。它由操作系统中用于管理存储器、文件、外设和系统资源的那些部分组成。

操作系统内核通常运行进程,并提供进程间的通信。 

三,rootfs

根文件系统首先是内核启动时所 mount(挂载)的第一个文件系统,内核代码映像文件保存在
根文件系统中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和
服务等加载到内存中去运行。

百度百科上说内核代码镜像文件保存在根文件系统中,但是我们嵌入式 Linux 并没有将内
核代码镜像保存在根文件系统中,而是保存到了其他地方。比如 NAND Flash 的指定存储地址、
EMMC 专用分区中。 根文件系统是 Linux 内核启动以后挂载(mount)的第一个文件系统,然后从
根文件系统中读取初始化脚本,比如 rcS, inittab 等。根文件系统和 Linux 内核是分开的,单独
的 Linux 内核是没法正常工作的,必须要搭配根文件系统。如果不提供根文件系统, Linux 内核
在启动的时候就会提示内核崩溃(Kernel panic)的提示,

上一篇:Docker容器实战(七) - Docker存储隔离原理?


下一篇:从零开始在海思芯片上部署uboot、kernel、rootfs、mpp