終端機(jī)無盤啟動過程基本分析_第1頁
終端機(jī)無盤啟動過程基本分析_第2頁
終端機(jī)無盤啟動過程基本分析_第3頁
終端機(jī)無盤啟動過程基本分析_第4頁
終端機(jī)無盤啟動過程基本分析_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、Network Optimization Expert Team終端機(jī)無盤啟動過程基本分析Network Optimization Expert Team培訓(xùn)主題培訓(xùn)主題1. 計(jì)算機(jī)系統(tǒng)架構(gòu)及硬件啟動過程2. BIOS的介紹及BIOS啟動過程3. PXE介紹及PXE啟動過程4. Linux內(nèi)核啟動過程5. 終端機(jī)軟件啟動過程N(yùn)etwork Optimization Expert Team1. 1. 計(jì)算機(jī)系統(tǒng)架構(gòu)及硬件啟動過程計(jì)算機(jī)系統(tǒng)架構(gòu)及硬件啟動過程N(yùn)etwork Optimization Expert TeamPCPC系統(tǒng)架構(gòu)系統(tǒng)架構(gòu)介紹介紹(Intel (Intel CPU)CPU)N

2、etwork Optimization Expert Team硬件啟動過程流程圖硬件啟動過程流程圖 硬件啟動過程。我們可以將一塊主板硬件啟動電路的關(guān)鍵啟動部件用下圖表示出來GMCHICHPOWERVRMCPUVID RegulatorButtonPOWERPCI_RSTCPU_RSTPOWER_OKPWR_GDVCCPPS_ON4289657110VIDVID Voltage3Network Optimization Expert Team硬件啟動過程硬件啟動過程( (一一) ) 當(dāng)我們按下電腦的開機(jī)按鈕時,電腦能檢測到有開機(jī)動作,則會開始下面一系列動作。1、首先,需要220V/110V供給系

3、統(tǒng)電源(Power Supply),則會產(chǎn)生出一組5VSB電壓并加載到主板上(電源插頭的Pin9),如圖五所示。2、按下PWR Button,主板產(chǎn)生PS-ON(POWER Supply-ON)信號,輸?shù)诫娫床孱^的Pin16。3、系統(tǒng)電源完全工作后,將輸出所有電壓,如12V -12V 5V 3.3V。4、電源穩(wěn)定后,還會發(fā)出PWR_OK信號給主板。5、主板上的部分電源電路開始工作后,其中的CPU VID(Voltage Identify)電源電路產(chǎn)生電壓并輸出給CPU,使CPU VID電路工作。同時,時鐘合成器電路通電開始工作,產(chǎn)生出各種頻率不同的時鐘信號。Network Optimizati

4、on Expert Team硬件啟動過程(二)硬件啟動過程(二)6、CPU輸出與Vcore對應(yīng)的VID信息給VRM(Voltage Regulator Module)穩(wěn)壓電路。7、VRM電路開始工作,輸出與VID信息相對應(yīng)的VCCP電壓(電源正電壓)并提供給CPU作為它的Vcore工作電壓。8、當(dāng)CPU的VCCP電壓穩(wěn)定后,它會告知VRM電路,VRM電路再產(chǎn)生出PWR_SB信號并送給ICH,告知ICH現(xiàn)在CPU可以正常工作了。9、ICH接收到PWR_GD信號和時鐘信號后,發(fā)出PCIRST和PLTRST,使GMCH和其它各種跨接于PCI總線上的設(shè)備復(fù)位。10、GMCH接收到PCIRST 后,發(fā)出

