操作系統在安裝過程中是怎麼接管電腦的硬體的?

在電腦安裝操作系統的過程中,操作系統是通過哪些步驟逐步控制計算機的硬體的?


安裝程序的任務是:「安裝」操作系統到一台計算機上,準確的說,「安裝」包括「複製文件」和「配置硬體」兩個部分。

安裝程序本身其實就是一個小的操作系統,他本身能提供操作系統的最基本功能:用戶界面、硬體管理、文件操作等。

所以操作系統有的功能,安裝程序也基本上都有,是一個精簡版的操作系統。

正常的Windows(XP/7)、Linux的啟動過程是:

1、系統加電,載入MBR或者UEFI;

2、MBR/UEFI找到可以啟動的分區,載入bootloader或者啟動程序或者grub,交換控制權;

3、啟動程序(比如grub或者Windows的啟動程序)顯示啟動界面(如果有需要選擇啟動項等),等待用戶配置特殊的啟動項或者自動載入;

4、啟動程序載入內核,Windows的啟動程序還負責載入已經配置好的一部分驅動,交換控制權給操作系統內核;

5、內核(或者其它匯流排驅動)處理硬體配置,載入並配置剩餘驅動代碼,啟動用戶界面(Shell或者其它)。

安裝程序與正常操作系統的區別包括:

1、正常操作系統的硬體配置都已經很完善了,但安裝程序在運行前沒有任何配置信息,需要自己處理硬體配置和基本的驅動。

2、安裝程序要求兼容性特別好,在不清楚硬體配置的情況下,要儘可能的在各種不同的硬體環境里運行。

3、安裝程序需要自己集成一個boot loader來啟動。

所以安裝程序的工作步驟是:

1、BIOS或者UEFI切換控制權給安裝程序的引導扇區。

2、安裝程序引導扇區載入bootloader或者grub並載入一個基本內核。

3、基本內核載入最常規的基本驅動:滑鼠、鍵盤、顯示卡、磁碟驅動等。

這一步其實是有最多不同點的一部:

為什麼大多數Linux安裝程序都要求用戶選擇鍵盤布局?因為此時安裝程序可能也不知道鍵盤布局是什麼;

為什麼XP不支持AHCI硬碟?因為安裝程序里沒有集成AHCI驅動;

……

所以安裝程序的驅動就直接決定了操作系統是否能正常的安裝到這個PC上。

4、等待用戶配置安裝參數。

5、開始按照用戶配置複製文件。

6、開始檢測硬體配置並配置各種驅動參數。

7、將能引導操作系統的引導程序(如bootloader/grub等)寫入硬碟,並創建或重寫引導扇區。

8、重啟系統。

重啟以後,硬體就能根據引導扇區一步一步的載入已經配置好的操作系統了。


安裝操作系統過程,簡單地說是將操作系統包括 bootloader 、內核程序和其他一些可能用到得工具等複製到硬盤指定部分,也許還會格式化文件系統等等。

題主可能存在一個誤區,控制硬體跟安裝系統關係不大。

舉個例子,Win PE 應該是沒有安裝過程的,僅僅是啟動,但它也可以控制計算機硬體進行正常工作。

內核控制硬體是通過對主板上可編程的晶元進行變成控制的。例如 x86 架構下控制定時器是對 Intel 8253 晶元進行編程。

另外,接收鍵盤輸入是通過中斷實現,鍵盤每次輸入都會產生一個中斷,由中斷處理程序來接收數據。

硬盤也有對應的編程口。


推薦閱讀:

Win 8 如何恢復 10 秒內開機?
Linux中進程和線程的開銷基本一樣啊,為什麼還要多線程呢?
為什麼Windows中文默認使用GB18030而不是UTF-8?
win10總是很快自動休眠怎麼解決?
為什麼Windows XP 經歷了5年微軟才推出下一代 Windows?

TAG:Mac | 操作系統 | 計算機 | Windows7 | Windows8 |