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),請進行舉報或認領

文檔簡介

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

溫馨提示

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

最新文檔

評論

0/150

提交評論