《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 探究計(jì)算機(jī)的啟動(dòng)過程
探究計(jì)算機(jī)的啟動(dòng)過程
2016年微型機(jī)與應(yīng)用第3期
袁茜茜
(北京信息科技大學(xué) 計(jì)算機(jī)學(xué)院,北京 100101)
摘要: 詳細(xì)研究了計(jì)算機(jī)的開機(jī)啟動(dòng)及系統(tǒng)加載等內(nèi)容,結(jié)合硬件和軟件之間的協(xié)同調(diào)用機(jī)制,給出了從計(jì)算機(jī)觸發(fā)開機(jī)按鈕到加載操作系統(tǒng),最后出現(xiàn)開機(jī)界面整個(gè)過程的相對(duì)完善的論述。對(duì)于計(jì)算機(jī)初學(xué)者全面認(rèn)識(shí)開機(jī)過程十分有幫助。
Abstract:
Key words :

  摘要:詳細(xì)研究了計(jì)算機(jī)的開機(jī)啟動(dòng)及系統(tǒng)加載等內(nèi)容,結(jié)合硬件和軟件之間的協(xié)同調(diào)用機(jī)制,給出了從計(jì)算機(jī)觸發(fā)開機(jī)按鈕到加載操作系統(tǒng),最后出現(xiàn)開機(jī)界面整個(gè)過程的相對(duì)完善的論述。對(duì)于計(jì)算機(jī)初學(xué)者全面認(rèn)識(shí)開機(jī)過程十分有幫助。

  關(guān)鍵詞BIOS系統(tǒng)POST自檢;主引導(dǎo)記錄;文件系統(tǒng)

0引言

  對(duì)于大多數(shù)非計(jì)算機(jī)類相關(guān)專業(yè)的人來說,對(duì)計(jì)算機(jī)的認(rèn)識(shí)只停留在掌握其基本操作的層面上,并不十分了解其內(nèi)部運(yùn)行原理,探索開機(jī)過程可以幫助他們從更深層次認(rèn)識(shí)計(jì)算機(jī)。計(jì)算機(jī)從接通電源到出現(xiàn)操作界面經(jīng)歷了一系列非常復(fù)雜的過程。首先計(jì)算機(jī)要對(duì)所有關(guān)鍵的硬件設(shè)備按一定順序依次進(jìn)行檢測和配置,然后根據(jù)引導(dǎo)扇區(qū)從存儲(chǔ)設(shè)備中加載操作系統(tǒng),并進(jìn)一步完成系統(tǒng)初始化工作。了解計(jì)算機(jī)開機(jī)啟動(dòng)過程,幫助用戶加強(qiáng)對(duì)計(jì)算機(jī)的日常維護(hù),通過升級(jí)硬件性能提高開機(jī)速度,使想要探究計(jì)算機(jī)科學(xué)技術(shù)的人對(duì)計(jì)算機(jī)的運(yùn)行機(jī)制有一個(gè)初步認(rèn)識(shí)。

