天天看點

計算機啟動過程詳解

       打開電源啟動機器幾乎是電腦愛好者每天必做的事情,面對螢幕上出現的一幅幅啟動畫面,我們一點兒也不會感到陌生,但是,計算機在顯示這些啟動畫面時都做了些什麼工作呢?相信有的朋友還不是很清楚,本文就來介紹一下從打開電源到出現Windows  9x的藍天白雲時,計算機到底都幹了些什麼事情。

        首先讓我們來了解一些基本概念。第一個是大家非常熟悉的BIOS(基本輸入輸出系統),BIOS是直接與硬體打交道的底層代碼,它為作業系統提供了控制硬體裝置的基本功能。BIOS包括有系統BIOS(即常說的主機闆BIOS)、顯示卡BIOS和其它裝置(例如IDE控制器、SCSI卡或網卡等)的BIOS,其中系統BIOS是本文要讨論的主角,因為計算機的啟動過程正是在它的控制下進行的。BIOS一般被存放在ROM(隻讀存儲晶片)之中,即使在關機或掉電以後,這些代碼也不會消失。

        第二個基本概念是記憶體的位址,我們的機器中一般安裝有32MB、64MB或128MB記憶體,這些記憶體的每一個位元組都被賦予了一個位址,以便CPU通路記憶體。32MB的位址範圍用十六進制數表示就是0~1FFFFFFH,其中0~FFFFFH的低端1MB記憶體非常特殊,因為最初的8086處理器能夠通路的記憶體最大隻有1MB,這1MB的低端640KB被稱為基本記憶體,而A0000H~BFFFFH要保留給顯示卡的顯存使用,C0000H~FFFFFH則被保留給BIOS使用,其中系統BIOS一般占用了最後的64KB或更多一點的空間,顯示卡BIOS一般在C0000H~C7FFFH處,IDE控制器的BIOS在C8000H~CBFFFH處。

        好了,下面我們就來仔細看看計算機的啟動過程吧。

##1 第一步:

      當我們按下電源開關時,電源就開始向主機闆和其它裝置供電,此時電壓還不太穩定,主機闆上的控制晶片組會向CPU發出并保持一個RESET(重置)信号,讓CPU内部自動恢複到初始狀态,但CPU在此刻不會馬上執行指令。當晶片組檢測到電源已經開始穩定供電了(當然從不穩定到穩定的過程隻是一瞬間的事情),它便撤去RESET信号(如果是手工按下計算機面闆上的Reset按鈕來重新開機機器,那麼松開該按鈕時晶片組就會撤去RESET信号),CPU馬上就從位址FFFF0H處開始執行指令,從前面的介紹可知,這個位址實際上在系統BIOS的位址範圍内,無論是Award  BIOS還是AMI BIOS,放在這裡的隻是一條跳轉指令,跳到系統BIOS中真正的啟動代碼處。

 ##1 第二步:

      系統BIOS的啟動代碼首先要做的事情就是進行POST(Power-On Self

      Test,加電後自檢),POST的主要任務是檢測系統中一些關鍵裝置是否存在和能否正常工作,例如記憶體和顯示卡等裝置。由于POST是最早進行的檢測過程,此時顯示卡還沒有初始化,如果系統BIOS在進行POST的過程中發現了一些緻命錯誤,例如沒有找到記憶體或者記憶體有問題(此時隻會檢查640K正常記憶體),那麼系統BIOS就會直接控制喇叭發聲來報告錯誤,聲音的長短和次數代表了錯誤的類型。在正常情況下,POST過程進行得非常快,我們幾乎無法感覺到它的存在,POST結束之後就會調用其它代碼來進行更完整的硬體檢測。

     ##1 第三步:

      接下來系統BIOS将查找顯示卡的BIOS,前面說過,存放顯示卡BIOS的ROM晶片的起始位址通常設在C0000H處,系統BIOS在這個地方找到顯示卡BIOS之後就調用它的初始化代碼,由顯示卡BIOS來初始化顯示卡,此時多數顯示卡都會在螢幕上顯示出一些初始化資訊,介紹生産廠商、圖形晶片類型等内容,不過這個畫面幾乎是一閃而過。系統BIOS接着會查找其它裝置的BIOS程式,找到之後同樣要調用這些BIOS内部的初始化代碼來初始化相關的裝置。

      查找完所有其它裝置的BIOS之後,系統BIOS将顯示出它自己的啟動畫面,其中包括有系統BIOS的類型、序列号和版本号等内容。

      ##1 第四步:

      ##1 第五步:

      接着系統BIOS将檢測和顯示CPU的類型和工作頻率,然後開始測試所有的RAM,并同時在螢幕上顯示記憶體測試的進度,我們可以在CMOS設定中自行決定使用簡單耗時少或者詳細耗時多的測試方式。

     ##1 第六步:

      記憶體測試通過之後,系統BIOS将開始檢測系統中安裝的一些标準硬體裝置,包括硬碟、CD-ROM、序列槽、并口、軟驅等裝置,另外絕大多數較新版本的系統BIOS在這一過程中還要自動檢測和設定記憶體的定時參數、硬碟參數和通路模式等。

    ##1 第七步:

      标準裝置檢測完畢後,系統BIOS内部的支援即插即用的代碼将開始檢測和配置系統中安裝的即插即用裝置,每找到一個裝置之後,系統BIOS都會在螢幕上顯示出裝置的名稱和型号等資訊,同時為該裝置配置設定中斷、DMA通道和I/O端口等資源。

    ##1 第八步:

      到這一步為止,所有硬體都已經檢測配置完畢了,多數系統BIOS會重新清屏并在螢幕上方顯示出一個表格,其中概略地列出了系統中安裝的各種标準硬體裝置,以及它們使用的資源和一些相關工作參數。

    ##1 第九步:

      接下來系統BIOS将更新ESCD(Extended System Configuration    Data,擴充系統配置資料)。ESCD是系統BIOS用來與作業系統交換硬體配置資訊的一種手段,這些資料被存放在CMOS(一小塊特殊的RAM,由主機闆上的電池來供電)之中。通常ESCD資料隻在系統硬體配置發生改變後才會更新,是以不是每次啟動機器時我們都能夠看到“Update ESCD… Success”這樣的資訊,不過,某些主機闆的系統BIOS在儲存ESCD資料時使用了與Windows 

