(一)
BIOS的啟動過程
只要一打開計算機的電源開關
一個叫Bootstrap(引導程序)的小軟件就要發揮作用
它常駐在BIOS ROM的地址FFFFOH處
當ROM加載程序加載它後
它就完成下面的幾項工作
加電自檢
POST(Post On Self Text
加電自檢子程序)測試系統的完整性
如果系統通過測試
計算機揚聲器發出一短促的鳴叫聲(是否有鳴叫聲取決於BIOS的廠家
這裡以廣泛使用的Award的BIOS為例)
如果系統出現故障而未通過測試
根據故障的不同揚聲器將發出不同的鳴叫聲
因為各個廠商對鳴叫聲的定義不同
要了解各個鳴叫聲的意義需查看BIOS或者主板廠商的用戶手冊
某些BIOS在檢測出系統故障時會暫停並且在顯示器上顯示出相關的錯誤信息(如鍵盤錯誤等)
在POST過程還要測試內存的完整性
檢測即插即用設備
查找引導盤
引導程序接著檢測BIOS中的設置以找到第一個可引導的驅動器(一般為A盤或C盤)
如果在檢測完BIOS中指定的所有可引導器仍未發現引導驅動器
引導程序暫停啟動過程並顯示一個錯誤信息
找不到啟動盤
(二)
Dos的啟動過程
操作系統加載程序從ROM加載程序得到控制權後就開始DOS的啟動
其步驟如下
加載IO
SYS
操作系統加載程序從引導驅動器上讀取主引導記錄MBR(Master Boot Record)並將控制權叫給MBR
MBR讀取分區表(在MBR的尾部)並找到引導分區的位置
MBR將控制權叫給引導分區的引導扇區(引導扇區包含磁盤引導程序和磁盤特性表)上的磁盤引導程序
檢測BIOS參數塊(BPB
BIOS Parameter Block)以找到操作系統引導文件所在的根目錄
將操作系統引導文件IO
SYS從根目錄拷貝進內存
IO
SYS實際上是一個可執行文件並且只能位於引導分區的第一磁道上
加載FAT和MSDOS
SYS
處理CONFIG
SYS和AUTOEXEC
BAT
如果CONFIG
SYS文件不存在
IO
SYS從MSDOS
SYS的
WinBootDir=
獲得Ifshlp
sys
Himem
sys和Setver
exe這三個文件的位置
然後自動加載這三個必需的驅動程序
如果MSDOS
SYS中有BootGUI=
這個選項
IO
SYS將控制權交給命令行解釋器COMMAND
COM(或者叫給CONFIG
SYS中由命令
SHELL=
指定的命令行解釋器)
然後COMMAND
COM將控制權叫給計算機用戶
也就是等待用戶輸入DOS命令
至此DOS的啟動過程完成
(三)
Windows的啟動過程
在DOS啟動過程的最後一步
如果MSDOS
SYS中是BootGUI=
而不是BootGUI=
這個選項
IO
SYS將控制權將交給Windows加載程序以繼續加載Windows
Windows的啟動過程真正開始
顯示
Starting Windows
屏幕顯示
Starting Windows
x
這個提示信息
在這個信息顯示的過程中
MSDOS
SYS中的BootDelay=n(n為整數)選項可以控制該信息的顯示延長時間
若MSDOS
SYS沒有該選項
默認該信息顯示
秒
若MSDOS
SYS中有BootKeys=
按住Ctrl或F
鍵則顯示Windows啟動菜單
若有BootMenu=
不按住Ctrl或F
鍵也會自動顯示Windows啟動菜單
MSDOS
SYS中若有BootMenuDelay=n的選項
可以指定Windows啟動菜單顯示的延長時間
默認是
秒
MSDOS
SYS中若有BootMenuDefault=n
可以指定Windows啟動菜單上的啟動項
默認是
即以正常模式啟動Windows
如果Windows上一次沒有正常關閉
而且在MSDOS
SYS中沒有AutoScan=
選項
磁盤掃描程序Scandisk將詢問或者自動掃描硬盤
默認該選項是AutoScan=
既自動掃描
不管MSDOS
SYS中是否有以上選項
只要Windows上一次的啟動或關機過程沒有正常完成
Windows的啟動菜單會自動出現
而且默認啟動項是安全模式(Windows Safe Mode)
這個自動出現的啟動菜單其顯示延時是
秒
在Windows的啟動過程中
將保留所有的UMB(Upper Memory Block
上位內存)使用
檢測Windows的啟動畫面
如果MSDOS
SYS中有logo=
選項或者沒有該選項
IO
SYS加載並顯示其內部默認的Windows啟動畫面(即藍天白雲畫面)
用戶可自定義一個LOGO
SYS文件(實際上是分辨率為
╳
顏色深度為
色的BMP圖形)並把它放在根目錄下一取代該畫面
這樣Windows的啟動畫面就變成了用戶的自定義畫面
可能有些計算機用戶這樣做後發現顯示的仍然是藍天白雲畫面
這種情況發生在OEM版的Windows中
原因是微軟為這些OEM廠商修改了LOGO
SYS必須放在特定的目錄中
例如C:\WINDOWS或者別的目錄中
不同的OEM廠家可能有所不同
在MSDOS
SYS設置logo=
則不顯示Windows的啟動畫面
檢測DRVSPACE
INI和DBLSPACE
INI文件
如果存在DRVSPACE
INI和DBLSPACE
INI文件
並且在MSDOS
SYS中沒有指定DblSpace=
Drvspace=
DRVSPACE
BIN和DBLSPACE
BIN被加載
檢測注冊表
IO
SYS打開注冊表文件SYSTEM
DAT並調用其它工具檢測數據的有效性
如果文件SYSTEM
DAT不存在
則自動從備份文件中恢復該文件
如果SYSTEM
DAT被恢復
USER
DAT也被自動恢復
Windows
中備份文件被壓縮在目錄C:\WINDOWS\SYSBACKUP\下的RB
n
CAB中
n的值為
—
檢測DBLBUFF
SYS
如果在MSDOS
SYS中有DoubleBuffer=
或者注冊表中有鍵值HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\WinBoot\DoubleBuffer
則加載DBLBUFF
SYS
即使以上兩個條件都沒有滿足
但是Windows探測到雙緩沖(Double Buffer)是必須的
也會自動加載雙緩沖
加載WIN
COM
配置文件加載完成後即運行WIN
COM
WIN
COM是Windows的加載器(Windows Loader)
由它繼續Windows的啟動工作
加載Vxd文件
Vxd其全稱為Virtual Device Driver
即虛擬設備驅動程序
WIN
COM首先處理VMM
VXD
實模式虛擬設備驅動程序加載程序檢測是否所需的VxD文件已成功加載
如果沒有
它再一次嘗試加載
一旦實模式虛擬設備驅動程序加載成功
設備初始化開始
任何需要在實模式下初始化的VxD文件此時開始初始化
VMM
將計算機處理器從實模式切換到保護模式
VxD第三階段的初始化過程開始
在這個階段VxD設備驅動程序根據InitDevice指定的次序而不是根據VxD被加載進入到內存中的次序進行初始化
這些VxD文件初始化次序如下
a
SYS_CRITICAL_INIT(SYSCRITINIT
系統關鍵初始化)
在這個階段為了讓VxD文件有足夠多的時間准備設備初始化而不被系統中斷
所有的系統中斷都被關閉
所有的文件輸入/輸出(I/O)也被關閉
因此所有的VxD文件被加載的過程不被Windows啟動記錄文件Boot
txt記錄
直到該初始化過程完成之後
所有VxD文件被加載的過程才被記錄到文件Bootlog
txt中
b
SYS_DEVICE_INIT(DEVICEINIT
系統設備初始化)
在這個階段大量的VxD進行初始化
文件的輸入/輸出也被允許
因此每一個VxD文件的初始化都被記錄
但Ifsmgr的設備初始化例外
Ifsmgr的作用是控制實模式文件系統
在Ifsmgr的設備初始化過程中磁盤輸入/輸出不被允許
直到其初始化完成後磁盤輸入/輸出才被允許進行
由於這個原因
Ifsmgr的初始化過程也沒有被記錄
因此從表面上看
好像它在設備初始化階段並沒有出現
c
SYS_INIT_COMPLETE(INITCOMPLETE
系統初始化完成)
通過這幾個階段的VxD此時一般可以正常工作了
而那些通過a
b兩階段而沒有通過c階段的VxD將被從內存中清除
加載GUI程序
在所有的靜態VxD和WINSTART
BAT被加載後
Windows的GUI(Graphical User Interface
圖形用戶界面)被加載
這些GUI程序是Krnl
dll
Gdi
exe
User
exe和Explorer
exe
其中Explorer
exe是Windows默認的Shell
可以改為使用別的應用程序來代替
Windows注冊和網絡注冊
接下來是加載網絡環境設置
即加載注冊表鍵值HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
Windows logon和network
此時出現詢問Windows注冊和網絡注冊密碼的對話框
Windows加載網絡環境參數時提示用戶輸入網絡注冊密碼
如果用戶是在單機上而不是在網絡上使用計算機
並且已經關閉了密碼輸入提示功能
Windows將用以前提供的默認用戶名實現自動注冊網絡
Windows要完成自動注冊功能必須滿足
(
)以前至少輸入過一次有效的用戶名
(
)上次輸入的用戶名沒有被清除
(
)沒有設置必須使用密碼
在單機用戶系統上按ESC或者選擇取消
Windows將會使用默認的桌面設置繼續啟動
但Widows下一次啟動時會再次要求輸入用戶名
如果網絡注冊驗證中設置不完全正確且用戶輸入了一個新的用戶名
Windows將根據控制面板中的網絡用戶設置參數替這個用戶創造一個環境設置參數
注冊表主鍵加載
Windows中有幾個自動運行的項目
它們按以下的次序加載
(
)HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunservicesOnce
(
)HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Runservices
(
)Windows的注冊提示
(
)HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
(
)HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
(
)HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
(
)啟動組
(
)HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
上面各項(
)
(
)和(
)可以同時加載
只有(
)的地位比較特殊
它必須等待(
)
(
)和(
)都完成加載之後才開始加載
而在它之後的(
)
(
)
(
)和(
)也都可以同時加載
但它們都必須等待(
)中所有的項目完成加載之後才開始加載
RunservicesOnce中的鍵值在執行一次之後被自動地從注冊表中清除
From:http://tw.wingwit.com/Article/Common/201311/5304.html