1加電自檢

  計(jì)算機(jī)的初始化啟動(dòng)過程稱為自舉,也叫“Boot”(引導(dǎo))。名詞來源于一個(gè)說法,計(jì)算機(jī)啟動(dòng)的概念在剛開始確立的時(shí)候是矛盾的:計(jì)算機(jī)必須要先啟動(dòng)程序,機(jī)器才能運(yùn)行,然而計(jì)算機(jī)不運(yùn)行,機(jī)器就無法啟動(dòng),究竟應(yīng)該如何啟動(dòng)計(jì)算機(jī)曾經(jīng)使人們百思不得其解。在經(jīng)歷了很長一段時(shí)間之后,最終工程師們想盡各種辦法克服了這個(gè)矛盾。將開機(jī)程序?qū)懭雰?nèi)存,從而把計(jì)算機(jī)自檢與操作系統(tǒng)加載連接起來,終于使計(jì)算機(jī)能夠正常啟動(dòng)運(yùn)行。

  1.1CPU準(zhǔn)備工作

  當(dāng)人們按下開機(jī)按鈕時(shí),電源開始向主板和其他設(shè)備供電。由于開始時(shí)電壓不太穩(wěn)定,主板上的控制芯片組會(huì)向CPU發(fā)出并保持一個(gè)寬度大于2 ms的正脈沖信號(hào)即RESET(復(fù)位)信號(hào)。一般經(jīng)過100~500 ms電源將產(chǎn)生電壓穩(wěn)定的邏輯信號(hào),當(dāng)芯片組檢測到這個(gè)信號(hào)時(shí)便撤去RESET信號(hào)。電腦中央處理器(Central Processing Unit, CPU)開始從地址FFFF0000H處讀取指令,此時(shí)基本輸入輸出系統(tǒng)(Basic Input and Output System, BIOS)根據(jù)存放在這里的跳轉(zhuǎn)指令找到自己真正的啟動(dòng)代碼線程,開始一系列的檢測和配置工作。

  1.2系統(tǒng)BIOS的基本功能

  在計(jì)算機(jī)系統(tǒng)中起著重要作用的BIOS是直接與硬件打交道的底層代碼,它保存著計(jì)算機(jī)最重要的基本輸入輸出程序、開機(jī)自檢程序和系統(tǒng)自啟動(dòng)程序。它由一種特殊的電腦主板上的電池來供電,從隨機(jī)存取存儲(chǔ)器(Complementary Metal Oxide Semiconductor, CMOS)中讀寫系統(tǒng)設(shè)置的具體信息,為操作系統(tǒng)提供了控制硬件設(shè)備的基本功能。BIOS包括有系統(tǒng)BIOS(即主板BIOS),顯卡BIOS和其他設(shè)備(例如集成驅(qū)動(dòng)器電子控制器、小型計(jì)算機(jī)系統(tǒng)接口卡或網(wǎng)卡等)的BIOS。BIOS一般存放在只讀存儲(chǔ)器(Read Only Memory, ROM),可以永久性地保存數(shù)據(jù)和程序信息,即使機(jī)器停電,這些數(shù)據(jù)也不會(huì)丟失。

  1.3BIOS的檢測過程

  系統(tǒng)BIOS的啟動(dòng)代碼首先進(jìn)行硬件自檢(PowerOn SelfTest, POST),主要檢測系統(tǒng)中一些關(guān)鍵設(shè)備是否存在和能否正常工作,如內(nèi)存和顯卡等。由于此時(shí)顯卡還沒有初始化,如果在自檢過程中發(fā)現(xiàn)硬件有問題系統(tǒng)會(huì)發(fā)出蜂鳴,聲音的長短和次數(shù)代表了不同的錯(cuò)誤類型。如果沒有錯(cuò)誤發(fā)生,POST過程會(huì)很快結(jié)束,之后會(huì)調(diào)用其他代碼來進(jìn)行更完整的硬件檢測。

  接下來系統(tǒng)BIOS將查找顯卡的BIOS(在地址C0000H處),找到顯卡BIOS之后就調(diào)用它的初始化代碼來初始化顯卡,對(duì)于大多數(shù)顯卡來說都會(huì)將一些初始化信息顯示在屏幕上,例如生產(chǎn)廠商、型號(hào)等基本信息,但幾乎是一閃而過。系統(tǒng)BIOS接著會(huì)查找其他設(shè)備的BIOS程序,調(diào)用它們的初始化代碼來初始化相關(guān)設(shè)備。最后,系統(tǒng)BIOS將顯示出它自己的啟動(dòng)畫面,列出系統(tǒng)BIOS的類型、序列號(hào)和版本號(hào)等內(nèi)容。

  下一步,系統(tǒng)BIOS將檢測和顯示CPU的類型和工作率,接著測試所有的隨機(jī)存取存儲(chǔ)器(Random Access Memory, RAM),同時(shí)在屏幕上顯示內(nèi)存測試的進(jìn)度,內(nèi)存測試通過之后,系統(tǒng)BIOS將開始檢測系統(tǒng)中安裝的一些標(biāo)準(zhǔn)硬件設(shè)備,包括硬盤、CDROM等。接下來將要檢測和配置系統(tǒng)中安裝的即插即用設(shè)備,顯示出檢測到的設(shè)備名稱和型號(hào)信息,為這些設(shè)備分配可用資源[1]。

  所有硬件設(shè)備都檢測完畢之后,屏幕上會(huì)顯示出各種標(biāo)準(zhǔn)硬件設(shè)備使用的資源和相關(guān)工作參數(shù)等信息。然后系統(tǒng)BIOS將更新擴(kuò)展系統(tǒng)配置數(shù)據(jù)(Extended System Configuration Data, ESCD),系統(tǒng)BIOS通過它來與操作系統(tǒng)交換硬件配置信息,這些數(shù)據(jù)被存放在CMOS中,通常ESCD數(shù)據(jù)只在系統(tǒng)硬件配置發(fā)生變化時(shí)才會(huì)更新。