5、CPURST給CPU,最終完成各種設(shè)備的復(fù)位過程。Network Optimization Expert Team2. BIOS2. BIOS的介紹及的介紹及BIOSBIOS的啟動過程的啟動過程N(yùn)etwork Optimization Expert Team什么是什么是BIOSBIOS BIOS是英文Basic Input Output System的縮略語,全稱是ROMBIOS,意思是只讀存儲器基本輸入輸出系統(tǒng)。它是一組固化到計(jì)算機(jī)內(nèi)主板上一個ROM芯片上的程序,它保存著計(jì)算機(jī)最重要的基本輸入輸出的程序、系統(tǒng)設(shè)置信息、開機(jī)上電自檢程序和系統(tǒng)啟動自舉程序。BIOS包括有系統(tǒng)BIOS(即常說的主

6、板BIOS)、顯卡BIOS和其它設(shè)備(例如IDE控制器、SCSI卡或網(wǎng)卡等)的BIOS,其中系統(tǒng)BIOS是本PPT要討論的主角,因?yàn)橛?jì)算機(jī)的啟動過程正是在它的控制下進(jìn)行的。形象地說,BIOS應(yīng)該是連接軟件程序與硬件設(shè)備的一座橋梁,負(fù)責(zé)解決硬件的即時要求。Network Optimization Expert Team什么是內(nèi)存地址什么是內(nèi)存地址所以我們來了解一下內(nèi)存的地址。我們的機(jī)器中一般安裝有1G(1024M)或2G(2048M)內(nèi)存,這些內(nèi)存的每一個字節(jié)都被賦予了一個地址,以便CPU訪問內(nèi)存。比如說32MB的地址范圍用十六進(jìn)制數(shù)表示就是01FFFFFFH,其中0FFFFFH的低端1MB內(nèi)存

7、非常特殊,因?yàn)樽畛醯?086處理器能夠訪問的內(nèi)存最大只有1MB,這1MB的低端640KB被稱為基本內(nèi)存,而A0000HBFFFFH要保留給顯示卡的顯存使用,C0000HFFFFFH則被保留給BIOS使用,其中系統(tǒng)BIOS一般占用了最后的64KB或更多一點(diǎn)的空間,顯卡BIOS一般在C0000HC7FFFH處,IDE控制器的BIOS在C8000HCBFFFH處。 Network Optimization Expert TeamX86低端內(nèi)存分配圖Network Optimization Expert TeamBIOSBIOS啟動過程圖啟動過程圖Network Optimization Expert

8、 TeamBIOSBIOS啟動過程啟動過程( (一一) ) 第一步: 當(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ì)算機(jī)面板上的Reset按鈕來重啟機(jī)器,那么松開該按鈕時芯片組就會撤去RESET信號),CPU馬上就從地址 FFFF0H處開始執(zhí)行指令,從前面的介紹可知,這個地址實(shí)際上在系統(tǒng)BIOS的地址范圍內(nèi),無論是

9、Award BIOS還是AMI BIOS,放在這里的只是一條跳轉(zhuǎn)指令,跳到系統(tǒng)BIOS中真正的啟動代碼處,這個地方就是.硬件ROM。Network Optimization Expert TeamBIOSBIOS啟動過程啟動過程( (二二) ) 第二步: 系統(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)存有問題(此時

10、只會檢查640K常規(guī)內(nèi) 存),那么系統(tǒng)BIOS就會直接控制喇叭發(fā)聲來報(bào)告錯誤,聲音的長短和次數(shù)代表了錯誤的類型。在正常情況下,POST過程進(jìn)行得非常快,我們幾乎無法感覺 到它的存在,POST結(jié)束之后就會調(diào)用其它代碼來進(jìn)行更完整的硬件檢測。 Network Optimization Expert TeamBIOSBIOS啟動過程啟動過程( (三三) ) 第三步: 接下來系統(tǒng)BIOS將查找顯卡的BIOS,前面說過,存放顯卡BIOS的ROM芯片的起始地址通常設(shè)在C0000H處,系統(tǒng)BIOS在這個地方找到顯卡 BIOS之后就調(diào)用它的初始化代碼,由顯卡BIOS來初始化顯卡,此時多數(shù)顯卡都會在屏幕上顯示出

11、一些初始化信息,介紹生產(chǎn)廠商、圖形芯片類型等內(nèi)容,不過這個畫面幾乎是一閃而過。系統(tǒng)BIOS接著會查找其它設(shè)備的BIOS程序,找到之后同樣要調(diào)用這些BIOS內(nèi)部的初始化代碼來初始化相關(guān)的設(shè)備。 Network Optimization Expert TeamNetwork Optimization Expert TeamBIOSBIOS啟動過程啟動過程( (四四/ /五五) ) 第四步: 查找完所有其它設(shè)備的BIOS之后,系統(tǒng)BIOS將顯示出它自己的啟動畫面,其中包括有系統(tǒng)BIOS的類型、序列號和版本號等內(nèi)容。 第五步: 接著系統(tǒng)BIOS將檢測和顯示CPU的類型和工作頻率,然后開始測試所有的RA

