ARM Linux啟動過程分析是本人要介紹的內容,嵌入式 Linux 的可移植性使得我們可以在各種電子產品上看到它的身影。對于不同體系結構的處理器來說Linux的啟動過程也有所不同。本文以S3C2410 ARM處理器為例,詳細分析了系統上電后 bootloader的執行流程及 ARM Linux的啟動過程。 1、引 言 Linux 最初是由瑞典赫爾辛基大學的學生 Linus Torvalds在1991 年開發出來的,之后在 GNU的支持下,Linux 獲得了巨大的發展。雖然 Linux 在桌面 PC 機上的普及程度遠不及微軟的 Windows 操作系統,但它的發展速度之快、用戶數量的日益增多,也是微軟所不能輕視的。而近些年來 Linux 在嵌入式領域的迅猛發展,更是給 Linux 注入了新的活力。 一個嵌入式 Linux 系統從軟件角度看可以分為四個部分[1]:引導加載程序(bootloader), Linux 內核,文件系統,應用程序。 其中 bootloader是系統啟動或復位以后執行的第一段代碼,它主要用來初始化處理器及外設,然后調用 Linux 內核。Linux 內核在完成系統的初始化之后需要掛載某個文件系統做為根文件系統(Root Filesystem)。根文件系統是 Linux 系統的核心組成部分,它可以做為Linux 系統中文件和數據的存儲區域,通常它還包括系統配置文件和運行應用軟件所需要的庫。 應用程序可以說是嵌入式系統的“靈魂”,它所實現的功能通常就是設計該嵌入式系統所要達到的目標。如果沒有應用程序的支持,任何硬件上設計精良的嵌入式系統都沒有實用意義。 從以上分析我們可以看出 bootloader 和 Linux 內核在嵌入式系統中的關系和作用。Bootloader在運行過程中雖然具有初始化系統和執行用戶輸入的命令等作用,但它最根本的功能就是為了啟動 Linux 內核。在嵌入式系統開發的過程中,很大一部分精力都是花在bootloader 和 Linux 內核的開發或移植上。如果能清楚的了解 bootloader 執行流程和 Linux的啟動過程,將有助于明確開發過程中所需的工作,從而加速嵌入式系統的開發過程。而這正是本文的所要研究的內容。 2、Bootloader (1)Bootloader的概念和作用 Bootloader是嵌入式系統的引導加載程序,它是系統上電后運行的第一段程序,其作用類似于 PC 機上的 BIOS。在完成對系統的初始化任務之后,它會將非易失性存儲器(通常是 Flash或 DOC 等)中的Linux 內核拷貝到 RAM 中去,然后跳轉到內核的第一條指令處繼續執行,從而啟動 Linux 內核。由此可見,bootloader 和 Linux 內核有著密不可分的聯系,要想清楚的了解 Linux內核的啟動過程,我們必須先得認識 bootloader的執行過程,這樣才能對嵌入式系統的整個啟過程有清晰的掌握。
可以加QQ交流下2685896890
|