XP系統(tǒng)啟動過程,有利于電腦維修過程中的判斷.doc_第1頁
XP系統(tǒng)啟動過程,有利于電腦維修過程中的判斷.doc_第2頁
XP系統(tǒng)啟動過程,有利于電腦維修過程中的判斷.doc_第3頁
XP系統(tǒng)啟動過程,有利于電腦維修過程中的判斷.doc_第4頁
XP系統(tǒng)啟動過程,有利于電腦維修過程中的判斷.doc_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

XP系統(tǒng)啟動過程,有利于電腦維修過程中的判斷.txt11生命是盛開的花朵,它綻放得美麗,舒展,絢麗多資;生命是精美的小詩,清新流暢,意蘊悠長;生命是優(yōu)美的樂曲,音律和諧,宛轉(zhuǎn)悠揚;生命是流淌的江河,奔流不息,滾滾向前xp系統(tǒng)啟動過程詳解 (2008-1-23 9:15:20) 363人次瀏覽 來源:vvxiong 社區(qū)查看 - 系統(tǒng)啟動過程詳解 首先讓我們來了解一些基本概念。第一個是大家非常熟悉的BIOS(基本輸入輸出系統(tǒng)),BIOS是直接與硬件打交道的底層代碼,它為操作系統(tǒng)提供了控制硬件設(shè)備的基本功能。BIOS包括有系統(tǒng)BIOS(即常說的主板BIOS)、顯卡BIOS和其它設(shè)備(例如IDE控制器、SCSI卡或網(wǎng)卡等)的BIOS,其中系統(tǒng)BIOS是本文要討論的主角,因為計算機(jī)的啟動過程正是在它的控制下進(jìn)行的。BIOS一般被存放在ROM(只讀存儲芯片)之中,即使在關(guān)機(jī)或掉電以后,這些代碼也不會消失。 第二個基本概念是內(nèi)存的地址,我們的機(jī)器中一般安裝有32MB、64MB或128MB內(nèi)存,這些內(nèi)存的每一個字節(jié)都被賦予了一個地址,以便CPU訪問內(nèi)存。32MB的地址范圍用十六進(jìn)制數(shù)表示就是01FFFFFFH,其中0FFFFFH的低端1MB內(nèi)存非常特殊,因為最初的8086處理器能夠訪問的內(nèi)存最大只有1MB,這1MB的低端640KB被稱為基本內(nèi)存,而A0000HBFFFFH要保留給顯示卡的顯存使用,C0000HFFFFFH則被保留給BIOS使用,其中系統(tǒng)BIOS一般占用了最后的64KB或更多一點的空間,顯卡BIOS一般在C0000HC7FFFH處,IDE控制器的BIOS在C8000HCBFFFH處。 好了,下面我們就來仔細(xì)看看計算機(jī)的啟動過程吧。 1 windows 9x 第一步: 當(dāng)我們按下電源開關(guān)時,電源就開始向主板和其它設(shè)備供電,此時電壓還不太穩(wěn)定,主板上的控制芯片組會向CPU發(fā)出并保持一個RESET(重置)信號,讓CPU內(nèi)部自動恢復(fù)到初始狀態(tài),但CPU在此刻不會馬上執(zhí)行指令。當(dāng)芯片組檢測到電源已經(jīng)開始穩(wěn)定供電了(當(dāng)然從不穩(wěn)定到穩(wěn)定的過程只是一瞬間的事情),它便撤去RESET信號(如果是手工按下計算機(jī)面板上的Reset按鈕來重啟機(jī)器,那么松開該按鈕時芯片組就會撤去RESET信號),CPU馬上就從地址FFFF0H處開始執(zhí)行指令,從前面的介紹可知,這個地址實際上在系統(tǒng)BIOS的地址范圍內(nèi),無論是Award BIOS還是AMI BIOS,放在這里的只是一條跳轉(zhuǎn)指令,跳到系統(tǒng)BIOS中真正的啟動代碼處。 第二步: 系統(tǒng)BIOS的啟動代碼首先要做的事情就是進(jìn)行POST(PowerOn Self Test,加電后自檢),POST的主要任務(wù)是檢測系統(tǒng)中一些關(guān)鍵設(shè)備是否存在和能否正常工作,例如內(nèi)存和顯卡等設(shè)備。由于POST是最早進(jìn)行的檢測過程,此時顯卡還沒有初始化,如果系統(tǒng)BIOS在進(jìn)行POST的過程中發(fā)現(xiàn)了一些致命錯誤,例如沒有找到內(nèi)存或者內(nèi)存有問題(此時只會檢查640K常規(guī)內(nèi)存),那么系統(tǒng)BIOS就會直接控制喇叭發(fā)聲來報告錯誤,聲音的長短和次數(shù)代表了錯誤的類型。在正常情況下,POST過程進(jìn)行得非常快,我們幾乎無法感覺到它的存在,POST結(jié)束之后就會調(diào)用其它代碼來進(jìn)行更完整的硬件檢測。 第三步: 接下來系統(tǒng)BIOS將查找顯卡的BIOS,前面說過,存放顯卡BIOS的ROM芯片的起始地址通常設(shè)在C0000H處,系統(tǒng)BIOS在這個地方找到顯卡BIOS之后就調(diào)用它的初始化代碼,由顯卡BIOS來初始化顯卡,此時多數(shù)顯卡都會在屏幕上顯示出一些初始化信息,介紹生產(chǎn)廠商、圖形芯片類型等內(nèi)容,不過這個畫面幾乎是一閃而過。系統(tǒng)BIOS接著會查找其它設(shè)備的BIOS程序,找到之后同樣要調(diào)用這些BIOS內(nèi)部的初始化代碼來初始化相關(guān)的設(shè)備。 第四步: 查找完所有其它設(shè)備的BIOS之后,系統(tǒng)BIOS將顯示出它自己的啟動畫面,其中包括有系統(tǒng)BIOS的類型、序列號和版本號等內(nèi)容。 第五步: 接著系統(tǒng)BIOS將檢測和顯示CPU的類型和工作頻率,然后開始測試所有的RAM,并同時在屏幕上顯示內(nèi)存測試的進(jìn)度,我們可以在CMOS設(shè)置中自行決定使用簡單耗時少或者詳細(xì)耗時多的測試方式。 第六步: 內(nèi)存測試通過之后,系統(tǒng)BIOS將開始檢測系統(tǒng)中安裝的一些標(biāo)準(zhǔn)硬件設(shè)備,包括硬盤、CDROM、串口、并口、軟驅(qū)等設(shè)備,另外絕大多數(shù)較新版本的系統(tǒng)BIOS在這一過程中還要自動檢測和設(shè)置內(nèi)存的定時參數(shù)、硬盤參數(shù)和訪問模式等。 第七步: 標(biāo)準(zhǔn)設(shè)備檢測完畢后,系統(tǒng)BIOS內(nèi)部的支持即插即用的代碼將開始檢測和配置系統(tǒng)中安裝的即插即用設(shè)備,每找到一個設(shè)備之后,系統(tǒng)BIOS都會在屏幕上顯示出設(shè)備的名稱和型號等信息,同時為該設(shè)備分配中斷、DMA通道和I/O端口等資源。 第八步: 到這一步為止,所有硬件都已經(jīng)檢測配置完畢了,多數(shù)系統(tǒ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ù)被存放在CMOS(一小塊特殊的RAM,由主板上的電池來供電)之中。通常ESCD數(shù)據(jù)只在系統(tǒng)硬件配置發(fā)生改變后才會更新,所以不是每次啟動機(jī)器時我們都能夠看到“Update ESCD Success”這樣的信息,不過,某些主板的系統(tǒng)BIOS在保存ESCD數(shù)據(jù)時使用了與Windows 9x不相同的數(shù)據(jù)格式,于是Windows 9x在它自己的啟動過程中會把ESCD數(shù)據(jù)修改成自己的格式,但在下一次啟動機(jī)器時,即使硬件配置沒有發(fā)生改變,系統(tǒng)BIOS也會把ESCD的數(shù)據(jù)格式改回來,如此循環(huán),將會導(dǎo)致在每次啟動機(jī)器時,系統(tǒng)BIOS都要更新一遍ESCD,這就是為什么有些機(jī)器在每次啟動時都會顯示出相關(guān)信息的原因。 第十步: ESCD更新完畢后,系統(tǒng)BIOS的啟動代碼將進(jìn)行它的最后一項工作,即根據(jù)用戶指定的啟動順序從軟盤、硬盤或光驅(qū)啟動。以從C盤啟動為例,系統(tǒng)BIOS將讀取并執(zhí)行硬盤上的主引導(dǎo)記錄,主引導(dǎo)記錄接著從分區(qū)表中找到第一個活動分區(qū),然后讀取并執(zhí)行這個活動分區(qū)的分區(qū)引導(dǎo)記錄,而分區(qū)引導(dǎo)記錄將負(fù)責(zé)讀取并執(zhí)行IO.SYS,這是DOS和Windows 9x最基本的系統(tǒng)文件。Windows 9x的IO.SYS首先要初始化一些重要的系統(tǒng)數(shù)據(jù),然后就顯示出我們熟悉的藍(lán)天白云,在這幅畫面之下,Windows將繼續(xù)進(jìn)行DOS部分和GUI(圖形用戶界面)部分的引導(dǎo)和初始化工作。 如果系統(tǒng)之中安裝有引導(dǎo)多種操作系統(tǒng)的工具軟件,通常主引導(dǎo)記錄將被替換成該軟件的引導(dǎo)代碼,這些代碼將允許用戶選擇一種操作系統(tǒng),然后讀取并執(zhí)行該操作系統(tǒng)的基本引導(dǎo)代碼(DOS和Windows的基本引導(dǎo)代碼就是分區(qū)引導(dǎo)記錄)。 如果我們在DOS下按CtrlAltDel組合鍵(或從Windows中選擇重新啟動計算機(jī))來進(jìn)行熱啟動,那么POST過程將被跳過去,直接從第三步開始,另外第五步的檢測CPU和內(nèi)存測試也不會再進(jìn)行。 2 windows nt 第一步: 首先計算機(jī)通電進(jìn)行自檢,并由 BIOS (即基本輸入輸出系統(tǒng))完成基本硬件配置,然后讀取硬盤的MBR(主引導(dǎo)記錄)檢查硬盤分區(qū)表以確定引導(dǎo)分區(qū),并將引導(dǎo)分區(qū)上的操作系統(tǒng)引導(dǎo)扇區(qū)調(diào)入內(nèi)存中執(zhí)行,此處即執(zhí)行NTLDR(操作系統(tǒng)加載器)文件。 Windows2000/XP支持多重啟動。它在安裝時會首先將已存在的其它操作系統(tǒng)引導(dǎo)扇區(qū)保存為BOOTSECT.DOS文件(位于活動分區(qū)根目錄下),并修改系統(tǒng)引導(dǎo)扇區(qū),以便系統(tǒng)啟動時加載NTLDR文件,從而達(dá)到多重啟動的目的。而Windows98則不具備這個功能,因此如果先裝好Windows2000/XP后再裝Windows98會破壞掉Windows2000/XP的引導(dǎo)記錄,導(dǎo)致2000/XP不能啟動。 第二步: 進(jìn)行出始化,NTLDR會把處理器從實模式轉(zhuǎn)換為32位保護(hù)模式。 第三步: 讀取BOOT.INI文件。該文件位于活動分區(qū)根目錄下,它的作用是使系統(tǒng)在啟動過程中出現(xiàn)選擇菜單,由用戶選擇希望啟動的操作系統(tǒng)。如果選擇啟動Windows2000/XP,NTLDR會繼續(xù)引導(dǎo)進(jìn)行以下過程;如果選擇為非Windows2000/XP系統(tǒng),NTLDR則會讀取系統(tǒng)引導(dǎo)扇區(qū)副本BOTSECT.DOS轉(zhuǎn)入啟動相應(yīng)系統(tǒng)。 BOOT LOADER即操作系統(tǒng)加載器,指定系統(tǒng)選擇菜單默認(rèn)等待時間和默認(rèn)引導(dǎo)的操作系統(tǒng)??墒止ば薷幕蛟诳刂泼姘逯行薷?,為了保險起見,建議在控制面板中修改。依次選擇控制面板-系統(tǒng)-高級-啟動和故障恢復(fù),即可更改相關(guān)設(shè)置。(在WindowsXP中還有另一種方法,即運行msconfig(系統(tǒng)配置實用程序)。 OPERATING SYSTEMS段指定操作系統(tǒng)列表,由雙引號括起來的部分就是列表所顯示的內(nèi)容,可任意修改,使其更加個性化。 形如MULTI(0)DISK(0)RDISK(0)PARTITION(1)格式的語句被稱為ARC路徑,它的格式為:MULTI()指定磁盤控制器(若為SCSI控制器,則此處應(yīng)替換為SCSI();DISK()指定SCSI設(shè)備編號(對于MULTI該處值始終為0);RDISK()指定IDE設(shè)備編號(對于SCSI,此處被忽略);PARTITION()指定分區(qū)編號。除分區(qū)編號由1開始外,其余編號均從0開始。 參數(shù)/FASTDETECT表示禁用串行鼠標(biāo)檢測,是系統(tǒng)默認(rèn)值。還有幾個常見參數(shù):MAXMEM指定Windows2000/XP可用內(nèi)存容量;BASEVIDEO使用標(biāo)準(zhǔn)VGA顯示驅(qū)動程序;NOGUIBOOT啟動過程中不顯示圖形屏幕;SOS加載設(shè)備驅(qū)動程序時顯示其名稱。 在操作系統(tǒng)選擇菜單中的中文字體由位于活動分區(qū)根目錄下的BOOTFONT.BIN文件提供。 第四步: 系統(tǒng)加載NTDETECT.COM文件。由它來檢測機(jī)器硬件,如并行端口,顯示適配器等等,并將收集到的硬件列表返回NTLDR用于以后在注冊表中注冊保存。 第五步: 如果Windows2000/XP有多個硬件配置文件,此時會出現(xiàn)選擇菜單,等待用戶確定要使用的硬件配置文件,否則直接跳過此步,啟用默認(rèn)配置。硬件配置文件是指保存計算機(jī)特定硬件配置的系統(tǒng)文件。可以創(chuàng)建多個不同的硬件配置文件以滿足計算機(jī)在不同場合的應(yīng)用??梢砸来芜x擇控制面板-系統(tǒng)-硬件-硬件配置文件作出修改。 第六步: 引導(dǎo)過程開始裝載Windows2000/XP內(nèi)核NTOSKRNL.EXE。這個文件位于Windows2000/XP安裝文件夾下的SYSTEM32文件夾中。隨后,硬件抽象層(HAL)被引導(dǎo)進(jìn)程加載,完成本步驟。 硬件抽象層(HAL):隱藏特定平臺的硬件接口細(xì)節(jié),為操作系統(tǒng)提供虛擬硬件平臺,使其具有硬件無關(guān)性,可在多種平臺上進(jìn)行移植。 第七步: 內(nèi)核完成初始化,NTLDR將控制權(quán)轉(zhuǎn)交Windows2000/XP內(nèi)核,后者開始裝載并初始化設(shè)備驅(qū)動程序,以及啟動WIN32子系統(tǒng)和WINDOWS2000/XP服務(wù)。 第八步: 開始登錄進(jìn)程。由WIN32子系統(tǒng)啟動WINLOGON.EXE,并由它啟動LOCAL SECURITY AUTHORITY(LSASS.EXE)顯示登錄對話框。用戶登錄后,WINDOWS2000/XP會繼續(xù)配置網(wǎng)絡(luò)設(shè)備和用戶環(huán)境。最后,伴隨著微軟之聲和我們熟悉的個性化桌面,WINDOWS2000/XP漫長的啟動過程終于完成。 3 linux 第一步: 硬件檢測。當(dāng)機(jī)器加電后它首先執(zhí)行BIOS(基本輸入輸出系統(tǒng))中的代碼,BIOS首先執(zhí)行加電自檢程序(POST),當(dāng)自檢通過程便完成了硬件的啟動。POST程序通過對內(nèi)存及其他硬件的設(shè)備的診斷檢測確定硬件的存在并可正確操作。BIOS是固化在芯片里的程序,執(zhí)行這一過程一般只需要幾秒鐘。當(dāng)自檢完成后BIOS按照系統(tǒng)COMS中設(shè)置的啟動順序搜尋有效的啟動驅(qū)動器(這里我們以硬盤為例),并讀入系統(tǒng)引導(dǎo)扇區(qū),并將系統(tǒng)控制權(quán)交給引導(dǎo)程序。 第二步: 加載和執(zhí)行引導(dǎo)程序。系統(tǒng)引導(dǎo)程序主要是把系統(tǒng)內(nèi)核裝載到內(nèi)存,啟動盤必須在第一個邏輯磁道上包含引導(dǎo)記錄。這512個字節(jié)的扇區(qū)又被稱作是引導(dǎo)扇區(qū),在系統(tǒng)完成加電自檢后,BIOS從啟動盤中將引導(dǎo)扇區(qū)讀入到內(nèi)存中。引導(dǎo)記錄中包含了一些磁盤的物理特性的參數(shù)。在引導(dǎo)扇區(qū)被讀入內(nèi)存后,BIOS就能從這里讀取到啟動盤的物理參數(shù)。一旦引導(dǎo)記錄加載完畢,BIOS就交出系統(tǒng)的執(zhí)行控制權(quán),跳轉(zhuǎn)到引導(dǎo)程序的頭部執(zhí)行。引導(dǎo)記錄開頭是一條無條件轉(zhuǎn)移指令,它將立即跳轉(zhuǎn)到地址0x03e執(zhí)行引導(dǎo)程序,在引導(dǎo)扇區(qū)中這個引導(dǎo)程序?qū)拇疟P中讀出其他幾個更為復(fù)雜的程序并由它們加載系統(tǒng)內(nèi)核。 Linux的引導(dǎo)程序由匯編代碼文件arch/i386/boot/bootsect.S生成,它利用對BIOS功能的調(diào)用將arch/i386/boot/下的setup.S文件和內(nèi)核映象加載到內(nèi)存。i386的體系結(jié)構(gòu)的CPU分保護(hù)模式和實模式兩種,在實模式下只能使用低端的640K內(nèi)存。系統(tǒng)在加載引導(dǎo)程序時CPU是處在實模式下,而現(xiàn)在的內(nèi)核映象文件一般都超過了640K的限制,即使是經(jīng)過壓縮過的內(nèi)核映象,這個內(nèi)核映象文件通常是bzImage,我們在編譯內(nèi)核時通常要用到這個文件。由于bzImage超出了640K這一限制,所以linux設(shè)計了一個bootsect_helper子程序(定義在arch/i386/boot/setup.S中),引導(dǎo)程序通過循環(huán)調(diào)用bootsect_helper將內(nèi)核映象一塊一塊的裝入內(nèi)存,當(dāng)內(nèi)核加載完畢,系統(tǒng)跳轉(zhuǎn)到setup.S的開始位置開始執(zhí)行,setup.S仍在實模式下運行,主要功能是設(shè)置系統(tǒng)參數(shù)(如:內(nèi)存、磁盤等),并為進(jìn)入保護(hù)模式做準(zhǔn)備,最后進(jìn)入到保護(hù)模式并跳轉(zhuǎn)到內(nèi)核映象文件的頭部開始執(zhí)行內(nèi)核。這里提一下有關(guān)linux的引導(dǎo)程序lilo和grub,lilo和grub可以引導(dǎo)多個系統(tǒng),如果機(jī)器上要裝多系統(tǒng)的話一般都會用到它們,這一引導(dǎo)程序也儲存在引導(dǎo)扇區(qū)中或者存放在主引導(dǎo)記錄中(MBR),lilo和grub都許允用戶自己配置,它們在系統(tǒng)安裝時建立了關(guān)于系統(tǒng)內(nèi)核占用磁盤數(shù)據(jù)塊的位置對照表。當(dāng)用戶選擇啟動linux系統(tǒng)后,同樣也跳轉(zhuǎn)到setup.S上運行。 第三步: 內(nèi)核初始化。當(dāng)setup.S執(zhí)行完后,CPU進(jìn)行保護(hù)模式,并開始執(zhí)行內(nèi)核,如果內(nèi)核是經(jīng)過壓縮的,那么首先執(zhí)行arch/i386/boot/compressed目錄下的head.S建立堆棧并解壓內(nèi)核映象文件,然后再轉(zhuǎn)入arch/i386/kernel下的head.S。如果沒有壓縮則直接轉(zhuǎn)到arch/i386/kernel下的head.S開始執(zhí)行。arch/i386/kernel/head.S程序負(fù)責(zé)數(shù)據(jù)區(qū)(BBS)、中斷描述表(IDT)、段描述表(GDT)、頁表和寄存器的初始化。最后進(jìn)入start_kernel()模塊。此時系統(tǒng)運行在內(nèi)核模式(0級別)下,轉(zhuǎn)入到init/main.c中的start_kernel()。 start_kernel()繼續(xù)其他方面的初始化工作,主要是初始化系統(tǒng)的核心數(shù)據(jù)結(jié)構(gòu),主要包括: setup_arch():執(zhí)行與體系結(jié)構(gòu)相關(guān)的設(shè)置。 trap_init():設(shè)置各種入口地址。 init_IRQ():初始化IRQ中斷處理機(jī)制。 sched_init():設(shè)置并啟動第一個進(jìn)程init_task()。 softirq_init():對軟中斷子系統(tǒng)進(jìn)行初始化。 console_init():初始化控制臺、顯示器. init_modules():初始化

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論