12、M,并同時在屏幕上顯示內(nèi)存測試的進(jìn)度,我們可以在CMOS設(shè)置中自行決定使用簡單耗時少或者詳細(xì)耗時多的測試方式。 Network Optimization Expert TeamNetwork Optimization Expert TeamBIOSBIOS啟動過程啟動過程( (六六/ /七七) ) 第六步: 內(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)部的支持即插即用的代碼將開

13、始檢測和配置系統(tǒng)中安裝的即插即用設(shè)備,每找到一個設(shè)備之后,系統(tǒng)BIOS都會在屏幕上顯示出設(shè)備的名稱和型號等信息,同時為該設(shè)備分配中斷、DMA通道和I/O端口等資源。 Network Optimization Expert TeamBIOSBIOS啟動過程啟動過程( (八九八九) ) 第八步: 到這一步為止,所有硬件都已經(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)

14、配置數(shù)據(jù))。ESCD是系統(tǒng)BIOS用來與操作系統(tǒng)交換硬件配置信息的一種手段,這些數(shù)據(jù)被存放在CMOS(一小塊特殊的RAM,由主 板上的電池來供電)之中。通常ESCD數(shù)據(jù)只在系統(tǒng)硬件配置發(fā)生改變后才會更新,所以不是每次啟動機(jī)器時我們都能夠看到“Update ESCD Success”這樣的信息.Network Optimization Expert TeamNetwork Optimization Expert TeamBIOSBIOS啟動過程啟動過程( (十十) ) 第十步: ESCD更新完畢后,系統(tǒng)BIOS的啟動代碼將進(jìn)行它的最后一項(xiàng)工作,即根據(jù)用戶指定的啟動順序從軟盤、硬盤、網(wǎng)卡或光驅(qū)啟動

15、。以從C盤啟動為例,系統(tǒng)BIOS 將讀取并執(zhí)行硬盤上的主引導(dǎo)記錄,主引導(dǎo)記錄接著從分區(qū)表中找到第一個活動分區(qū),然后讀取并執(zhí)行這個活動分區(qū)的分區(qū)引導(dǎo)記錄,而分區(qū)引導(dǎo)記錄將負(fù)責(zé)讀取并 執(zhí)行引導(dǎo)程序。我們的終端機(jī)將從網(wǎng)卡進(jìn)行PXE啟動。Network Optimization Expert Team3. PXE3. PXE介紹及介紹及PXEPXE啟動過程啟動過程N(yùn)etwork Optimization Expert TeamPXEPXE的介紹的介紹 PXE(preboot execute environment預(yù)啟動執(zhí)行環(huán)境)是由Intel公司開發(fā)的最新技術(shù),工作于Client/Server的網(wǎng)絡(luò)模

16、式,支持工作站通過網(wǎng)絡(luò)從遠(yuǎn)端服務(wù)器下載映像,并由此支持通過網(wǎng)絡(luò)啟動操作系統(tǒng),在啟動過程中,終端要求服務(wù)器分配IP地址,再用TFTP(trivial file transfer protocol)協(xié)議下載一個啟動軟件包到本機(jī)內(nèi)存中執(zhí)行,由這個啟動軟件包完成終端機(jī)基本軟件設(shè)置,從而引導(dǎo)預(yù)先安裝在服務(wù)器中的終端操作系統(tǒng)。PXE可以引導(dǎo)多種操作系統(tǒng),如windows,linux等。目前終端機(jī)用的是GPXE是一個開源的網(wǎng)絡(luò)啟動程序。Network Optimization Expert TeamPXE啟動Linux內(nèi)核流程圖引導(dǎo)程序Network Optimization Expert TeamPXEP

