一,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)的提示,