9x不相同的資料格式,于是Windows 9x在它自己的啟動過程中會把ESCD資料修改成自己的格式,但在下一次啟動機器時,即使硬體配置沒有發生改變,系統BIOS也會把ESCD的資料格式改回來,如此循環,将會導緻在每次啟動機器時,系統BIOS都要更新一遍ESCD,這就是為什麼有些機器在每次啟動時都會顯示出相關資訊的原因。

    ##1 第十步:

      ESCD更新完畢後,系統BIOS的啟動代碼将進行它的最後一項工作,即根據使用者指定的啟動順序從軟碟、硬碟或光驅啟動。以從C槽啟動為例,系統BIOS将讀取并執行硬碟上的主引導記錄,主引導記錄接着從分區表中找到第一個活動分區,然後讀取并執行這個活動分區的分區引導記錄,而分區引導記錄将負責讀取并執行IO.SYS,這是DOS和Windows9x最基本的系統檔案。Windows   9x的IO.SYS首先要初始化一些重要的系統資料,然後就顯示出我們熟悉的藍天白雲,在這幅畫面之下,Windows将繼續進行DOS部分和GUI(圖形使用者界面)部分的引導和初始化工作。

        如果系統之中安裝有引導多種作業系統的工具軟體,通常主引導記錄将被替換成該軟體的引導代碼,這些代碼将允許使用者選擇一種作業系統,然後讀取并執行該作業系統的基本引導代碼(DOS和Windows的基本引導代碼就是分區引導記錄)。

        上面介紹的便是計算機在打開電源開關(或按Reset鍵)進行冷啟動時所要完成的各種初始化工作,如果我們在DOS下按Ctrl+Alt+Del組合鍵(或從Windows中選擇重新啟動計算機)來進行熱啟動,那麼POST過程将被跳過去,直接從第三步開始,另外第五步的檢測CPU和記憶體測試也不會再進行。我們可以看到,無論是冷啟動還是熱啟動,系統BIOS都一次又一次地重複進行着這些我們平時并不太注意的事情,然而正是這些單調的硬體檢測步驟為我們能夠正常使用電腦提供了基礎。

Boot Sector 結構簡介

  Boot Sector 的組成

    Boot Sector 也就是硬碟的第一個扇區, 它由 MBR (Master Boot Record),

DPT (Disk Partition Table) 和 Boot Record ID  三部分組成.

    MBR 又稱作主引導記錄占用 Boot Sector 的前 446 個位元組 ( 0 to 0x1BD ),

存放系統主引導程式 (它負責從活動分區中裝載并運作系統引導程式).

    DPT 即主分區表占用 64 個位元組 (0x1BE to 0x1FD), 記錄了磁盤的基本分區

資訊. 主分區表分為四個分區項, 每項 16 位元組, 分别記錄了每個主分區的資訊

(是以最多可以有四個主分區).

    Boot Record ID 即引導區标記占用兩個位元組 (0x1FE and 0x1FF), 對于合法

引導區, 它等于 0xAA55, 這是判别引導區是否合法的标志.

    Boot Sector 的具體結構如下圖所示 (參見 NightOwl 大俠的文章):

      0000  |------------------------------------------------|

            |                                                                     |

            |                                                                     |

            |             Master Boot Record                    |

            |                                                                     |

            |                                                                     |

            |             主引導記錄(446位元組)                  |

            |                                                                     |

            |                                                                     |

            |                                                                     |

      01BD  |                                                               |

      01BE  |------------------------------------------------|

            |                                                |

      01CD  |             分區資訊  1(16位元組)              |

      01CE  |------------------------------------------------|

            |                                                |

      01DD  |             分區資訊  2(16位元組)               |

      01DE  |------------------------------------------------|

            |                                                |

      01ED  |             分區資訊  3(16位元組)               |

      01EE  |------------------------------------------------|

            |                                                |

      01FD  |             分區資訊  4(16位元組)               |

            |------------------------------------------------      |

            | 01FE                | 01FF                                |

            |         55          |           AA                              |

            |------------------------------------------------      |

 系統啟動過程簡介

    系統啟動過程主要由一下幾步組成(以硬碟啟動為例):

BIOS晶片是主機闆上一塊長方型或正方型晶片,BIOS中主要存放:

自診斷程式:通過讀取CMOS RAM中的内容識别硬體配置,并對其進行自檢和初始化;

CMOS設定程式:引導過程中,用特殊熱鍵啟動,進行設定後,存入CMOS RAM中;

系統自舉裝載程式:在自檢成功後将磁盤相對0道0扇區上的引導程式裝入記憶體,讓其運作以裝入DOS系統;

主要I/O裝置的驅動程式和中斷服務;

    1. 開機 :-)

    2. BIOS 加電自檢 ( Power On Self Test -- POST )

       記憶體位址為 0ffff:0000

    3. 将硬碟第一個扇區 (0頭0道1扇區, 也就是Boot Sector)

       讀入記憶體位址 0000:7c00 處.

    4. 檢查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于

       則轉去嘗試其他啟動媒體, 如果沒有其他啟動媒體則顯示

       "No ROM BASIC" 然後當機.

    5. 跳轉到 0000:7c00 處執行 MBR 中的程式.

    6. MBR 首先将自己複制到 0000:0600 處, 然後繼續執行.

    7. 在主分區表中搜尋标志為活動的分區. 如果發現沒有活動

       分區或有不止一個活動分區, 則轉停止.

    8. 将活動分區的第一個扇區讀入記憶體位址 0000:7c00 處.

    9. 檢查 (WORD) 0000:7dfe 是否等于 0xaa55, 若不等于則

       顯示 "Missing Operating System" 然後停止, 或嘗試

       軟碟啟動.

    10. 跳轉到 0000:7c00 處繼續執行特定系統的啟動程式.

    11. 啟動系統 ...

    以上步驟中 2,3,4,5 步是由 BIOS 的引導程式完成. 6,7,8,9,10

步由MBR中的引導程式完成.

    一般多系統引導程式 (如 SmartFDISK, BootStar, PQBoot 等)

都是将标準主引導記錄替換成自己的引導程式, 在運作系統啟動程式

之前讓使用者選擇要啟動的分區.

    而某些系統自帶的多系統引導程式 (如 lilo, NT Loader 等)

則可以将自己的引導程式放在系統所處分區的第一個扇區中, 在 Linux

中即為 SuperBlock (其實 SuperBlock 是兩個扇區).

    注: 以上各步驟中使用的是标準 MBR, 其他多系統引導程式的引導

過程與此不同.

了解計算機系統啟動過程

此文譯自 Windows XP Resource Kit Web Resource 中 Understanding the Startup Process 一章

為了診斷和修複啟動故障,您需要了解啟動過程中發生了什麼。第一步隔離啟動問題,判斷問題是發生在Microsoft® Windows® XP Professional 啟動之前還是之後。

啟動失敗的根本原因,包括相關因素,可能是來自多方面的, 比如使用者錯誤,應用程式錯誤,硬體問題,病毒問題。如果問題過于嚴重,您可能需要重新安裝 Windows XP Professional 或者從備份媒體中恢複檔案。

