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
?
?
?
?
轉載于:https://www.cnblogs.com/menggucaoyuan/archive/2012/02/09/2344396.html
總結
以上是生活随笔為你收集整理的Windows启动过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新浪SAE
- 下一篇: MyEclipse 中修改JSP模板