Windows XP 作業系統啟動過程概述(1)

2021-06-15 20:21:49 字數 3532 閱讀 6380

從按下計算機開關啟動計算機,到登入到桌面完成啟動,一共經過了以下幾個階段:

1. 預引導(pre-boot)階段;

2. 引導階段;

3. 載入核心階段;

4. 初始化核心階段;

5. 登陸。

每個啟動階段的詳細介紹

a) 預引導階段

在按下計算機電源

使計算機啟動,並且在windows xp專業版作業系統

啟動之前這段時間,我們稱之為預引導(pre-boot)階段,在這個階段裡,計算機首先執行power on self test(post),post檢測系統

的總記憶體

以及其他硬體裝置的現狀。如果計算機系統

的bios(基礎輸入/輸出系統

)是即插即用的,那麼計算機硬體裝置將經過檢驗以及完成配置。計算機的基礎輸入/輸出系統

(bios)定位計算機的引導裝置,然後mbr(master boot record)被載入並執行。在預引導階段,計算機要載入windows xp的ntldr檔案。

b) 引導階段

windows xp professional引導階段包含4個小的階段。

首先,計算機要經過初始引導載入器階段(initial boot loader),在這個階段裡,ntldr將計算機微處理器從實模式轉換為32位平面記憶體

模式。在實模式中,系統

為ms-dos保留640kb記憶體

,其餘記憶體

視為擴充套件記憶體

,而在32位平面記憶體

模式中,系統

(windows xp professional)視所有記憶體

為可用記憶體

。接著,ntldr啟動內建的mini-file system drivers,通過這個步驟,使ntldr可以識別每乙個用ntfs或者fat檔案系統

格式化的分割槽,以便發現以及載入windows xp professional,到這裡,初始引導載入器階段就結束了。

接著系統

來到了作業系統

選擇階段,如果計算機安裝了不止乙個作業系統

(也就是多系統

),而且正確設定了boot.ini使系統

提供作業系統

選擇的條件下,計算機顯示器

會顯示乙個作業系統

選單,這是ntldr讀取boot.ini的結果。(至於作業系統

選單,由於暫時條件不夠,沒辦法截圖,但是筆者模擬了乙個)

·windows xp 作業系統

啟動過程概述(2)在boot.ini中,主要包含以下內容:

[boot loader]

timeout=30

default=multi(0)disk(0)rdisk(0)partition(1)/windows

[operating systems]

multi(0)disk(0)rdisk(0)partition(1)/windows="microsoft windows xp professional" /fastdetect

multi(0)disk(0)rdisk(0)partition(2)/winnt="windows windows 2000 professional"

其中,multi(0)表示磁碟控制器,disk(0)rdisk(0)表示磁碟,partition(x)表示分割槽。ntldr就是從這裡查詢windows xp professional的系統

選項,或者把timeout值設為0,則系統

不出現作業系統

選擇選單,直接引導到那個唯一的系統

或者預設的系統

。在選擇啟動windows xp professional後,作業系統

選擇階段結束,硬體檢測階段開始。

在硬體檢測階段中,ntdetect.com將收集計算機硬體資訊列表並將列表返回到ntldr,這樣做的目的是便於以後將這些硬體資訊加入到登錄檔hkey_local_machine下的hardware中。

硬體檢測完成後,進入配置選擇階段。如果計算機含有多個硬體配置檔案列表,可以通過按上下按鈕來選擇。如果只有乙個硬體配置檔案,計算機不顯示此螢幕而直接使用預設的配置檔案載入windows xp專業版。

引導階段結束。在引導階段,系統

要用到的檔案一共有:ntldr,boot.ini,ntdetect.com,ntokrnl.exe,ntbootdd.sys,bootsect.dos(可選的)。

c) 載入核心階段

在載入核心階段,ntldr載入稱為windows xp核心的ntokrnl.exe。系統

載入了windows xp核心但是沒有將它初始化。接著ntldr載入硬體抽象層(hal,hal.dll),然後,系統

繼續載入hkey_local_machine/system鍵,ntldr讀取select鍵來決定哪乙個control set將被載入。控制集中包含裝置的驅動程式以及需要載入的服務。ntldr載入hkey_local_machine/system/service/...下start鍵值為0的最底層裝置驅動。當作為control set的映象的current control set被載入時,ntldr傳遞控制給核心,初始化核心階段就開始了。

·windows xp 作業系統

啟動過程概述(3)d) 初始化核心階段

在初始化核心階段開始的時候,彩色的windows xp的logo以及進度條顯示在螢幕**,在這個階段,系統

完成了啟動的4項任務:

核心使用在硬體檢測時收集到的資料來建立了hkey_local_machine/hardware鍵。

核心通過引用hkey_local_machine/system/current的預設值複製control set來建立了clone control set。clone control set配置是計算機資料的備份,不包括啟動中的改變,也不會被修改。

系統完成初始化以及載入裝置驅動程式,核心初始化那些在載入核心階段被載入的底層驅動程式,然後核心掃瞄hkey_local_machine/system/currentcontrolset/service/...下start鍵值為1的裝置驅動程式。這些裝置驅動程式在載入的時候便完成初始化,如果有錯誤發生,核心使用errorcontrol鍵值來決定如何處理,值為3時,錯誤標誌為危機/關鍵,系統

初次遇到錯誤會以lastknowngood control set重新啟動,如果使用lastknowngood control set啟動仍然產生錯誤,系統

報告啟動失敗,錯誤資訊將被顯示,系統

停止啟動;值為2時錯誤情況為嚴重,系統

啟動失敗並且以lastknowngood control set重新啟動,如果系統

啟動已經在使用lastknowngood值,它會忽略錯誤並且繼續啟動;當值是1的時候錯誤為普通,系統

會產生乙個錯誤資訊,但是仍然會忽略這個錯誤並且繼續啟動;當值是0的時候忽略,系統

不會顯示任何錯誤資訊而繼續執行

session manager啟動了windows xp高階子系統

以及服務,session manager啟動控制所有輸入、輸出裝置以及訪問顯示器

螢幕的win32子系統

以及winlogon程序,初始化核心完畢。 

作業系統啟動順序

在這裡以x86的處理器為例 機器在啟動的時候會執行第一條指令。這條指令會去執行bios,將控制權交給bios。bios完成硬體的質檢,然後將bootloader從硬碟讀到記憶體中,執行bootloader,並將控制權交給bootloader bootloader負責使能保護模式 建立段機制以及載入作...

詳解作業系統啟動

我們作業系統在啟動的時候,我們的計算機到底什麼?讓我們從馮諾依曼體系說起!其實說白了,整個計算機執行過程就是在取指令和執行指令,如下圖所示,其中pc 程式計數器 指向一條指令,計算機將其從儲存器取出,然後放到運算器中執行,也就是如圖所示,最終得到ax的值是0。開機一瞬間軟體上做了什麼?在我們開機的那...

作業系統啟動過程

當我們按下開機鍵後,作業系統究竟是如何跑起來的?這個過程詳細說來很複雜。這裡只簡單描述一下。當機器剛從生產線上下線的時候,裡面沒有作業系統,稱之為裸機。裸機什麼事都幹不了,於是需要裝上作業系統。機器中固化了乙個用於讀取磁碟或者其他裝置的程式,於是當你在啟動時按下f2鍵,就會執行這個程式安裝作業系統。...