17、XE的啟動過程的啟動過程( (一一) )PXE協(xié)議分為client和server兩端,PXE client在網(wǎng)卡的ROM中,當(dāng)計(jì)算機(jī)引導(dǎo)時,BIOS把PXE client調(diào)入內(nèi)存執(zhí)行,并顯示出命令菜單,經(jīng)用戶選擇后,PXE client將放置在遠(yuǎn)端的操作系統(tǒng)通過網(wǎng)絡(luò)下載到本地運(yùn)行。1. 客戶端發(fā)送動態(tài)獲得IP地址的廣播包到網(wǎng)絡(luò)上。2.DHCP服務(wù)器在收到該廣播包后,發(fā)送給客戶端分配IP地址的回應(yīng)包。 Network Optimization Expert TeamPXEPXE的啟動過程的啟動過程( (二二) ) 3. 客戶端收到回應(yīng)包后設(shè)置自己的IP地址,然后從DHCP服務(wù)器獲得啟動服務(wù)器的I

18、P 地址(DHCP服務(wù)器066選項(xiàng),這就是TFTP服務(wù)器的IP地址) 啟動文件名(DHCP服務(wù)器067選項(xiàng),這里的啟動文件名就是pxelinux.0 或者支持pxe的grub4dos的grldr,當(dāng)然,也可以是startrom.n12或者使用3com Image Edit創(chuàng)建的pxe啟動菜單文件,總之,它應(yīng)該是一種由pxe啟動規(guī)范規(guī)定的固定格式的可執(zhí)行文件)4.然后客戶端到聯(lián)系啟動服務(wù)器(TFTP服務(wù)器)獲得Linux內(nèi)核映像文件vmlinux及內(nèi)核小系統(tǒng)initrd.gz并執(zhí)行,這樣基本上就完成了pxe啟動Linux內(nèi)核的過程。Network Optimization Expert Team

19、4. Linux4. Linux內(nèi)核啟動過程內(nèi)核啟動過程N(yùn)etwork Optimization Expert Team內(nèi)核啟動過程(一)內(nèi)核啟動過程(一)系統(tǒng)讀取內(nèi)核映像,并進(jìn)行解壓縮操作。此時,屏幕一般會輸出“Uncompressing Linux”的提示。當(dāng)解壓縮內(nèi)核完成后,屏幕輸出“OK, booting the kernel”。系統(tǒng)將解壓后的內(nèi)核放置在內(nèi)存之中,并調(diào)用start_kernel()函數(shù)來啟動一系列的初始化函數(shù)并初始化各種設(shè)備,完成Linux核心環(huán)境的建立。Network Optimization Expert Team內(nèi)核啟動過程(二)內(nèi)核啟動過程(二)start_ke

20、nrel()定義在init/main.c中,它就類似于一般可執(zhí)行程序中的main()函數(shù),系統(tǒng)在此之前所做的僅僅是一些能讓內(nèi)核程序最低限度執(zhí)行的初始化操作,真正的內(nèi)核初始化過程是從這里才開始。函數(shù)start_kerenl()將會調(diào)用一系列的初始化函數(shù),用來完成內(nèi)核本身的各方面設(shè)置,目的是最終建立起基本完整的Linux核心環(huán)境。Network Optimization Expert Team內(nèi)核啟動過程(三)內(nèi)核啟動過程(三)start_kernel()中主要執(zhí)行了以下操作:(1) 在屏幕上打印出當(dāng)前的內(nèi)核版本信息。(2) 執(zhí)行setup_arch(),對系統(tǒng)結(jié)構(gòu)進(jìn)行設(shè)置。(3)執(zhí)行sched_

21、init(),對系統(tǒng)的調(diào)度機(jī)制進(jìn)行初始化。先是對每個可用CPU上的runqueque進(jìn)行初始化;然后初始化0號進(jìn)程(其task struct和系統(tǒng)空M堆棧在startup_32()中己經(jīng)被分配)為系統(tǒng)idle進(jìn)程,即系統(tǒng)空閑時占據(jù)CPU的進(jìn)程。Network Optimization Expert Team內(nèi)核啟動過程(四)內(nèi)核啟動過程(四) (4)執(zhí)行parse_early_param()和parsees_args()解析系統(tǒng)啟動參數(shù)。(5)執(zhí)行trap_in itQ,先設(shè)置了系統(tǒng)中斷向量表。0-19號的陷阱門用于CPU異常處理;然后初始化系統(tǒng)調(diào)用向量;最后調(diào)用cpu_init()完善對CP