在基于x86的系統上,發生在啟動故障 operating system loader (Ntldr) 可能意味着啟動檔案丢失或者被删除,或者硬碟主引導記錄 (MBR)損壞, 或者分區表,或者引導扇區的損壞。如果問題發生在啟動期間,那麼系統可能存在不相容的軟體或者驅動,不相容或者設定錯誤的硬體,或者系統檔案損壞。

基于 Itanium 系統的計算機啟動或者和 x86 系統類似。詳見後面的章節 "Startup Phases for Itanium-based Systems"

基于 x86 系統的啟動過程

Windows XP Professional 啟動過程和 Microsoft® Windows NT® version 4.0 and Microsoft® Windows® 2000 類似,差別于 Microsoft® MS-DOS®, Microsoft® Windows® 95, Microsoft® Windows® 98, and Microsoft® Windows® Millennium Edition (Windows Me) 這些系統。

所有運作 Windows XP Professional 的系統都遵循如下啟動順序:

上電自檢 (POST) 階段

初始化啟動階段

啟動裝載階段

檢測、設定硬體階段

系統核心裝載階段

登陸階段

上述的啟動過程适用于正常關機後的系統啟動或者重新啟動,從休眠或者待機狀态恢複的情況例外,後者請參考後面的章節 "Resolving Power Management Problems on x86-based Systems"

為了 Windows XP Professional 能夠引導,系統和啟動分區必須包含表 28.1.中的檔案。

表 28.1   基于x86 系統上 Windows XP Professional 的啟動檔案

檔案名 檔案所處位置  描述

Ntldr 系統分區根目錄  作業系統裝載器

Boot.ini 系統分區根目錄  該檔案指定 Windows XP Professional 的安裝路徑。對于多引導系統 Boot.ini 包含一個顯示在啟動菜單上的作業系統選擇菜單。

Bootsect.dos (僅适用于多引導系統) 系統分區根目錄  Ntldr 将會裝載此檔案,以讀取可能包含 MS-DOS, Windows 95, Windows 98, or Windows Me 等OS的Windows XP Professional 多引導系統設定。 Bootsect.dos 包含這些作業系統的引導扇區,檔案屬性為系統、隐藏。

Ntdetect.com 系統分區根目錄  此檔案将掃描硬體設定資訊,并傳遞給 Ntldr

Ntbootdd.sys 系統分區根目錄 (SCSI 或者ATA 等固件本身禁用或者不支援 INT-13 中斷擴充調用的裝置需要此檔案).  該驅動程式用于通路不使用 BIOS,而連接配接到 SCSI 或者 ATA 的硬碟驅動器, The contents of this file depend on the startup controller used.

Ntoskrnl.exe systemroot/System32  Windows XP Professional作業系統的核心 (也被叫做 kernel) 。作為 kernel的一部分,運作在處理器特權模式下的代碼,允許直接通路系統資料和硬體。 在安裝Windows XP Professional 作業系統期間,如果是單處理器系統,setup程式從作業系統CD光牒上複制 Ntoskrnl.exe 檔案,如果是多處理器系統,Setup 從安裝CD光牒上複制 Ntoskrnlmp.exe 并将它重命名為Ntoskrnl.exe.

Hal.dll systemroot/System32  硬體抽象層動态(HAL)連結庫檔案。HAL abstracts 從作業系統提取底層硬體資訊,并給相同類型的裝置,提供公用程式設計接口。 Microsoft® Windows® XP Professional 作業系統CD光牒包含若幹 Hal 檔案,Setup 将适合您系統硬體設定的檔案複制到您的計算機,并重命名為 Hal.dll.

System registry file systemroot/System32/Config/System  此系統資料庫檔案包含建立KEY_LOCAL_MACHINE/SYSTEM 系統資料庫鍵值所需要的資料。該鍵值包含了作業系統啟動裝置和系統服務所需要的資訊。 Device drivers systemroot/System32/Drivers  一些硬體裝置的驅動程式檔案,比如鍵盤、滑鼠、顯示卡。

注:

Windows NT 4.0, Windows 2000, and Windows XP Professional 定義 "系統" 和 "啟動" 分區有别于啟動作業系統。系統卷包含啟動Windows XP Professional所必須的檔案,比如 Windows loader (Ntldr)。啟動卷 Windows XP Professional 作業系統檔案和檔案夾比如 systemroot 和 systemroot/System32。在基于 x86 系統的計算機上,啟動卷和系統卷可以但不一定是同一個卷。

在表 28.1中,systemroot是衆多環境變量之一,用于将象檔案和檔案路徑這樣的字元串關聯到變量,以便Windows XP Professional應用程式和服務使用。例如,通過使用環境變量,腳本不同修改就可以運作在不同環境設定的計算機上。您可以通過在指令行執行  set 指令檢視環境變量清單。

關于環境變量,請參考Windows XP Professional中關于 "To add or change the values of environment variables" 的描述;關于系統檔案的資訊,詳見 "System Files Reference"

上電自檢

當您打開計算機的時候,中央處理器單元 (CPU) 開始執行存放在基本輸入輸出系統 (BIOS)中的指令。 BIOS, 一種固件,包含一些代碼,處理器依靠這些代碼啟動計算機,與外圍标準裝置通訊,形成一個最小環境,進而得以加載其他複雜代碼,它與計算機所安裝的作業系統無關。 計算機啟動過程的第一步就是上電自檢 (POST),POST 負責完成如下系統和檢測功能:

執行硬體初始化檢測,比如測試目前記憶體總數

校驗啟動作業系統所必須的裝置,比如硬碟

從位于主機闆上的CMOS中檢索系統設定

即便當您停機後, CMOS 存儲器中也會保持一些資訊,例如存儲在CMOS存儲器中的硬體設定包含啟動設定和即插即用資訊。

當主機闆上電自檢(POST)完成後,那些擁有自己固件的附加闆卡 (比如顯示卡和硬碟控制器) 開始執行自我檢測。

設定這些系統和外圍裝置固件參數,請參考相關廠商提供的系統文檔。

初始化啟動階段

在上電自檢( POST)階段後,存儲在CMOS存儲器中的那些設定,比如啟動設定,指明了可以引導作業系統的裝置。比如,如果啟動設定指定軟碟作為啟動的首選裝置,而将硬碟作為次要裝置(有些固件中顯示為 "A, C"),那麼啟動時将可能發生如下情形:

軟驅中插有軟碟

BIOS将搜尋設定為啟動軟碟的軟驅,如果存在,将會把0面0道1扇區(軟碟的啟動扇區)加載到記憶體。如果軟碟不能啟動,将會提示如下錯誤:

Non-system disk or disk errorReplace and press any key when ready

計算機将會一直顯示上面的資訊,直到您插入一張啟動軟碟或者驅出軟碟重新啟動計算機。

軟驅中沒有軟碟

