電腦啓動過程

一、電源開啓自檢過程 

在打開計算機電源時,首先開始電源啓動自檢過程。在BIOS中包含一些基本的指令,能夠幫助計算機在沒有安裝任何操作系統的情況下進行基本的啓動。電源啓動自檢過程首先會從BIOS中載入必要的指令,然後進行如下一系列的自檢操作: 
進行硬件的初始化檢查,例如檢查內存的容量等。 


驗證用於啓動操作系統的設備是否正常,例如,檢查硬盤是否存在等。


從CMOS中讀取系統配置信息。  在完成了電源啓動的自檢之後,每個帶有固件的硬件設備,如顯卡和磁盤控制器,都會根據需要完成內部的自檢操作。 

 

二、初始化啓動過程

在完成了電源啓動自檢過程之後,存儲在CMOS中的設置,例如磁盤的引導順序等,能夠決定由哪些設備來引導計算機。例如,可以設置磁盤的引導順序爲首先通過A盤引導,其次才通過C盤引導,則系統會首先嚐試用A盤引導系統,如果A盤存在並可引導,則通過A盤引導。如果A盤不存在,則通過C盤引導系統。如果A盤存在,但不是引導盤,則系統地提示系統不可引導。 

 

一般來說通常會使用硬盤引導。在進行硬盤引導時,啓動過程通常按照如下的步驟進行:
系統首先檢測打開電源的硬盤。 若該硬盤是啓動盤,BIOS就將主引導記錄(Main Boot Record――MBR)中的引導代碼載入內存。 
接着,BIOS會將啓動過程的運行交給MBR來進行。 
計算機搜索MBR中的分區表,找出活動分區(Active Partition)。
計算機將活動分區的第一個扇區中的引導代碼載入到內存。 
引導代碼檢測當前使用的文件系統是否可用。 
引導代碼查找ntldr文件,找到之後啓動它。 (該文件ntldr文件將來在登錄進入windows系統之後C盤根目錄隱藏文件下找到)
BIOS將控制權轉交給ntldr,由ntldr完成操作系統的啓動。 

 

  注意:這裏簡單介紹一下MBR的概念。MBR位於啓動磁盤的第一個扇區,其中主要包含引導代碼(Boot Code)和分區表(Partition Table)數據。引導代碼主要用於引導系統。而分區表則主要用於標識基本分區和擴展分區。

 

三、引導程序載入過程 

本過程主要由ntldr 文件完成。Ntldr從引導分區載入啓動文件,然後完成如下一些任務。

 

1、在基於X86CPU的系統下,設置CPU的運行使用32位的Flat內存模式 。
對基於X86CPU的計算機來說,第一次啓動的時候總是進入所謂的實模式(RealMode)。在實模式下CPU的某些特性不能完全發揮,這是因爲它要保證同8位或16位的CPU(如8086、8088)相兼容。實模式下由於系統規格的限制,無法對大容量內存進行直接存取,而必須通過分段的方式完成。對於32位的Windows XP來說,8位或16位的CPU顯然是無用的。 
ntldr首先會將CPU切換到32位的模式,從而確保Windows XP的正常。在CPU的32位模式下,可以對大容量內存進行直接存取,而徹底拋棄了原先在8位或16位下分段存取內存的不便。這也是爲什麼32位模式稱作Flat內存模式的原因。

 

2、啓動文件系統
ntldr 中包含相應的代碼,能夠幫助Windows XP完成對NTFS或FAT格式的磁盤進行讀寫。從而能夠讀取、訪問和複製文件。


3、讀取boot.ini 文件 
在這一步中,ntldr 會分析boot.ini文件,確定操作系統分區所在的位置。
對於單引導的系統來說,ntldr 會通過啓動ntdetect.com來初始化硬件檢測狀態。 
對於多引導系統來說,首先由用戶在操作系統菜單中選擇要啓動的操作系統然後而由ntldr進行相應的操作。 
如果用戶選擇啓動ntdetect.com來初始化硬件檢測狀態。 
如果選擇啓動舊式的微軟操作系統,如MS-DOS、Windows 9x/ME,ntldr會將從bootsect.dos文件中讀取MBR代碼,然後將控制權交給bootsect.dos中的MBR。 


