Windows啓動過程

當你啓動計算機之後,windows的啓動過程就開始執行了。下面是詳細步驟:

1 BIOS執行一些初始系統檢查,並讀取磁盤的第零簇的內容。第零簇內容有一個特殊的稱謂 - 操作系統主引導扇區 MBR(Master Boot Record)。

2 MBR保護兩部分:

  1 系統啓動代碼 (共有446 bytes)

  2 分區表入口(16 bytes colored entries in the bottom)

3 根據系統代碼,我們可以找到系統所有的分區,並找到系統啓動分區。如果分區表入口的第一個字節值爲0x80,那麼可以確認這就是分區表入口,它也被稱爲根分區或系統卷 . MBR中有四個分區入口,是不是意味着我們只能有四個系統驅動?這也就意味着我們還得有擴展分區入口.

4 除了分區得到確認外,還能夠確認系統啓動分區的第一個磁盤簇。具體的值存儲在啓動代碼的8th-12th字節。上圖中這個值爲3f 00 00 00,按照小端計算,其值爲0000003f,即第63rd扇區。

5 啓動入口第63rd扇區又稱爲啓動扇區,從這裏開始可以讀取到文件讀取根磁盤(c:\)的文件ntldr(NT loader)

6 有時候,系統啓動中提示錯誤信息NTLDR is missing,正是因爲讀取不到這個文件。 讀取這個文件的信息後,windows開始把內核文件加載到內存中。先確定頁面大小,然後讀取ntdetect.com,根據BIOS設置進行硬件檢測,最後讀取boot.ini以顯示啓動菜單,即提示有哪些操作系統。

 

如果系統上次關閉時是睡眠狀態,它將讀取hiberfil.sys,以恢復睡眠前的數據。它還會加載啓動驅動。操作系統的核心功能依賴這些驅動,下表列出了初始的系統驅:

 然後再設置CPU的寄存器的值,等等。這些任務完成後,ntldr把系統控制權交給進程ntoskrnl.exe (NT OS Kernel),它的使命就完成了。

6  NTOSKRNL是主要負責啓動以下OS服務(此時你能看到的Windows XP的進度條顯示過程)。

  第0階段初始下列服務

      內存管理服務

      流程管理服務(系統進程被創建的第一個內核模式進程)

      對象管理器服務

      即插即用管理服務

      安全參考監視器服務

  第1階段的初始化

      初始化HAL(硬件抽象層)

      多處理器支持

      調度支持(本質上取決於處理器架構)

      電源管理

 

7  系統將控制權轉交給 smss.exe (Session Manager Subsystem)。它也是windows啓動後的第一個用戶態進程。

  1 smss進程執行下列任務:

        1 檢查磁盤(disc check):

        2 掛起一些文件。文件被掛起後,os內核就暫時沒有了一些文件的控制權限,一些應用軟件可能重寫操作系統內核相關的部分文件,改寫完畢後,它就可能提示你重啓系統。

        3 創建頁面文件(pagefile.sys):

 

 

  2  從\Windows\System32\Config\*.*.讀取系統註冊表

  3 最後系統創建兩個進程(Client Server Run-Time Subsystem), Winlogon.exe. 

      1 Csrss.exe負責系統的用戶態,並向程序提供windows API接口 

      2   Winlogon.exe負責啓動進程(services.exe),並創建sass.exe (Local Security and Authentication Subsystem),以對用戶登錄系統時進行驗證。 

      3   Winlogon將把登錄窗口呈獻給用戶,用戶登錄成功後,它將家在explorer.exe,並根據當前用戶的配置信息顯示桌面。

雖然本文沒有具體的描述啓動過程的每個細節,但是大的方面本文都有說明,以做到疏而不漏。歡迎讀者批評指正。

參考文章

  1 Windows Internals 4th Ed By Mark E. Russinovich, David A. Solomon

  2 http://www.yale.edu/pclt/BOOT/PARTITIO.HTM

  3 http://mirror.href.com/thestarman/asm/mbr/NTLDR.htm

說明

  本文遵循協議 The Code Project Open License (CPOL)

written by: Vineel Kumar Reddy Kovvuri

url:   http://www.codeproject.com/Articles/129874/The-Birth-of-Windows-Desktop

 

 

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