2主引導(dǎo)記錄

  硬件自檢完成之后,系統(tǒng)BIOS的操作界面上會(huì)顯示出用戶指定的啟動(dòng)設(shè)備順序,所列外部存儲(chǔ)設(shè)備可以是軟盤、硬盤或者是光盤等。排在前面的設(shè)備擁有優(yōu)先轉(zhuǎn)交控制權(quán),BIOS按照啟動(dòng)順序讀取設(shè)備中的主引導(dǎo)記錄(Master Boot Record, MBR),放到7C0000H內(nèi)存地址中,從MBR中查找接下來要讀取的信息。

  2.1主引導(dǎo)記錄的結(jié)構(gòu)

  主引導(dǎo)記錄位于硬盤的零柱面零磁頭的第一個(gè)扇區(qū)上,共512 B。如果這512 B的最后兩個(gè)字節(jié)是55AAH,則表示這個(gè)設(shè)備是可以啟動(dòng)的,如果不是則表示這個(gè)設(shè)備不能啟動(dòng),需要把控制權(quán)轉(zhuǎn)交給啟動(dòng)順序表中的下一個(gè)設(shè)備。標(biāo)準(zhǔn)MBR的字節(jié)碼含義如表1所示。

  2.2分區(qū)表

  找到主引導(dǎo)記錄之后,系統(tǒng)開始讀取有效的分區(qū)表。分區(qū)表的長度為64 B,細(xì)分成四個(gè)主分區(qū),每個(gè)主分區(qū)占用16 B。硬盤分區(qū)有很多好處,可以在不同的分區(qū)中分別裝入不同的操作系統(tǒng),實(shí)現(xiàn)多系統(tǒng)共存。主引導(dǎo)記錄通過分區(qū)表的第一個(gè)字節(jié)判斷該主分區(qū)是否為激活分區(qū),四個(gè)主分區(qū)中只有一個(gè)是激活的。分區(qū)表結(jié)構(gòu)如表2所示。

002.jpg

  從表2中可以看出,主分區(qū)的扇區(qū)個(gè)數(shù)共占4 B,故一個(gè)主分區(qū)的最大扇區(qū)總數(shù)為232個(gè)。如果每個(gè)扇區(qū)大小為512 B,則每個(gè)分區(qū)最大為2 TB(1 TB=240 B)。扇區(qū)的邏輯地址也占用32 bit,故硬盤最大可利用空間為2 TB。因此,如果要擴(kuò)大硬盤空間有兩個(gè)辦法:一是提高每個(gè)扇區(qū)的字節(jié)數(shù),二是增加扇區(qū)總數(shù)。目前硬盤存儲(chǔ)容量已經(jīng)達(dá)到了3 TB的階段,相關(guān)技術(shù)還在持續(xù)發(fā)展中,存儲(chǔ)容量仍將有所提升[2]。

