Linux 內核、uboot、文件系統之間的關係

通過接觸Linux系統我們發現Linux 這個操作系統很奇怪,必須要掛一個操作系統,像有些系統就就不需要,比如Vxworks、UCos。

但是Linux 什麼時候掛載文件系統呢?是一開始就掛載還是最後才掛載呢? 其實,是在Linux是在運行的最後才掛載文件系統的!這個最後是指開機初始化的最後。

所有的驅動都是內核裏面

內核就是硬件層和上層的抽象層,它專門處理硬件信息。

文件系統是操作系統用於明確存儲設備(常見的是磁盤,也有基於NAND Flash的固態硬盤)或分區上的文件的方法和數據結構;即在存儲設備上組織文件的方法。操作系統中負責管理和存儲文件信息的軟件機構稱爲文件管理系統,簡稱文件系統。

瞭解他們的關係,我們從上電啓動開始說起。

這個對於接觸過開發板的開發者來說都知道,上電後先執行的那肯定是uboot,uboot 在運行的時候,我們會看到一些打印的信息,這些信息其實就是UBOOT檢測內存,存儲等設備,並且設置處理器等設備的時鐘...... ;在我們啓動開發板的時候我們會發現,Uboot到最後會留給我們幾秒鐘的時間,等待我們去敲擊鍵盤,讓他停下來,然後我們可以去做一些其他操作,如果不敲擊呢?此時他就會引導內核,也就會把內核文件(zlmage文件)拷貝到內存並去運行,看串口的打印信息我們就會發現,會先打印 starting kernel......,此時,uboot已經壽終正寢了,緊接着內核上場了。往下看打印信息,你會發現內核不斷打印出各種外部設備的信息,這就是對各種外設的驅動進行初始化,讓各個外部設備各就各位,包括以太網、藍牙、SPI等。接下來,就是掛載文件系統,文件系統大家肯定都有過接觸,就是類似於Windows的文件管理器。實際上,Linux 內核最後掛載的文件系統不僅僅是掛載,還執行了文件系統裏面的程序!就好比安卓系統,難道把文件系統掛載上去就出現安卓系統了嗎?肯定不是,執行文件系統裏一個也有一個的應用程序,最後安卓系統的界面纔出來!實際上,可以把安卓系統看作是在Linux 上跑的一個應用程序

一、Linux 必須要掛載一個文件系統

二、Linux啓動到最後,等所有驅動初始化完成以後,最後一步才掛載文件系統。

對於安卓和Qt系統 ,其實都算是個文件系統,無論是安卓還是Qt 它們的底層都是Linux內核,而它們又都是在Linux內核起來以後掛載的文件系統。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章