如果您重新啟動計算機後沒有插入軟碟,計算機将會裝載位于主引導記錄 (MBR)所在區域的指令。MBR 位于啟動硬碟的第一個扇區,包含一些指令(稱為啟動代碼)和一個标示主分區和擴充分區的表(稱為分區表)。 BIOS 将 MBR 加載到記憶體,并将控制權移交給 MBR中的代碼。

計算機然後搜尋分區表,查找激活分區。激活分區的第一個扇區包含啟動代碼,這些代碼允許計算機進行如下操作:

确定所使用的檔案系統

定位并啟動作業系統裝載檔案, Ntldr.

如果激活分區不存在或者啟動扇區資訊丢失、錯誤,系統将提示如下資訊:

Invalid partition tableError loading operating systemMissing operating systemBOOT: Couldn't find NTLDRNTLDR is missing

如果激活分區定位成功,啟動分區中的代碼将會找到并開始啟動 Ntldr ,随後 BIOS 完成使命,釋放控制權

關于磁盤和檔案系統,MBR, 分區以及啟動扇區的一些更為詳細的資訊,請檢視 "File Systems" 和 "Troubleshooting Disks and File Systems"

指定其他啟動裝置的啟動順序

除此之外,一些計算機固件允許從其他裝置引導作業系統,比如:

CD-ROMs

網卡

可移動存儲媒體,比如 LS-120 驅動器或者 Iomega Zip 驅動器

接駁在便攜式計算機上的一些存儲器

在大多數的計算機上都允許您指定啟動次序,比如"CDROM, A, C". 當您指定 "CDROM, A, C" 這樣的啟動順序的時候,那麼啟動時就會是如下情況:

計算機搜尋 CD-ROM 作為啟動媒體。如果存在可以啟動的 CD (CD光牒), 計算機将使用作為啟動裝置,否則計算機将按照設定的啟動次序尋找下一個啟動裝置。

計算機搜尋軟碟作為啟動媒體。如果存在可以啟動的軟碟,計算機将使用軟碟作為啟動裝置。否則将給出錯誤資訊,并按照設定的啟動次序尋找下一個啟動裝置。

計算機使用硬碟作為啟動裝置。當 CD-ROM 驅動器和軟碟驅動器都是空的時候,計算機将隻會使用硬碟作為啟動裝置。

不過,引導媒體上的代碼對硬碟進行傳輸控制的情況是個例外。比如,當您使用可引導的Windows XP Professional 作業系統CD光牒引導系統的時候,Setup 程式将會檢測是否存在可用的硬碟以用于 Windows XP Professional 安裝過程,如果檢索到,那麼系統将會提示如下字樣 Press any key to boot from CD ,這将給您一個選擇,如果不按任何鍵就會跳過 CD-ROM 啟動。

您不能使用一個不能啟動的CD光牒引導系統,同時一張無法啟動的CD光牒将可能增加系統啟動時間,如果不打算從CD光牒引導系統,請在啟動前将CD光牒從 CD-ROM 驅動器中取出。

關于啟動順序的選項,請參考您的系統文檔。

啟動裝載階段

Ntldr 從啟動分區裝載啟動檔案,然後進行如下步驟:

設定x86系統處理器進入32位記憶體保護模式運作

基于x86的計算機啟動的時候運作在實模式,此在模式下,處理器禁止了一些功能,以便相容于運作于8位和16位處理上的軟體。随後 Ntldr 将處理器切換到32位模式,這種模式下,允許通路大容量記憶體,并可以運作 Windows XP Professional

啟動檔案系統

Ntldr 包含一些允許 Windows XP Professional 讀寫 NTFS 或者檔案配置設定表(FAT16 or FAT32) 檔案系統所需要的程式代碼。

讀取Boot.ini 檔案

Ntldr分析Boot.ini 檔案以确定作業系統啟動分區的位置。如果使用單系統啟動設定,那麼 Ntldr 将随後啟動 Ntdetect.com初始化硬體檢測.

如果存在多系統啟動,這可能包括 Windows XP Professional, Windows 2000, Windows NT 4.0, Windows 95, Windows 98, Windows Me, 或者 MS-DOS以及其他可能的作業系統,您将會在啟動的時候看到一個作業系統的選擇菜單。

注:

運作 Windows NT 4.0 的計算機如果需要通路之前挂載在Windows 2000 or Windows XP Professional下的NTFS卷,需要安裝至少 Service Pack 4 。關于 NTFS 互操作性資訊,請參考 "File Systems"

如果您選擇 Windows XP Professional, Windows 2000, or Windows NT 4.0, Ntldr 将随後啟動硬體檢測階段,如果沒有就會引導啟動扇區的其他系統。如果您選擇 Windows 95, Windows 98, Windows Me, or MS-DOS, Ntldr 将會掃描 Bootsect.dos 檔案,讀取其中所包含的 MBR 代碼,并執行它。關于Boot.ini的其他資訊請參考"Reviewing and Correcting Boot.ini Settings on x86-based Systems"

檢測硬體和硬體配置檔案

進入此階段,Ntldr 啟動Ntdetect.com, 後者将執行基礎硬體掃描。随後 Ntldr 掃描 Boot.ini 資訊,以及儲存在系統資料庫中的硬體和軟體資訊,傳送給 Ntoskrnl.exe。Ntdetect.com 檢測硬體配置資訊 (比如 便攜計算機上接駁或未接駁設定) 和儲存在 Advanced Configuration and Power Interface (ACPI) 表中的資訊。 ACPI 相容固件允許Windows XP Professional 檢測裝置電源管理功能和裝置資源需求。

關于ACPI 請參考 http://www.microsoft.com/windows/reskits/webresources.

檢測、設定硬體階段

在讀取 Boot.ini 并完成其任務後, Ntldr 啟動 Ntdetect.com。在 x86 系統上 Ntdetect.com 調用系統例行程式收集已經安裝的硬體資訊,并将收集的資訊傳回給Ntldr,Ntldr 将這些資訊收集後存入内部資料庫 ,然後啟動 Ntoskrnl.exe 并将資訊傳遞給它。

Ntdetect.com 所收集的硬體裝置的資訊如下:

資訊固件資訊,比如日期和時間

總線和闆卡類型

顯示卡

鍵盤

通訊端口

硬碟

軟碟

輸入裝置 (比如滑鼠)

并行端口

安裝在Industry Standard Architecture (ISA) 總線上的裝置

Ntdetect.com 在非ACPI相容計算機的裝置掃描中扮演了重要的角色。因為在這些類型的計算機上,固件而不是作業系統決定了配置設定給裝置的資源,對于使用ACPI固件的計算機,Windows XP Professional 對硬體裝置配置設定資源。在這個階段,Ntdetect.com 收集硬體資訊, Windows XP Professional 為桌面計算機建立一個單獨的預設硬體配置檔案,而為便攜計算機建立兩個預設的配置檔案。對于便攜計算機,作業系統基于目前計算機上硬體狀态選擇适當的配置檔案。

