ARM linux 啟動流程 整理

2021-09-25 22:40:02 字數 510 閱讀 7492

基本的初始化工作:關閉看門狗,設定ddr、nand flash

啟動核心

kernel初始化步驟:

進入kernel階段,系統會先探測可識別的所有硬體裝置

隨後系統會載入裝置驅動程式,並生成乙個臨時唯讀的rootfs系統

在執行了rootfs後,系統將開始執行第乙個初始化程式--init

核心檔案位置:

主要函式:

至此,kernel已經啟動了使用者空間的第一號程序-init

主要任務:啟動守護程序--daemon

ubuntu最新的初始化程序已更新為systemd.

守護程序載入ok後,使用者開始登入:

1. 命令列登入 -- init 呼叫getty程式,讓使用者輸入name 和 pwd,然後呼叫login程式核對pwd,通過後就從檔案 /etc/passwd 讀取該user指定的shell,啟動它。

2. ssh登入 -- init 呼叫sshd程式,取代getty和login,

Arm linux 啟動流程

了解完kernel啟動以前的彙編之後我們來看看正式的c語言啟動 也就是我們的start kernel函式了。start kernel相當大,裡面每乙個呼叫到的函式都足夠我們傷腦筋了,我這裡只是淺嘗輒止的描述一下函式的功能,從而對kernel啟動的過程有乙個比較直觀的了解。很多函式真正理解需要對lin...

Arm linux啟動流程

linux啟動 分為以下三部分 彙編編寫的體系結構相關的部分 c語言編譯的體系結構相關的部分 c語言編譯的體系結構無關的部分 核心映象的生成 核心啟動流程 1.彙編部分 核心啟動入口 核心編譯連線後生成的elf映像檔案是vmlinux,從核心源 頂層目錄的makefile中可以找到vmlinux的生...

arm linux 啟動流程分析

arm linux啟動總體過程 bootloader kernel rootfs.bootloader 一般的soc中一般會有一塊sdram 又叫墊腳石 當soc上電時,soc中固化的 會根據啟動方式從nand,emmc等不同儲存上,載入bootloader到sdram,進而執行。也就是說soc上電...