4、根據需要提供啓動菜單 
在這一步,如果用戶按下F8鍵,則會顯示啓動菜單,允許用戶選擇不同的啓動方式,例如使用安全方式啓動,或是使用最後一次正確的配置啓動等。 


5、檢測硬件和硬件配置 
在這一步中,ntldr 啓動ntdetect.com文件進行基本的設備檢查,然後將 boot.ini文件中的信息,以及註冊表中的硬件和軟件信息傳遞給ntoskrnl.exe 程序。 

 

 

四、檢測和配置硬件過程 

在處理完boot.ini文件之後,ntldr會啓動ntdetect.com程序。在基於X86的系統中,ntdetect.com會通過調用系統固件程序收集安裝的硬件信息,然後由ntdetect.com將這些信息傳遞送回ntldr。Ntldr獲取從ntdetect.com發來的信息後,將這些信息組織成爲內部的斷氣結構形式,然後由ntldr 啓動ntoskrnl.exe ,並將這些信息發送給它。 

Ntdetect.com 會收集如下類型的硬件信息: 
系統固件信息,例如時間和日期等 
總線適配器的類型 
顯卡適配器的類型 
鍵盤 
通信端口 
磁盤 
軟盤 
輸入設備,例如鼠標 
並口 
安裝在ISA槽中的ISA設備 
完成信息的檢測之後,Windows XP會在屏幕上顯示那個著名的Windows XP商標,並顯示一個滾動的,告訴用戶Windows 的啓動進程。

 

 

五、內核加載過程

在此過程中,ntldr實施下列一些功能。 
1、將內核(ntoskrnl.exe)和硬件抽象層(hal.dll)載入到內存 
2、加載控制集信息 
在這一過程中,ntldr從註冊表中的HKEY_LOCAL-_MACHINE/SYSTEM位置加載相應的控制集(Control Set)信息,並確定在啓動過程中要加載的設備驅動。 
3、加載設備驅動程序和服務 
在這一步中,系統會在BIOS的幫助下開始加載設備驅動程序,以及服務。 
4、啓動會話管理器 
完成上面的過程之後,內核會啓動會話管理器(Session Manager),這是一個名爲smss.exe 的程序,其作用表現如下: 

(1)創建系統環境變量 

(2)創建虛擬內存頁面文件 

 

 

六、用戶登錄過程 

在這一過程中,Windows 子系統會啓動winlogon.exe,這是一個系統服務,用於提供對Windows 用戶的登錄和註銷的支持。

 

Winlogon.exe 可以完成如下一些工作: 

啓動服務子系統(services.exe),也稱服務控制管理器(Service Control Manager, SCM)。 
啓動本地安全授權(Local Security Authority , LSA)過程(lsass.exe)。 

在開始登錄提示的時候,對Crtl+Alt+Del組合鍵進行分析處理。
一個圖形化的識別和認證組件收集用戶的帳號和密碼,然後將這些信息安全地傳送給LSA以進行認證處理。如果用戶提供的信息是正確的,能夠通過認證,就允許用戶對系統進行訪問。
要注意的是,如果您的計算機中,只有Administrator這一個用戶,那麼在歡迎屏幕中就會顯示Administrator 用戶項。如果您的計算機中不僅有Administrator用戶,還有別的可以交互登錄的用戶,那麼歡迎屏幕中就只顯示出Administrator之外的用戶,而不顯示Administrator用戶。 
如果用戶希望以Administrator用戶登錄,該怎麼辦呢?實際很簡單,直接在歡迎屏幕中按下兩次Crtl+Alt+Del組合鍵,即可打開標準的登錄窗口,可以再輸入Administrator 的用戶名和密碼,以便用最高管理員的身份登錄。 

 

 

七、即插即用設備的檢測過程 

對即插即用設備的檢測,實際上是和登錄過程異步進行的。由系統固件、硬件、設備驅動和系統特性決定了Windows XP如何對新設備進行檢測和枚舉。當即插即用組件正常工作後,Windows XP會對新設備進行檢測,爲它們分配系統資源,並在儘量不要用戶提供選擇的情況下,爲新設備安裝一個合適版本的驅動程序。 

至此,Windows XP已成功啓動!!!

 

抄錄下來,已備用,學習!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章