大家好,我是良許。
不管我們使用什么操作系統,無論是 windows、macOS 還是 linux ,里面都安裝了許多軟件、驅動程序和固件。但是,這三者概念有區別呢?
我在朋友圈做了個小調查,發現居然很多人不清楚他們的關系,因此寫下此文來給大家做個簡單的科普。
文字描述太抽象了,我們直接來看漫畫吧。
好了,看完漫畫,我們再來看正規的解釋是怎樣的。
簡單來講,固件、驅動程序和軟件之間的根本區別在于它們的設計目的。
- 固件是賦予設備硬件生命的程序
- 驅動程序是操作系統和硬件組件之間的中間人
- 軟件可以間接操作硬件
1. 固件
固件(Firmware)就是寫入 ROM (只讀存儲器)中的程序,固件擔任著一個系統最基礎最底層工作,直接控制硬件,比如計算機上電后第一個啟動的程序 BIOS ,它可以與硬件交互,并檢查它是否有任何錯誤。
BIOS 調用另一個稱為引導加載程序的程序,該程序執行喚醒在硬盤驅動器內休眠的操作系統并將其放入隨機存取存儲器 (RAM) 的工作。
我們可以在許多設備上看到固件,包括計算機、手機、遙控器、游戲機、智能手表、USB 驅動器和各種嵌入式系統。即使是電視遙控器也有一個預裝的固件,可以實現你按下按鈕的時候電視換臺操作。
2. 驅動
驅動(Drive):驅動程序即添加到操作系統中的一小塊代碼,其中包含有關硬件設備的信息。當計算機程序請求與某個硬件設備交互時,設備驅動程序充當硬件設備與使用它的程序之間指令的轉換器。
操作系統并不支持機器上的所有硬件,所以一般來講硬件廠商都要為自己的硬件編寫驅動程序。
每個驅動程序都旨在為特定或一組設備工作。在計算機上,驅動程序使用各種總線接口來聯系設備。此外,驅動程序一般不直接與用戶交互,所以很多用戶完全不知道它們的存在。
驅動程序的開發需要非常小心,因為它直接與硬件打交道,同時也與操作系統打交道。如果設備驅動程序出現問題,可能會導致系統崩潰,這就是為什么需要專業人員或團隊來為設備編寫驅動程序的原因。
但是為什么不把 Firmware 做的很完美,做的不需要驅動支持呢?因為有不同的操作系統,而這些操作系統對于操作硬件的方式完全不同。所以不同操作系統的驅動是不能兼容的,原因就是驅動是為操作系統服務的。
3. 軟件
與硬件不同,軟件是運行在電腦里,看不見摸不著。
操作系統也是一個軟件,并且為安裝在操作系統上的其他軟件提供了工作空間。前面提到的設備驅動程序其實也是一種軟件,不過它有個更細分的種類,稱為系統軟件。
如果用戶編寫了一個軟件,想要操作硬件(比如光驅、U盤等),他必須通過操作系統提供的接口來實現,而無法直接與硬件交互。
值得注意的一點是,軟件是一個廣義的術語。我們在日常使用中所說的「軟件」一般是指應用軟件,比如:微信,QQ,瀏覽器等等。
還有什么不明白的,歡迎評論區交流哦~
原創不易,歡迎點贊,感謝!