22、U的初始化,用于支持進(jìn)程調(diào)度機(jī)制,包括設(shè)定標(biāo)志位寄存器、任務(wù)寄存器、初始化程序調(diào)試相關(guān)寄存器等等。(6)執(zhí)行rcu_init(),初始化系統(tǒng)中的Read-Copy Update互斥機(jī)制。Network Optimization Expert Team內(nèi)核啟動過程(五)內(nèi)核啟動過程(五) (7)執(zhí)行init_IRQ()函數(shù),初始化用于外設(shè)的中斷,完成對IDT的最終初始化過程。(8)執(zhí)行init_timers(), softirq_init()和time_init()函數(shù),分別初始系統(tǒng)的定時器機(jī)制,軟中斷機(jī)制以及系統(tǒng)日期和時間。(9)執(zhí)行mem_init()函數(shù),初始化物理內(nèi)存頁面的page數(shù)據(jù)結(jié)

23、構(gòu)描述符,完成對物理內(nèi)存管理機(jī)制的創(chuàng)建。Network Optimization Expert Team內(nèi)核啟動過程(六)內(nèi)核啟動過程(六)(10)執(zhí)行kmem_cache_init(),完成對通用slab緩沖區(qū)管理機(jī)制的初始化工作。(11)執(zhí)行fork_init(),計(jì)算出當(dāng)前系統(tǒng)的物理內(nèi)存容量能夠允許創(chuàng)建的進(jìn)程(線程)數(shù)量。(12)執(zhí)行proc_caches_init() , bufer_init(), unnamed_dev_init() ,vfs_caches_init(), signals_init()等函數(shù)對各種管理機(jī)制建立起專用的slab緩沖區(qū)隊(duì)列。(13 )執(zhí)行proc_roo

24、t_init()Wl數(shù),對虛擬文件系統(tǒng)/proc進(jìn)行初始化。Network Optimization Expert Team內(nèi)核啟動過程(七)內(nèi)核啟動過程(七)在 start_kenrel()的結(jié)尾,內(nèi)核通過kenrel_thread()創(chuàng)建出第一個系統(tǒng)內(nèi)核線程(即1號進(jìn)程),該線程執(zhí)行的是內(nèi)核中的init()函數(shù),負(fù)責(zé)的是下一階段的啟動任務(wù)。最后調(diào)用cpues_idle()函數(shù):進(jìn)入了系統(tǒng)主循環(huán)體口默認(rèn)將一直執(zhí)行default_idle()函數(shù)中的指令,即CPU的halt指令,直到就緒隊(duì)列中存在其他進(jìn)程需要被調(diào)度時才會轉(zhuǎn)向執(zhí)行其他函數(shù)。此時,系統(tǒng)中唯一存在就緒狀態(tài)的進(jìn)程就是由kerne_hr

25、ead()創(chuàng)建的init進(jìn)程(內(nèi)核線程),所以內(nèi)核并不進(jìn)入default_idle()函數(shù),而是轉(zhuǎn)向init()函數(shù)繼續(xù)啟動過程。Network Optimization Expert Team內(nèi)核啟動過程(八)內(nèi)核啟動過程(八)用戶層init依據(jù)inittab文件來設(shè)定運(yùn)行等級內(nèi)核被加載后,第一個運(yùn)行的程序便是/sbin/init,該文件會讀取/etc/inittab文件,并依據(jù)此文件來進(jìn)行初始化工作。其實(shí)/etc/inittab文件最主要的作用就是設(shè)定Linux的運(yùn)行等級,其設(shè)定形式是“:id:5:init default:”,這就表明Linux需要運(yùn)行在等級5上。Network Optimization Expert Team內(nèi)核啟動過程(九)內(nèi)核啟動過程(九)init進(jìn)程執(zhí)行rc.sysinit在設(shè)定了運(yùn)行等級后,Linux系統(tǒng)執(zhí)行的第一個用戶層文件就是/etc/rc.d/rc.sysinit腳本程序,它做的工作非常

溫馨提示

  • 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

提交評論