3硬盤啟動(dòng)

  3.1通過主分區(qū)啟動(dòng)硬盤

  計(jì)算機(jī)讀取激活分區(qū)的第一個(gè)扇區(qū)卷引導(dǎo)記錄(Volume Boot Record, VBR),也叫做卷引導(dǎo)扇區(qū)或分區(qū)引導(dǎo)記錄、分區(qū)引導(dǎo)扇區(qū),通過主分區(qū)邏輯地址的起始地址找到相對(duì)應(yīng)的VBR。如果存儲(chǔ)設(shè)備未被分區(qū),如軟盤,則VBR位于該設(shè)備的第一個(gè)扇區(qū)。VBR中包含有很多信息,比如,每個(gè)扇區(qū)的字節(jié)數(shù),每一簇包含的扇區(qū)數(shù),保留區(qū)的扇區(qū)大小,文件分配表(File Allocation Table, FAT)中的文件數(shù)目,每一個(gè)FAT所占用的扇區(qū)大小,存放根信息的簇的位置等信息。通過VBR系統(tǒng)BIOS可以找到操作系統(tǒng)在這個(gè)分區(qū)中的具體位置,然后計(jì)算機(jī)將開始查找地址信息加載操作系統(tǒng)。從圖1可以看到整個(gè)硬盤的邏輯結(jié)構(gòu)[3]。

  3.2通過擴(kuò)展分區(qū)啟動(dòng)硬盤

001.jpg

  四個(gè)主分區(qū)表中有且僅有一個(gè)區(qū)可以被定義成擴(kuò)展分區(qū)(Extended Partition, EP),擴(kuò)展分區(qū)中又有多個(gè)邏輯分區(qū)。計(jì)算機(jī)首先讀取擴(kuò)展分區(qū)的第一個(gè)扇區(qū)即“擴(kuò)展引導(dǎo)記錄”(Extended Boot Record, EBR),EBR中包含一張64 B的分區(qū)表,擴(kuò)展分區(qū)可以包含無數(shù)個(gè)邏輯分區(qū)。但是,計(jì)算機(jī)很少選擇這種方式啟動(dòng)操作系統(tǒng)。如果操作系統(tǒng)安裝在擴(kuò)展分區(qū),一般會(huì)選擇通過啟動(dòng)管理器的辦法啟動(dòng)操作系統(tǒng)。

  3.3通過啟動(dòng)管理器啟動(dòng)硬盤

  在這種情況下,計(jì)算機(jī)在讀取MBR時(shí)不會(huì)把控制權(quán)轉(zhuǎn)交給某一分區(qū),而是運(yùn)行事先安裝的啟動(dòng)管理器,由用戶選擇要啟動(dòng)的操作系統(tǒng)。在Linux系統(tǒng)下的啟動(dòng)管理器(G Rand Unified Boot loader, Grub)以MBR的前446 B作為自己的開始執(zhí)行程序,可以選擇操作系統(tǒng)分區(qū)上的不同內(nèi)核,也可以向這些內(nèi)核傳遞啟動(dòng)參數(shù)。

  3.4文件系統(tǒng)

  在操作系統(tǒng)中,與文件和目錄相關(guān)的子系統(tǒng)稱為文件系統(tǒng),用來組織和管理文件。它把存儲(chǔ)空間組織成物理位置,并提供一種可以對(duì)存放于其中的數(shù)據(jù)進(jìn)行索引的機(jī)制。并且建立按層次安排的索引關(guān)系,將磁盤的物理分區(qū)轉(zhuǎn)換成邏輯分區(qū),再把數(shù)據(jù)分配到邏輯分區(qū)的位置。微軟系統(tǒng)常用的文件系統(tǒng)主要有FAT16、FAT32和NTFS(New Technology File System)等。

  FAT16即16位的文件分配表,使用最為廣泛,在微軟等的操作系統(tǒng)中,磁盤文件的分配以“簇”為單位,無論該文件占用整個(gè)容量的比例是多少,每個(gè)簇只對(duì)應(yīng)一個(gè)文件使用,且它最大只能支持2 GB的分區(qū),因此它存在硬盤實(shí)際空間利用率低的缺點(diǎn)。隨著電腦硬件性能的提高,微軟推出了增強(qiáng)的文件系統(tǒng)FAT32,它可以支持的最大磁盤大小為2 TB,采用更小的簇可以更有效地保存信息,F(xiàn)AT32文件系統(tǒng)可以重新定位根目錄和使用FAT的備份副本,此外,它的啟動(dòng)記錄被包含在一個(gè)含有關(guān)鍵數(shù)據(jù)的結(jié)構(gòu)中,減少了電腦系統(tǒng)崩潰的可能性。NTFS是隨著微軟NT操作系統(tǒng)而產(chǎn)生的,它的優(yōu)點(diǎn)是安全性和穩(wěn)定性較強(qiáng),在使用中不易產(chǎn)生文件碎片。NTFS可以支持的文件大小達(dá)到64 GB,遠(yuǎn)遠(yuǎn)高于FAT32下的4 GB,而且它可以支持長文件名[4]。

