圖解韌體、驅動、軟體的區別

良許發表於2021-11-28

大家好,我是良許。

不管我們使用什麼作業系統,無論是 Windows、macOS 還是 Linux ,裡面都安裝了許多軟體、驅動程式和韌體。但是,這三者概念有區別呢?

我在朋友圈做了個小調查,發現居然很多人不清楚他們的關係,因此寫下此文來給大家做個簡單的科普。

文字描述太抽象了,我們直接來看漫畫吧。

好了,看完漫畫,我們再來看正規的解釋是怎樣的。

簡單來講,韌體、驅動程式和軟體之間的根本區別在於它們的設計目的。

  • 韌體是賦予裝置硬體生命的程式
  • 驅動程式是作業系統和硬體元件之間的中間人
  • 軟體可以間接操作硬體

1. 韌體

韌體(Firmware)就是寫入 ROM (只讀儲存器)中的程式,韌體擔任著一個系統最基礎最底層工作,直接控制硬體,比如計算機上電後第一個啟動的程式 BIOS ,它可以與硬體互動,並檢查它是否有任何錯誤。

BIOS 呼叫另一個稱為引導載入程式的程式,該程式執行喚醒在硬碟驅動器內休眠的作業系統並將其放入隨機存取儲存器 (RAM) 的工作。

我們可以在許多裝置上看到韌體,包括計算機、手機、遙控器、遊戲機、智慧手錶、USB 驅動器和各種嵌入式系統。即使是電視遙控器也有一個預裝的韌體,可以實現你按下按鈕的時候電視換臺操作。

2. 驅動

驅動(Drive):驅動程式即新增到作業系統中的一小塊程式碼,其中包含有關硬體裝置的資訊。當計算機程式請求與某個硬體裝置互動時,裝置驅動程式充當硬體裝置與使用它的程式之間指令的轉換器。

作業系統並不支援機器上的所有硬體,所以一般來講硬體廠商都要為自己的硬體編寫驅動程式。

每個驅動程式都旨在為特定或一組裝置工作。在計算機上,驅動程式使用各種匯流排介面來聯絡裝置。此外,驅動程式一般不直接與使用者互動,所以很多使用者完全不知道它們的存在。

驅動程式的開發需要非常小心,因為它直接與硬體打交道,同時也與作業系統打交道。如果裝置驅動程式出現問題,可能會導致系統崩潰,這就是為什麼需要專業人員或團隊來為裝置編寫驅動程式的原因。

但是為什麼不把 Firmware 做的很完美,做的不需要驅動支援呢?因為有不同的作業系統,而這些作業系統對於操作硬體的方式完全不同。所以不同作業系統的驅動是不能相容的,原因就是驅動是為作業系統服務的。

3. 軟體

與硬體不同,軟體是執行在電腦裡,看不見摸不著。

作業系統也是一個軟體,並且為安裝在作業系統上的其他軟體提供了工作空間。前面提到的裝置驅動程式其實也是一種軟體,不過它有個更細分的種類,稱為系統軟體。

如果使用者編寫了一個軟體,想要操作硬體(比如光碟機、U盤等),他必須通過作業系統提供的介面來實現,而無法直接與硬體互動。

值得注意的一點是,軟體是一個廣義的術語。我們在日常使用中所說的「軟體」一般是指應用軟體,比如:微信,QQ,瀏覽器等等。

還有什麼不明白的,歡迎評論區交流哦~

原創不易,歡迎點贊、轉發朋友圈,感謝!


最後,最近很多小夥伴找我要Linux學習路線圖,於是我根據自己的經驗,利用業餘時間熬夜肝了一個月,整理了一份電子書。無論你是面試還是自我提升,相信都會對你有幫助!

免費送給大家,只求大家金指給我點個贊!

電子書 | Linux開發學習路線圖

也希望有小夥伴能加入我,把這份電子書做得更完美!

有收穫?希望老鐵們來個三連擊,給更多的人看到這篇文章

推薦閱讀:

歡迎關注我的部落格:良許Linux教程網,滿滿都是乾貨!

相關文章