首頁 > 美食

Linux計算機系統為什麼需要bootloader

由 數理紅蘋果 發表于 美食2023-01-08

簡介如果Linux 從PC 機上啟動,先需要進入bios, 從嵌入式系統上,比如安卓 手機上啟動,需要先進入 uboot,進入linux 系統

喝茶能去斑嗎

如果Linux 從PC 機上啟動,先需要進入bios, 從嵌入式系統上,比如安卓 手機上啟動,需要先進入 uboot,進入linux 系統。Linux執行起來後,uboot 程式不被執行了,那什麼 需要這個 boot 程式。

這個和固定翼 飛機 為什麼 需要 設計輪子很類似。

飛機起飛前,總是先透過輪子滑行一段距離,加速以後,才會控制機翼做起飛動作。

以前的水上飛機,沒有輪子,但設計了滑板,起飛前,用滑板在水面上滑行。

Linux計算機系統為什麼需要bootloader

正在檢查飛機輪子

飛機為什麼要有輪子,主要在於起飛需要加速到一定程度。

而地面上 加速,又需要有輪子。

而Linux 需要有 uboot 程式,幫助啟動。

主要在於 Linux 系統 體積較大,一般儲存於

硬碟,u盤等 介面比較複雜的儲存裝置上。

所以 計算機 需要先 執行 uboot 或bios程式。載入 這些儲存裝置的驅動程式,就可以將linux 系統讀入記憶體,並啟動。

同時 Bootloader設定一些特別底層的引數,比如不同型號記憶體條執行需要的不同引數。

那就會有人問? 那Linux 需要驅動程式才能載入,為什麼bootloader 不需要。

這是因為,好多Bootloader 是儲存在 norflash 裡邊的,cpu 可以用讀寫 記憶體條memory 相同的流程讀寫,不需要專門的驅動程式。

即使有的系統 Bootloader儲存在需要驅動程式的介質上,驅動程式也比較簡單,CPU 出廠時,裡邊就預置了對應驅動程式。有部分cpu ,系統上集成了記憶體單元,裡邊預置了一些程式。

當然飛機輪子的意義,不止起飛時預加速。

飛機修理,移動機庫,有了輪子,在地面上移動就比較方便了。

Bootloader 的意義,也在於 啟動作業系統前,可以維護檢測硬體系統。

比如一些 嵌入式 Linux 系統,也是儲存在norflash 上的,這裡uboot 載入驅動程式讀norflash 這個意義沒有了。

系統依然有 uboot, 那這時候的意義在哪裡?

在於開發人員除錯修改Linux系統,以及以後升級時,萬一Linux 系統出錯,依然可以進入 uboot 重新寫入不同的 Linux 系統。

如果 這時候 uboot 也壞了,就需要用專門裝置,將uboot 重新燒入系統。

大約1999年時,出了個有名的計算機病毒cih, 這個病毒發作時,會將PC 的BIOS 搞壞。

這時候,修復系統,就不止是格式化硬碟,重灌Windows 了。

就需要到修電腦那裡,用專門的裝置,重新修復bios。

Linux計算機系統為什麼需要bootloader

火箭有的是三級結構

火箭設定為 三級結構。

飛機有輪子

計算機系統 透過 bootloader 和 作業系統 兩級啟動。

不過 直升機 一般 不設計有輪子。

Linux計算機系統為什麼需要bootloader

這個直升機沒有輪子

這些設計的不同理念,就是人們在 實際使用中體會出來的。

使系統容易維護,又達到節約成本資源的目的。

Tags:linuxuboot輪子驅動程式系統