4加載操作系統(tǒng)

  操作系統(tǒng)確定之后,它的內(nèi)核先被載入內(nèi)存,進(jìn)行系統(tǒng)初始化,加載設(shè)備驅(qū)動(dòng)程序。在Linux系統(tǒng)下,首先載入/boot目錄下的操作系統(tǒng)kernel(內(nèi)核),kernel是操作系統(tǒng)的核心部分,主要功能有控制和管理事件的調(diào)度和同步、進(jìn)程間的消息傳遞、存儲(chǔ)器管理和進(jìn)程管理等。磁盤文件系統(tǒng)掛載,內(nèi)核加載成功后,首先運(yùn)行磁盤文件系統(tǒng)下/sbin /init中的程序,它根據(jù)配置文件產(chǎn)生init進(jìn)程。這是Linux啟動(dòng)后的第一個(gè)進(jìn)程,設(shè)置進(jìn)程控制塊中的進(jìn)程識(shí)別號(hào)PID(Process Identification,PID)編號(hào)為1,其他進(jìn)程都在它之后產(chǎn)生,為其子進(jìn)程。然后init線程開始加載系統(tǒng)的各個(gè)模塊,比如窗口程序和網(wǎng)絡(luò)程序,最后執(zhí)行/bin/login程序,出現(xiàn)登錄界面,用戶輸入用戶名和密碼。成功登錄之后,系統(tǒng)啟動(dòng)過程便順利完成,接下來用戶便可以進(jìn)行正常的日常使用了。

5結(jié)論

  計(jì)算機(jī)啟動(dòng)過程涉及到計(jì)算機(jī)底層硬件和系統(tǒng)軟件等知識(shí),了解整個(gè)過程之后,可以在此基礎(chǔ)上加強(qiáng)對(duì)計(jì)算機(jī)系統(tǒng)的認(rèn)識(shí)和維護(hù)。如果在啟動(dòng)計(jì)算機(jī)的過程中發(fā)生問題,用戶可以根據(jù)問題產(chǎn)生的不同階段進(jìn)行分析,并找到解決辦法,使計(jì)算機(jī)成功運(yùn)行起來。

  參考文獻(xiàn)

 ?。?] 孫維連,于莉莉,單琳娜. 硬盤維護(hù)與數(shù)據(jù)恢復(fù)[M]. 北京:中國水利水電出版社,2007.

 ?。?] 趙乾偉. 電腦硬盤終極應(yīng)用[M]. 北京:人民郵電出版社,2006.

 ?。?] 阮一峰. 如何變得有思想[M]. 北京:人民郵電出版社,2014.

  [4] 李換雙,潘平,羅輝,等.計(jì)算機(jī)安全漏洞及防范研究[J].微型機(jī)與應(yīng)用,2013,32(7):64-65,68.


此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。