U-boot, linux kernel, rootfs 理解
阿新 • • 發佈:2021-08-23
一,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) 的提示,