Windows启动过程
當(dāng)你啟動計算機(jī)之后,windows的啟動過程就開始執(zhí)行了。下面是詳細(xì)步驟:
1?BIOS執(zhí)行一些初始系統(tǒng)檢查,并讀取磁盤的第零簇的內(nèi)容。第零簇內(nèi)容有一個特殊的稱謂?-?操作系統(tǒng)主引導(dǎo)扇區(qū)?MBR(Master?Boot?Record)。
2 MBR保護(hù)兩部分:
1?系統(tǒng)啟動代碼?(共有446?bytes)
2?分區(qū)表入口(16?bytes?colored?entries?in?the?bottom)
3 根據(jù)系統(tǒng)代碼,我們可以找到系統(tǒng)所有的分區(qū),并找到系統(tǒng)啟動分區(qū)。如果分區(qū)表入口的第一個字節(jié)值為0x80,那么可以確認(rèn)這就是分區(qū)表入口,它也被稱為根分區(qū)或系統(tǒng)卷?.?MBR中有四個分區(qū)入口,是不是意味著我們只能有四個系統(tǒng)驅(qū)動?這也就意味著我們還得有擴(kuò)展分區(qū)入口.
4 除了分區(qū)得到確認(rèn)外,還能夠確認(rèn)系統(tǒng)啟動分區(qū)的第一個磁盤簇。具體的值存儲在啟動代碼的8th-12th字節(jié)。上圖中這個值為3f?00?00?00,按照小端計算,其值為0000003f,即第63rd扇區(qū)。
5 啟動入口第63rd扇區(qū)又稱為啟動扇區(qū),從這里開始可以讀取到文件讀取根磁盤(c:\)的文件ntldr(NT?loader)。
6 有時候,系統(tǒng)啟動中提示錯誤信息“NTLDR?is?missing”,正是因為讀取不到這個文件。?讀取這個文件的信息后,windows開始把內(nèi)核文件加載到內(nèi)存中。先確定頁面大小,然后讀取ntdetect.com,根據(jù)BIOS設(shè)置進(jìn)行硬件檢測,最后讀取boot.ini以顯示啟動菜單,即提示有哪些操作系統(tǒng)。
?
如果系統(tǒng)上次關(guān)閉時是睡眠狀態(tài),它將讀取hiberfil.sys,以恢復(fù)睡眠前的數(shù)據(jù)。它還會加載啟動驅(qū)動。操作系統(tǒng)的核心功能依賴這些驅(qū)動,下表列出了初始的系統(tǒng)驅(qū):
?然后再設(shè)置CPU的寄存器的值,等等。這些任務(wù)完成后,ntldr把系統(tǒng)控制權(quán)交給進(jìn)程ntoskrnl.exe?(NT?OS?Kernel),它的使命就完成了。
6??NTOSKRNL是主要負(fù)責(zé)啟動以下OS服務(wù)(此時你能看到的Windows?XP的進(jìn)度條顯示過程)。
第0階段初始下列服務(wù)
內(nèi)存管理服務(wù)
流程管理服務(wù)(系統(tǒng)進(jìn)程被創(chuàng)建的第一個內(nèi)核模式進(jìn)程)
對象管理器服務(wù)
即插即用管理服務(wù)
安全參考監(jiān)視器服務(wù)
第1階段的初始化
初始化HAL(硬件抽象層)
多處理器支持
調(diào)度支持(本質(zhì)上取決于處理器架構(gòu))
電源管理
?
7 ?系統(tǒng)將控制權(quán)轉(zhuǎn)交給 smss.exe (Session Manager Subsystem)。它也是windows啟動后的第一個用戶態(tài)進(jìn)程。
1 smss進(jìn)程執(zhí)行下列任務(wù):
1?檢查磁盤(disc?check):
2?掛起一些文件。文件被掛起后,os內(nèi)核就暫時沒有了一些文件的控制權(quán)限,一些應(yīng)用軟件可能重寫操作系統(tǒng)內(nèi)核相關(guān)的部分文件,改寫完畢后,它就可能提示你重啟系統(tǒng)。
3?創(chuàng)建頁面文件(pagefile.sys):
?
?
2??從\Windows\System32\Config\*.*.讀取系統(tǒng)注冊表
3 最后系統(tǒng)創(chuàng)建兩個進(jìn)程(Client Server Run-Time Subsystem), Winlogon.exe.?
1?Csrss.exe負(fù)責(zé)系統(tǒng)的用戶態(tài),并向程序提供windows?API接口?
2 ? Winlogon.exe負(fù)責(zé)啟動進(jìn)程(services.exe),并創(chuàng)建sass.exe (Local Security and Authentication Subsystem),以對用戶登錄系統(tǒng)時進(jìn)行驗證。?
3???Winlogon將把登錄窗口呈獻(xiàn)給用戶,用戶登錄成功后,它將家在explorer.exe,并根據(jù)當(dāng)前用戶的配置信息顯示桌面。
雖然本文沒有具體的描述啟動過程的每個細(xì)節(jié),但是大的方面本文都有說明,以做到疏而不漏。歡迎讀者批評指正。
參考文章
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
說明
本文遵循協(xié)議?The?Code?Project?Open?License?(CPOL)。
written by: Vineel Kumar Reddy Kovvuri
url: ? http://www.codeproject.com/Articles/129874/The-Birth-of-Windows-Desktop
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/menggucaoyuan/archive/2012/02/09/2344396.html
總結(jié)
以上是生活随笔為你收集整理的Windows启动过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新浪SAE
- 下一篇: TaskIcon 系统任务栏图标