桌面型計算機. Profile 1

便攜式計算機.

Docked Profile

Undocked Profile

硬體配置檔案對于便攜式計算機是非常有用的,因為這些計算機的硬體狀态通常都不是靜态的,啟動的時候,沒有清單在特定的硬體配置檔案中的裝置驅動是不會被加載的。

關于建立和使用硬體配置檔案的資訊,請參考Windows XP Professional 幫助和支援中心,也可以參考知識庫文檔 225810, "How to Create Hardware Profiles on Windows 2000–Based Mobile Computers," 查找此文檔,請查詢Web Resources 頁面 http://www.microsoft.com/windows/reskits/webresources 上的知識庫連結,同時您也可以檢視"Managing Devices" 和 "Supporting Mobile Users"

核心裝載階段

Ntldr 負責将 Windows 核心層 (Ntoskrnl.exe) 和硬體抽象層 (HAL) 裝載到記憶體。您的系統所使用的 Hal.dll 檔案是可以發生變化的。在安裝期間,Windows XP Professional 安裝程式從若幹 HAL 檔案中選擇一個複制到系統,(請參看表28.2 關于這些檔案的清單) 并重名為Hal.dll。

在裝置管理器中檢視計算機描述

在運作對話框,輸入 devmgmt.msc,點選确定。

在裝置管理器展開計算機察看您計算機的描述。

通過比較裝置管理器中的描述和下面表 28.2中的描述, 您可以确定從 Windows XP Professional 作業系統CD光牒複制到您系統中的HAL檔案

Table 28.2   關于不同 Hal.dll 檔案的描述

裝置管理器中計算機的描述  複制的HAL檔案

ACPI 多處理器 PC Halmacpi.dll

ACPI 單處理器 PC Halaacpi.dll

Advanced Configuration and Power Interface (ACPI) PC Halacpi.dll

MPS 多處理器 PC Halmps.dll

MPS 單處理器 PC Halapic.dll

标準 PC Hal.dll

Compaq SystemPro 多處理器或者完全相容 Halsp.dll

核心層kernel 和硬體抽象層HAL 初始化一組軟體元件,他們統稱為windows 執行體。Windows 執行體掃描儲存在系統資料庫control sets中的資訊,并啟動服務和驅動程式。

關于Windows executive services, 請檢視 "Common Stop Messages for Troubleshooting"

控制集Control Sets

Ntldr 從 HKEY_LOCAL_MACHINE/SYSTEM 系統資料庫子鍵中讀取相關資訊,該子健中的資料建立于/System32/Config/ System 檔案,故而 Ntldr 能夠決定哪些裝置驅動在系統啟動時裝載。 通常,系統資料庫中存在幾個control sets, 其後面的序号取決于系統設定多長時間變更一次。。

提示:

如非必要不要直接編輯系統資料庫。系統資料庫編輯器繞開了系統保護機制,您的修改有可能會破壞系統,嚴重者甚至需要重新安裝 Windows。如果你必須編輯系統資料庫,請事先作備份,并詳細閱讀 Microsoft® Windows® 2000 Server Resource Kit 中關于 Registry Reference 的章節http://www.microsoft.com/windows/reskits/webresources.

典型的系統資料庫控制集 control set 子鍵如下:

/CurrentControlSet, 一個注冊在/Select/Current 項中,指向 ControlSetxxx 子鍵的指針 (xxx 代表一個 control set 編号, 比如 001) 

/Clone, 一份 /CurrentControlSet的拷貝,當您每次啟動計算機的時候建立。(gnaw0725注:此處原文如此,有待考證)

/Select, 包含如下鍵值:

Default, 指針指向系統指定使用者下次登陸所使用的控制集編号 (比如 001=ControlSet001)。 如果沒有錯誤發生,或者并非由 LastKnownGood 啟動項所設定,此 control set 編号将為 Default, Current和 LastKnownGood 注冊項所影響 (假定目前使用者可以成功登入) Current, 指向此次用于啟動系統的控制集  Failed, 指向沒有成功啟動 Windows XP Professional 的控制集。當使用 LastKnownGood 選項啟動系統時,此項被更新 (gnaw0725注:表示 Windows XP 在其中儲存失敗啟動産生的資料的控件組。 此控件組在使用者第一次調用“最近一次的正确配置”選項之前并不實際存在。) 

LastKnownGood, 指向上次使用者會話所使用的控制集 。當使用者登入的時候,LastKnownGood 控制集被前一次使用者會話使用的設定資訊所更新。除非您從Windows Advanced Options菜單中選擇Last Known Good Configuration,Ntldr 将使用Default 鍵值所标示的控制集。

核心層使用Ntldr 提供的内部資料結建構立 HKEY_LOCAL_MACHINE/HARDWARE 子鍵,其中包含在系統啟動階段收集的硬體資訊。這些資料包含資訊包括各種硬體元件和配置設定給每個裝置的系統資源。您可以通過檢視在啟動過程中顯示的進度訓示器來監控核心層加載過程 關于 Last Known Good Configuration的相關資訊,您可以查閱 "Tools for Troubleshooting" Windows XP Professional 支援裝置擴充。新的或者更新的驅動程式并不存在于 Windows XP Professional 作業系統CD光牒上,而是由于硬體廠商提供。驅動程式是核心模式元件,需要Drivers are kernel-mode components required by devices to function within an operating system. 服務是支援作業系統功能和應用程式的元件。與使用者應用程式相比,服務可以運作在一個不同的上下文,通常不會提供使用者可以設定的選項。服務,比如脫機列印 Print Spooler,不需要使用者登入即可運作,而且與登陸到系統的使用者無關。Windows XP Professional 驅動程式和服務系統檔案通常被存放在 systemroot/System32 和 systemroot/System32/Drivers 目錄下,以 .exe, .sys, or .dll 等擴充名儲存。

驅動程式也是服務,是以在核心層初始化期間,Ntldr 和 Ntoskrnl.exe 按照存儲在KEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/servicename 系統資料庫子鍵中的數值來确定裝載的驅動程式和服務次序。例如,Ntldr 首先搜尋Services 子鍵中 Start 值為 0的服務,比如硬碟控制器。當 Ntldr 啟動 Ntoskrnl.exe後,一個Ntoskrnl.exe 元件搜尋并啟動驅動程式,比如網絡協定,這些啟動項 Start 值為 1.

Table 28.3 ,列出了 Start 項的值(十進制)。Boot 類型的驅動 (Start 值為0的項) 檔案系統驅動程式的Start值始終為0,因為啟動 Windows XP Professional 需要它們的支援。

