uboot、內核、根文件系統啟動流程


【1】Uboot的啟動流程
  Uboot的啟動分為兩個階段。
  第一階段:設置異常向量表,設置ARM核為svc模式,關cache和關mmu,
  關看門狗,初始化時鍾,串口,內存,初始化棧空間,清bss。跳轉到第二階
  段。
  第二階段:硬件的初始化,讀取環境變量,將內核從emmc加載到內存中,
 調用內核。

 

 【2】kernel的啟動流程
  0.設置cpu為svc模式,關中斷。
  1. 為內核的解壓做准備(內存,中斷等等)。
  2.內核自解壓 (vmlinux.lds)。
  3.跳轉到入口地址執行(head.S--->main.c)start_kernel執行內核。
  4.硬件的初始化(初始mm  mmu  中斷(request_irq),軟中斷初始化,內核定時器) (解析設備設備樹,執行驅動)。
  5.掛載根文件系統。
  6.開啟第一個用戶進程init,執行linuxrc應用程序。


 
【3】rootfs執行過程
  Linuxrc調用inittab文件(規定操作系統行為文件)獲取操作系統行為。
  執行啟動第一個腳本rcS,rcS中調用mount -a 掛載fstab中所有設備。
  當控制台登錄的時候,執行bin/sh命令,進入shell命令行(在進入前,會執行profile,設置環境變量)。

 


原文:https://blog.csdn.net/JISHUQIANJIA/article/details/80920156


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM