前言 計算機(jī)啟動原理(軟硬詳解)2 四.CPU,內(nèi)存檢測 自此系統(tǒng)就具備了最基本的運行條件.可以對主板上的其它部分進(jìn)行診斷和測試(例如CMOS錯誤)再發(fā)現(xiàn)故障時,屏幕上會有提示,但一般不死機(jī),當(dāng)查找完所有其他設(shè)備的BIOS之后,系統(tǒng)BIOS將顯示它自己的啟動畫面,其中包括有系統(tǒng)BIOS的類型,序列號和版本號等內(nèi)容,同?.聊蛔蟊咧猩轄腔岢魷種靼逍畔⒋ 耄 ˙IOS的日期、主板芯片組型號、廠家的代碼等。接著系統(tǒng)BIOS將檢測CPU的類型和工作頻率,并將結(jié)果顯示在屏幕上;然后BIOS開始測試主機(jī)的內(nèi)存容量,并在屏幕上顯示內(nèi)存測試數(shù)值。(就是大家所熟悉的屏幕上半部分那個飛速翻滾的內(nèi)存計數(shù)器)當(dāng)BIOS畫面最下方出行"DEL"的文字時就可以按下鍵盤上的"DEL"鍵(按照你的主板說明按下相應(yīng)的鍵)進(jìn)行BIOS設(shè)置了.如圖2: 四.標(biāo)準(zhǔn)硬件設(shè)備與即插即用設(shè)備檢測 下一步BIOS將開始檢測系統(tǒng)中安裝的一些標(biāo)準(zhǔn)硬件設(shè)備:硬盤、CD-ROM、軟驅(qū)、串行和并行接口等設(shè)備。標(biāo)準(zhǔn)設(shè)備檢測完畢后,系統(tǒng)BIOS內(nèi)部支持即插即用的代碼將開始檢測和配置系統(tǒng)中安裝的即插即用設(shè)備,同時為該設(shè)備分配中斷、DMA通道和I/O端口等資源,到此所有硬件都已經(jīng)檢測配置完畢.BIOS會重新清屏并在屏幕上方顯示出一個系統(tǒng)配置表,其中簡略地列出安裝的各種標(biāo)準(zhǔn)硬件設(shè)備及相關(guān)工作參數(shù)。最后系統(tǒng)BIOS將更新ESCD(Extended System Configuration Data,擴(kuò)展系統(tǒng)配置數(shù)據(jù))。(ESCD是系統(tǒng)BIOS用來與操作系統(tǒng)交換硬件配置信息的數(shù)據(jù),這些數(shù)據(jù)被存放在CMOS中。通常ESCD數(shù)據(jù)只在系統(tǒng)硬件配置發(fā)生改變后才會進(jìn)行更新,并不是每次啟動都需要更新。ESCD數(shù)據(jù)更新完畢后,系統(tǒng)BIOS的啟動代碼將進(jìn)行它的最后一項工作,即根據(jù)用戶指定的啟動順序從軟盤、硬盤或光驅(qū)啟動.) 六。 硬盤引導(dǎo) 一.上述過程完畢了之后,首先BIOS檢測硬盤并進(jìn)行復(fù)位,然后根據(jù)用戶在BIOS的設(shè)置來檢查從哪一個設(shè)置引導(dǎo)系統(tǒng),例如軟驅(qū),硬盤,光驅(qū)等,而其中最常用的就是硬盤引導(dǎo)了.從硬盤引導(dǎo)之后,BIOS把主引導(dǎo)記錄讀入內(nèi)存,關(guān)將控制權(quán)交給主引導(dǎo)程序,檢查分區(qū)表,尋找活動分區(qū)(這就是為什么在用Fdisk分區(qū)時要設(shè)置活動分區(qū)了)找到之后再將控制權(quán)交給活動分區(qū)的引尋記錄,由引尋記錄來引導(dǎo)操作系統(tǒng).若成功引導(dǎo)接著屏幕便出行系統(tǒng)啟動的界面如XP的標(biāo)志畫面,圖3 可以按下F8鍵選擇啟模式.如不成功將會出現(xiàn)出錯信息,例子: 如果硬盤上的分區(qū)表被破壞后,啟動系統(tǒng)時往往會出現(xiàn)“Non-System disk or disk error,replace disk and press a key to reboot”(非系統(tǒng)盤或盤出錯)、“Error Loading Operating System”(裝入DOS引導(dǎo)記錄錯誤)或者“No ROM Basic,System Halted”(不能進(jìn)入ROM Basic,系統(tǒng)停止響應(yīng))就無法啟動系統(tǒng)了. 為了照顧新手下面給出一下說明,請認(rèn)真看: 硬盤主引導(dǎo)記錄(MBR):硬盤主引導(dǎo)記錄區(qū)位于硬盤的首部,負(fù)責(zé)搜索硬盤可以啟動的分區(qū).對于DOS來說,它是由Fdisk生成的.主引導(dǎo)記錄著從分區(qū)表中找到第一個活動分區(qū),然后讀取并執(zhí)行這個活動分區(qū)的分區(qū)引導(dǎo)記錄 活動分區(qū):當(dāng)我們在DOS用Fdisk命令硬盤分區(qū)時,一定要設(shè)一個主分區(qū)為活動分區(qū),不然系統(tǒng)無法啟動.一般來說活動分區(qū)就是我們平時用的系統(tǒng)盤C盤. 分區(qū)表(DPT):分區(qū)表DPT則以80H或00H為開始標(biāo)志,以55AAH為結(jié)束標(biāo)志,位于主引導(dǎo)扇區(qū)的最末端。整個分區(qū)表決定了硬盤中的分區(qū)數(shù)量,每個分區(qū)的起始及終止扇區(qū)、大小以及是否為活動分區(qū)等。 活動分區(qū)的引尋記錄:對于不同的系統(tǒng),引導(dǎo)記錄讀取執(zhí)行的文件是不一樣的,對于DOS和WIN9X而言,分區(qū)引導(dǎo)記錄執(zhí)行"IO.sys" 對于WIN2000\XP來說,則是由"NTLDR"程序來執(zhí)行的. 以上介紹的便是計算機(jī)在打開電源開關(guān)(或按Reset鍵)進(jìn)行冷啟動時所要完成的各種初始化工作,如果我們在DOS下按Ctrl+Alt+Del組合鍵(或從Windows中選擇重新啟動計算機(jī))來進(jìn)行熱啟動,那么POST過程將被跳過去,直接從第三步開始,另外的檢測CPU和內(nèi)存測試也不會再進(jìn)行。我們可以看到,無論是冷啟動還是熱啟動,系統(tǒng)BIOS都一次又一次地重復(fù)進(jìn)行著這些我們平時并不太注意的事情,然而正是這些單調(diào)的硬件檢測步驟為我們能夠正常使用電腦提供了基礎(chǔ)。 ------------------------------------------------------------------------------------------------------------------------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------------------------------- 2.軟件部方(以XP系統(tǒng)為例說明) 注明: 要讓W(xué)indows XP正確啟動,在啟動和系統(tǒng)分區(qū)中必須有以下文件: Ntldr 位于系統(tǒng)分區(qū)根目錄中 Boot.ini 位于系統(tǒng)分區(qū)根目錄中 Ntdetect.com 位于系統(tǒng)分區(qū)根目錄中 Ntoskrnl.exe 位于啟動分區(qū)中的Windows\System32目錄中 Hal.dll 位于啟動分區(qū)中的Windows\System32目錄中 注冊表文件 位于啟動分區(qū)中的Windows\System32 \Config\System目錄中 設(shè)備驅(qū)動程序 位于啟動分區(qū)中的Windows\System32 \Drivers目錄中 如果計算機(jī)中還裝有Win9X/Me,那么在系統(tǒng)分區(qū)根目錄中必須有Bootsect.dos;如果計算機(jī)中有SCSI設(shè)備,系統(tǒng)分區(qū)根目錄中還必須有Ntbootdd.sys。 1.系統(tǒng)啟動引導(dǎo)階段 Ntldr讀取將boot.ini的內(nèi)容, 定位操作系統(tǒng)所在的啟動分區(qū)。如果計算機(jī)中只有一個操作系統(tǒng),Ntldr會自動執(zhí)行下一步。如果計算機(jī)中有多個操作系統(tǒng),那么這時會有一個選單讓你選擇你要啟動的操作系統(tǒng),當(dāng)你選擇Windows NT 4.0/2000/XP/2003時,Ntldr也會執(zhí)行下一步;當(dāng)你選擇Windows 9X/Me時,Ntldr會把計算機(jī)的控制權(quán)交給Bootsect.dos. 檢測和配置硬件階段 啟動Windows XP后(以XP說明),Ntldr啟動ntdetect.com。ntdetect.com將收集計算機(jī)硬件信息列表并將列表返回到Ntldr,這樣做的目的是便于以后將這些硬件信息加入到注冊表HKEY_LOCAL_MACHINE下的hardware中。ntdetect.com的重要性在于在不兼容ACPI(Advanced Configuration and Power Interface)的計算機(jī)中列舉設(shè)備,這種情況下,設(shè)備資源是由硬件分配的。在兼容ACPI的計算機(jī)中,設(shè)備資源是由操作系統(tǒng)分配的。在這個過程中,ntdetect.com會查找Windows XP 創(chuàng)建的硬件配置文件。Windows XP會為桌面型電腦創(chuàng)建一個硬件配置文件,為移動型電腦創(chuàng)建兩個硬件配置文件,用戶也可以創(chuàng)建自己特定的硬件配置文件。硬件配置文件中沒有的設(shè)備的驅(qū)動程序不會在Windows XP啟動過程中加載。對于有多個硬件配置文件的計算機(jī),用戶可以選擇是否在啟動時顯示硬件配置文件選單以便用戶選擇特定的硬件配置文件。 2.內(nèi)核加載階段 在這個階段,ntldr首先加載稱為Windows XP內(nèi)核的ntokrnl.exe。這里,系統(tǒng)加載了Windows XP內(nèi)核但是沒有將它初始化。接著ntldr加載硬件抽象層(Hardware Abstraction Layer,hal.dll),然后,系統(tǒng)繼續(xù)加載HKEY_LOCAL_MACHINE\SYSTEM鍵,ntldr讀取HKEY_LOCAL_MACHINE\SYSTEM\Select中的鍵值來決定哪一個ControlSet(熟悉注冊表的朋友一定都發(fā)現(xiàn)在HKEY_LOCAL_MACHINE\SYSTEM下有好幾個ControlSet,比如ControlSet001,ControlSet002 )將被加載。ControlSet中包含設(shè)備的驅(qū)動程序以及需要加載的服務(wù)。ntldr加載HKEY_LOCAL_MACHINE\SYSTEM\ControlSetXXX\Services\...(這里,ControlSetXXX指Select中選定的ControlSet,...指服務(wù)的名稱)下start鍵值為0的最底層設(shè)備驅(qū)動。當(dāng)作為ControlSet鏡像的CurrentControlSet被加載時,ntldr將計算機(jī)的控制權(quán)交給Windows XP內(nèi)核的ntokrnl.exe,初始化內(nèi)核就開始了。 初始化內(nèi)核開始的時候,彩色的Windows XP的logo以及進(jìn)度條顯示在屏幕中央,在這個階段,系統(tǒng)完成了啟動的4項任務(wù): 1)內(nèi)核使用在硬件檢測時收集到的數(shù)據(jù)來創(chuàng)建HKEY_LOCAL_MACHINE\HARDWARE鍵。 2)內(nèi)核通過復(fù)制HKEY_LOCAL_MACHINE\ SYSTEM \CurrentControlSet的值來創(chuàng)建了HKEY_LOCAL_MACHINE\ SYSTEM \Clone。Clone是計算機(jī)數(shù)據(jù)的備份,不包括啟動中的改變,也不會被修改。 3)系統(tǒng)完成初始化以及加載設(shè)備驅(qū)動程序,內(nèi)核初始化那些在加載內(nèi)核階段被加載的底層驅(qū)動程序,然后內(nèi)核掃描HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\...下start鍵值為1的設(shè)備驅(qū)動程序。這些設(shè)備驅(qū)動程序在加載的時候便完成初始化,如果有錯誤發(fā)生,內(nèi)核使用ErrorControl鍵值來決定如何處理,值為3時,錯誤標(biāo)志為危機(jī)/關(guān)鍵,系統(tǒng)初次遇到錯誤會以HKEY_LOCAL_MACHINE\SYSTEM\Select中LastKnownGood 所指的ControlSet重新啟動,如果使用LastKnownGood ControlSet啟動仍然產(chǎn)生錯誤,系統(tǒng)報告啟動失敗,錯誤信息將被顯示,系統(tǒng)停止啟動;值為2時錯誤情況為嚴(yán)重,系統(tǒng)啟動失敗并且以LastKnownGood ControlSet重新啟動,如果系統(tǒng)啟動已經(jīng)在使用LastKnownGood值,它會忽略錯誤并且繼續(xù)啟動;當(dāng)值是1的時候錯誤為普通,系統(tǒng)會產(chǎn)生一個錯誤信息,但是會忽略這個錯誤并且繼續(xù)啟動;當(dāng)值是0的時候忽略,系統(tǒng)不會顯示任何錯誤信息而繼續(xù)運行。 4)內(nèi)核啟動Session Manager(Smss.exe)。Session Manager的作用是啟動Windows XP高級子系統(tǒng)以及服務(wù),啟動控制所有輸入、輸出設(shè)備以及訪問顯示器屏幕的Win32子系統(tǒng)以及Windows登陸進(jìn)程(Winlogon.exe)。到這里,初始化內(nèi)核就完成了。 3.登陸階段 Winlogon.exe首先啟動服務(wù)管理(Service Control Manager,Services.exe)和本地安全認(rèn)證(Local Security Authority,Lsass.exe),同時顯示W(wǎng)indows XP歡迎屏幕,這時候,系統(tǒng)還可能在后臺繼續(xù)初始化剛才沒有完成的驅(qū)動程序。然后Winlogon會提示用戶輸入有效的用戶名或密碼(如果Windows XP中除了默認(rèn)的administrator和隱藏帳戶外只有一個用戶帳戶且沒有密碼,Windows XP會跳過這一步)。接著,服務(wù)管理最后執(zhí)行以及掃描HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servives來檢查是否還有服務(wù)需要加載,服務(wù)管理查找start鍵值為2或更高的服務(wù),服務(wù)按照start的值以及DependOnGroup和DepandOnService的值來加載。 只有用戶成功登陸到計算機(jī)后,Windows XP的啟動才被認(rèn)為是完成,在成功登陸后,系統(tǒng)拷貝HKEY_LOCAL_MACHINE\SYSTEM\Clone到LastKnownGood ControlSet,完成這一步驟后,系統(tǒng)才意味著已經(jīng)成功引導(dǎo)了 |
聯(lián)系客服