表 28.3 <服務名> Start項的指派

值 Start類型 關于 Start 項指派的描述

0 Boot 基于x86系統 Ntldr 或者Itanium IA64ldr上的固件調用模式指定裝載的驅動,如果沒有錯誤發生,核心層Kernel将啟動該驅動程式

1 System 指定在系統核心層 Kernel 初始化期間被 Windows XP Professional boot drivers 所調用的驅動程式

2 Auto load 指定在系統啟動時被會話管理器 (Smss.exe)或者服務控制器 (Services.exe)所加載的驅動程式或者服務。

3 Load on demand 指定一個通過使用者、程序或者其他服務手動啟動的驅動程式或者服務

4 Disabled 指定一個禁止(不啟動)的驅動程式或者服務。

表 28.4 列出了Type 項的一些值(十進制)

表 28.4   <服務名> Type 項的指派

值  Type 項指派描述

1 指定一個核心裝置驅動程式

2 指定一個檔案系統驅動程式 (也是一個核心裝置驅動程式)

4 指定參數傳遞給裝置驅動程式

16 指定一個遵循服務控制協定的服務,該服務可以獨立運作在一個程序中,且可以為服務控制器所啟動

32 指定一個可以和其他服務共享程序的服務

一些驅動程式和服務需要在啟動之前确定之間的互相依賴關系。通過檢視

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/servicename下DependOnGroup和 DependOnService  項 ,您可以找到這個依存關系的清單。關于使用依賴關系阻止或者延遲驅動程式或者服務啟動的資訊,請檢視 "Temporarily Disabling Services" 。該服務子鍵也包含了影響驅動程式和服務如何加載的資訊,表 28.5 中描述了其中的一部分。

表 28.5   系統資料庫其他 <服務名> 項

項 描述

DependOnGroup 此組中所描述的項目,至少有一個在目前服務裝載前必須被加載。子鍵

SYSTEM/CurrentControlSet/Control/ServiceGroupOrder 包含服務組裝載次序

DependOnService 此清單中描述的服務,必須在目前服務之前加載。

Description 元件描述

DisplayName 指定元件的顯示名稱

ErrorControl 控制一個驅動程式錯誤是需要系統使用 LastKnownGood 控制集還是提示一個錯誤停止資訊。

如果值為 0x0 (忽略,沒有錯誤報告), 不會顯示警告資訊,繼續執行啟動。

如果值為 0x1 (普通,報告錯誤), 将錯誤記錄到系統日志并提示警告資訊,但繼續啟動過程。

如果值為 0x2 (嚴重), 将事件記錄到系統日志,使用 LastKnownGood 設定,重新啟動系統,執行啟動過程。

如果值為 0x3 (關鍵), 将事件記錄到系統日志,使用 LastKnownGood 設定,重新啟動系統。如果目前啟動已經使用 LastKnownGood 設定,則

顯示錯誤停止資訊。

Group 指定驅動程式或者服務隸屬的組。此項設定允許驅動程式或者服務同步啟動(比入:檔案系統驅動程式)系統資料庫子鍵

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ServiceGroupOrder 中的 List 項指定了組項啟動順序。

ImagePath 如果存在ImagePath項,該項用于标示驅動程式或者服務的路徑和檔案名。 您可以使用Windows Explorer 核實這些路徑和檔案名。

ObjectName 指定一個對象名。如果 Type 項指定一個 Windows XP Professional 服務,那麼它就代表服務運作時用于登陸的帳戶名。

Tag 指定一個驅動程式在驅動程式組中的啟動順序。

會話管理器

當所有标志為 Boot 和 Startup 資料類型的系統資料庫子鍵執行完成後, kernel 開始加載會話管理器 Session Manager,由它 (Smss.exe) 執行後續重要的初始化工作,比如:

建立系統環境變量

啟動Windows 子系統核心保護模式 (通過 systemroot/System32/Win32k.sys 實作), 這将 Windows XP Professional 從文本模式切換至圖形模式。基于Windows的應用程式都運作在 Windows 子系統上,這個環境下允許應用程式通路作業系統功能函數,比如在螢幕上顯示資訊。

啟動 Windows 子系統使用者模式部分 (通過 systemroot/System32/Csrss.exe 實作).

啟動登陸管理器 (通過  systemroot/System32/Winlogon.exe 實作).

建立輔助虛拟記憶體頁檔案

為存放在下列子鍵中的檔案清單,執行延遲的重命名操作。 HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session

Manager/PendingFileRenameOperations. 比如:當您安裝了一個新的驅動程式或者應用程式後,系統可能會提示您重新啟動,以便 Windows XP Professional 能夠替換目前正在使用的檔案。

Windows 子系統和基于它執行的應用程式是使用者模式程序,它們不能直接通路硬體和裝置驅動。使用者模式程序執行優先級低于核心程序,當作業系統需要更多記憶體的時候,它可以将被使用者模式下程序使用的記憶體緩存到虛拟頁面檔案。關于使用者模式和核心模式元件的資訊,請參考"Common Stop Messages for Troubleshooting" 。

會話管理器Session Manager 将搜尋系統資料庫,以獲得服務資訊,系統資料庫鍵值如下:

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager 包含一個在服務裝載之前運作的指令清單  Autochk.exe 工具由 BootExecute 項的值和存儲在 Memory Management 子鍵中的虛拟記憶體 (頁面檔案) 設定所指定。Autochk, 是 Chkdsk 工具的一個版本,如果作業系統檢測到一個檔案系統錯誤,需要在完成啟動過程之前進行修複,那麼就會在啟動的時候運作它。關于 Autochk 和 Chkdsk, "Troubleshooting Disks and File Systems" 。

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/Session Manager/Subsystems 包含一個有效子系統的清單。比如 Csrss.exe 包含Windows 子系統中的一部分,使用者模式。 

HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/servicename. 服務控制管理器(Service Control Manager) 初始化那些設定為啟動自動加載的服務。

登入階段

在此階段Windows 子系統啟動 Winlogon.exe,此子產品為系統服務,以完成使用者的登入或者登出的動作。 Winlogon.exe 所完成的功能如下:

啟動服務子系統 (Services.exe), 也稱為服務控制管理器 (SCM).

啟動本地安全性授權程序 Local Security Authority (LSA) (Lsass.exe).

在出現開始登陸提示時,偵測 CTRL+ALT+DEL 組合鍵。

圖形化識别和驗證 Graphical Identification and Authentication (GINA) 元件擷取使用者名和密碼,并将這些資訊傳送給 LSA 進行安全驗證。如果使用者提供有效驗證,那麼通過使用Kerberos V 5 驗證協定或者 NTLM 可以或者通路權限。關于安全元件的資訊,比如 LSA, Kerberos V5 協定或者 NTLM, Distributed Systems Guide of the Microsoft® Windows® 2000 Server Resource Kit.

當服務控制管理器Service Control Manager 初始化自動裝載服務項和驅動時,Winlogon 開始初始化安全和認證元件,當使用者登入後,系統進如下動作:

更新控制集Control sets 。 控制集為 LastKnownGood 注冊項所影響,并随 Clone 項中的内容一同更新。Clone, 是CurrentControlSet 項的一份拷貝, 當您每次啟動計算機時被建立。當使用者登入的時候,LastKnownGood 控制集被前一次使用者會話使用的設定資訊所更新。

實施政策。組政策政策設定開始實施于使用者和計算機帳戶。關于組政策的相關資訊,請檢視"Planning Deployments," "Managing Desktops," 和 "Authorization and Access Control" ,以及Windows 2000 Server Resource Kit中分布式系統指南中關于 "Group Policy" 的章節,同

時您也可以參考其網站資源站點 http://www.microsoft.com/windows/reskits/webresources 上關于 Change and Configuration Management

Deployment Guide 的連結。

運作啟動程式。 Windows XP Professional 啟動登陸腳本,啟動程式組,并且啟動在如下系統資料庫子鍵和啟動目錄所關聯的服務項:

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Runonce

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/policies/Explorer/Run

HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Run

HKEY_CURRENT_USER/Software/Microsoft/Windows NT/CurrentVersion/Windows/Run

HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Run

HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/RunOnce

systemdrive/Documents and Settings/All Users/Start Menu/Programs/Startup

systemdrive/Documents and Settings/username/Start Menu/Programs/Startup

windir/Profiles/All Users/Start Menu/Programs/Startup

windir/Profiles/username/Start Menu/Programs/Startup

windir/Profiles 目錄檔案夾僅存在于從Windows NT 4.0更新的系統上。

直到使用者成功登陸到計算機後,Windows XP Professional 啟動過程最終完成。

即插即用檢測

即插即用檢測不與登陸過程同步運作,它依賴于系統固件,硬體,裝置驅動程式以及作業系統功能,進而能夠檢測和枚舉新的裝置。 Windows

XP Professional 為使用ACPI固件的裝置優化即插即用支援,并且允許增強功能,比如硬體資源共享。

當即插即用能夠很好協調工作時,Windows XP Professional 能夠在最小使用者參與的前提下,檢測到新的裝置,配置設定系統資源,安裝或者請求

驅動程式。ACPI 特性對于移動使用者是非常有用的,這些特性可以很好的支援待機、休眠、冷熱插拔等功能。

關于即插即用檢測和系統資源,請參考 "Managing Devices" and "Supporting Mobile Users"

  BIOS即基本輸入/輸出系統。實際上它是被固化在計算機ROM(隻讀存儲器)晶片上的一組程式,為計算機提供最低級的、最直接的硬體控制

與支援。更形象地說,BIOS就是硬體與軟體程式之間的一個"橋梁"或者說是接口(雖然它本身也隻是一個程式) ,負責解決硬體的即時需求,并

按軟體對硬體的操作要求具體執行。BIOS的具體功能和作用如下:

    BIOS中斷調用,即BIOS中斷服務程式。它是微機系統軟、硬體之間的一個可程式設計接口,用于程式軟體功能與微機硬體實作的衍接。

DOS/Windows作業系統對軟、硬碟、光驅與鍵盤、顯示器等外圍裝置的管理即建立在系統BIOS的基礎上。程式員也可以通過 對INT 5、INT 13等

中斷的通路直接調用BIOS中斷例程。

    BIOS系統設定程式,微機部件配置情況是放在一塊可讀寫的CMOS RAM晶片中的,它儲存着系統CPU、軟硬碟驅動器、顯示器、鍵盤等部件的

資訊。 關機後,系統通過一塊後備電池向CMOS供電以保持其中的資訊。如果CMOS中關于微機的配置資訊不正确,會導緻系統性能降 低、零部

件不能識别,并由此引發一系統的軟硬體故障。在BIOS ROM晶片中裝有一個程式稱為"系統設定程式",就是用來 設定CMOS RAM中的參數的。這

個程式一般在開機時按下一個或一組鍵即可進入,它提供了良好的界面供使用者使用。這個設定 CMOS參數的過程,習慣上也稱為"BIOS設定"。新

購的微機或新增了部件的系統,都需進行BIOS設定。

    POST上電自檢,接通微機的電源,系統将執行一個自我檢查的例行程式。這是BIOS功能的一部分,通常稱為POST--上電自檢(Power On Self

Test)。完整的POST自檢包括對CPU、系統主機闆、基本的640KB記憶體、1MB以上的擴充記憶體、系統ROM BIOS的測試;CMOS中系統配置的校驗;初始

化視訊控制器,測試視訊記憶體、檢驗視訊信号和同步信号,對CRT接口進行測試;對鍵盤、軟驅、硬碟及CD-ROM子系統作檢查;對并行口(列印

機)和串行口(RS232)進行檢查。自檢中如發現有錯誤,将按兩種情況處理:對于嚴重故障(緻命性故障)則停機,此時由于各種初始化操作還沒

完成,不能給出任何提示或信号;對于非嚴重故障則給出提示或聲音報警信号(自檢響鈴代碼的含義見下文),等待使用者處理。

    BIOS系統啟動自舉程式在完成POST自檢後,ROM BIOS将按照系統CMOS設定中的啟動順序搜尋軟硬碟驅動器及CDROM、網絡伺服器等有效的啟

動驅動器 ,讀入作業系統引導記錄,然後将系統控制權交給引導記錄,由引導記錄完成系統的啟動。

  

    常見BIOS晶片的識别主機闆上的ROM BIOS晶片是主機闆上唯一貼有标簽的晶片,一般為雙排直插式封裝(DIP),上面印有"BIOS"字樣。雖然有些

BIOS 晶片沒有明确印出"BIOS",但憑借外貼的标簽也能很容易地将它認出。586以前的BIOS多為可重寫EPROM晶片,上面的标簽起着保護BIOS内

容的作用(紫外線照射會使EPROM内容丢失),不能随便撕下。 586以後的ROM BIOS多采用Flash ROM(快閃可擦可程式設計隻讀存儲器),通過跳線開

關和系統配帶的驅動程式盤,可以對Flash ROM進行重寫,友善地實作BIOS更新。 常見的BIOS晶片有AMI、Award、Phoenix等,在晶片上都能見

到廠商的标記。

  

    目前市面上較流行的主機闆BIOS主要有 Award BIOS、AMI BIOS、Phoenix BIOS三種類型。Award BIOS是由Award Software公司開發的BIOS産

品,在目前的主機闆中使用最為廣泛。Award BIOS功能較為齊全,支援許多新硬體,目前市面上多數586主機闆和PⅡ主機闆都采用了這種BIOS;AMI

BIOS是AMI公司出品的BIOS系統軟體,開發于80年代中期,早期的286、386大多采用AMI BIOS,它對各種軟、硬體的适應性好,能保證系統性能

的穩定,到90年代後,綠色節能電腦開始普及,AMI卻沒能及時推出新版本來适應市場,使得AMI BIOS失去了大半壁江山;Phoenix BIOS是

Phoenix公司産品,Phoenix意為鳳凰,有完美之物的含義。Phoenix BIOS 多用于高檔的586原裝品牌機和筆記本電腦上,其畫面簡潔,便于操

作。 

 

▲BIOS是什麼?

   BIOS全名為(Basic Input Output System)即基本輸入/輸出系統,是電腦中最基礎的而又最重要的程式。我們把這一段程式存放在一個不需

要電源的記憶體(晶片)中,這就是平時所說的BIOS。它為計算機提供最低級的、最直接的硬體控制,計算機的原始操作都是依照固化在BIOS

裡的内容來完成的。準确地說,BIOS是硬體與軟體程式之間的一個“轉換器”或者說是接口(雖然它本身也隻是一個程式),負責解決硬體的即

時需求,并按軟體對硬體的操作要求具體執行。計算機使用者在使用計算機的過程中,都會接觸到BIOS,它在計算機系統中起着非常重要的作用

 

▲BIOS的功能

    BIOS ROM 晶片不但可以在主機闆上看到,而且BIOS管理功能如何在很大程度上決定了主機闆性能是否優越。BIOS管理功能包括:

    1.BIOS中斷服務程式實質上是微機系統中軟體與硬體之間的一個可程式設計接口,主要用于程式軟體功能與微機硬體之間 接。例如,WINDOWS98

對軟驅,光驅,硬碟等管理,中斷的設定等服務、程式。

    2. BIOS系統設定程式:微機部件配置記錄是放在一塊可寫的CMOS RAM晶片中的,主要儲存着系統的基本情況,CPU特性,軟硬碟驅動器等部

件的資訊。在BIOS ROM 晶片中裝有“系統設定程式”,主要來設定CMOS RAM中的各項參數。這個程式在開機時按某個鍵就可進入設定狀态,并

提供良好的界面。

    3.POST上電自檢:微機接通電源後,系統首先由(Power On Self Test,上電自檢)程式來對内部各個裝置進行檢查。通常完整的POST自檢将

包括對CPU,640K基本記憶體,1M以上的擴充記憶體,ROM,主機闆,CMOS存儲器,串并口,顯示卡,軟硬碟子系統及鍵盤進行測試,一旦在自檢中發現問題,

系統将給出提示資訊或鳴笛警告。

    4. BIOS系統啟動自舉程式:系統完成POST自檢後,ROM BIOS就首先按照系統CMOS設定中儲存的啟動順序搜尋軟硬碟驅動器及CD-ROM,網絡

伺服器等有效地啟動驅動器,讀入作業系統引導記錄,然後将系統控制權交給引導記錄,并由引導記錄來完成系統的順序啟動。

 

   BIOS的主要作用有三點

   1.自檢及初始化:開機後BIOS最先被啟動,然後它會對電腦的硬體裝置進行完全徹底的檢驗和測試。如果發現問題,分兩種情況處理:嚴重

故障停機,不給出任何提示或信号;非嚴重故障則給出螢幕提示或聲音報警信号,等待使用者處理。如果未發現問題,則将硬體設定為備用狀态

,然後啟動作業系統,把對電腦的控制權交給使用者。

   2.程式服務:BIOS直接與計算機的I/O(Input/Output,即輸入/輸出)裝置打交道,通過特定的資料端口發出指令,傳送或接收各種外部設

備的資料,實作軟體程式對硬體的直接操作。

   3.設定中斷:開機時,BIOS會告訴CPU各硬體裝置的中斷号,當使用者發出使用某個裝置的指令後,CPU就根據中斷号使用相應的硬體完成工作

,再根據中斷号跳回原來的工作。

   BIOS對整機性能的影響

   從上面的描述可以看出:BIOS可以算是計算機啟動和操作的基石,一塊主機闆或者說一台計算機性能優越與否,從很大程度上取決于闆上的

BIOS管理功能是否先進。大家在使用Windows 95/98中常會碰到很多奇怪的問題,諸如安裝一半當機或使用中經常當機;Windows 95/98隻能工

作在安全模式;聲霸卡解壓卡顯示卡發生沖突;CD-ROM挂不上;不能正常運作一些在DOS、Windows 3.x下運作得很好的程式等等。事實上這些問

題在很大程度上與BIOS設定密切相關。換句話說,你的BIOS根本無法識别某些新硬體或對現行作業系統的支援不夠完善。在這種情況下,就隻

有重新設定BIOS或者對BIOS進行更新才能解決問題。另外,如果你想提高啟動速度,也需要對BIOS進行一些調整才能達到目的,比如調整硬體

啟動順序、減少啟動時的檢測項目等等。

   BIOS和CMOS相同嗎?

   BIOS是一組設定硬體的電腦程式,儲存在主機闆上的一塊ROM晶片中。而CMOS通常讀作C-mo-se(中文發音“瑟模室”),是電腦主機闆上的一塊

可讀寫的RAM晶片,用來儲存目前系統的硬體配置情況和使用者對某些參數的設定。CMOS晶片由主機闆上的充電電池供電,即使系統斷電,參數也不

會丢失。CMOS晶片隻有儲存資料的功能,而對CMOS中各項參數的修改要通過BIOS的設定程式來實作。

   關于CMOS放電

 常常聽到計算機高手或者非高手說“密碼忘啦?給CMOS放電吧。”,這到底是什麼意思呢?

 如果你在計算機中設定了進入密碼,而你又碰巧忘記了這個密碼,你将無法進入計算機。不過還好,密碼是存儲在CMOS中的,而CMOS必須有

電才能保持其中的資料。是以,我們可以通過對CMOS 的放電操作使計算機“放棄”對密碼的要求。

   具體操作如下:  

 打開機箱,找到主機闆上的電池,将其與主機闆的連接配接斷開(就是取下電池喽),此時CMOS将因斷電而失去内部儲存的一切資訊。再将電池接通

,合上機箱開機,由于CMOS已是一片空白,它将不再要求你輸入密碼,此時進入BIOS設定程式,選擇主菜單中的“LOAD BIOS DEFAULT”(裝入

BIOS預設值)或“LOAD SETUP DEFAULT”(裝入設定程式預設值)即可,前者以最安全的方式啟動計算機,後者能使你的計算機發揮出較高的

性能。 

繼續閱讀