電腦剛生產(chǎn)出來應(yīng)該是一個(gè)硬件?
通俗地說,電腦剛通電時(shí)CPU和內(nèi)存里是沒有任何程序可運(yùn)行的,不只是現(xiàn)在的電腦也包括最早期的計(jì)算機(jī)——那種使用紙帶輸入的計(jì)算機(jī)。
因此計(jì)算機(jī)在通電開機(jī)之后,要進(jìn)行的第一個(gè)工作就是“原始程序裝入”,簡稱叫做“原入”。
早期的計(jì)算機(jī)會(huì)裝入一盤紙帶,上面通過打孔的方式生成了一小段程序指令,這段程序被稱作“原入程序”。原入程序的作用是建立基本的軟件和硬件運(yùn)行環(huán)境,使計(jì)算機(jī)硬件能夠操作和訪問必要的接口和外部設(shè)備——比如紙帶機(jī)、磁帶機(jī)或硬盤。
原入程序通過這些外設(shè)將操作系統(tǒng)程序和應(yīng)用程序引導(dǎo)安裝到計(jì)算機(jī)內(nèi)存中,并負(fù)責(zé)啟動(dòng)操作系統(tǒng),接下來計(jì)算機(jī)就由操作系統(tǒng)控制進(jìn)行人機(jī)交互或自動(dòng)運(yùn)行了。因此原入程序現(xiàn)在又被稱為“引導(dǎo)程序”。
那么原入程序又是如何進(jìn)入計(jì)算機(jī)并啟動(dòng)運(yùn)行的呢?
在早期的計(jì)算機(jī)中,是專門設(shè)置了一個(gè)開關(guān)和一套特定的電路,這個(gè)開關(guān)又被稱為原入開關(guān),這一套特定的電路又叫原入通道,并且在原入通道上配置了一臺專門的設(shè)備可以將程序指令直接送入內(nèi)存,這臺設(shè)備也被稱為原入設(shè)備。
打開原入開關(guān),不需要任何程序指令和軟件的支持,原入設(shè)備會(huì)自動(dòng)將原入程序(一系列的二進(jìn)制代碼)寫入計(jì)算機(jī)內(nèi)存的特定區(qū)域,并且自動(dòng)的從第一條指令開始執(zhí)行——這樣,原入程序就開始運(yùn)行了。
早期的計(jì)算機(jī),原入開關(guān)就是控制臺上的一個(gè)開關(guān)或按鈕,而原入設(shè)備通常是紙帶機(jī)、磁帶機(jī)或磁鼓(如果有多臺原入設(shè)備,一般0號設(shè)備為首選)。
今天的個(gè)人電腦,這個(gè)過程略顯復(fù)雜一點(diǎn)——原入開關(guān)相當(dāng)于電源開關(guān)(或復(fù)位按鈕),原入設(shè)備通常是硬盤(或固態(tài)盤,電腦其實(shí)是把固態(tài)盤視作為硬盤)。但因?yàn)榻裉斓膫€(gè)人電腦比早期的計(jì)算機(jī)要復(fù)雜的多,因此中間插入了一些步驟——事實(shí)上,有2個(gè)“原入程序”,即打開電源開關(guān)之后,電腦是分兩步來導(dǎo)入操作系統(tǒng)并啟動(dòng)軟件運(yùn)行的。
第一步叫做自檢程序,它通常是固化在計(jì)算機(jī)主板的某個(gè)芯片中,被稱作BIOS程序(基本輸入輸出系統(tǒng)的縮寫)。BIOS程序的第一條指令,其地址是固定不變的,因此在硬件設(shè)計(jì)中,只要CPU通電,它就會(huì)自動(dòng)的到這個(gè)固定的地址獲取第一條指令并執(zhí)行,即開始運(yùn)行BIOS程序。BIOS程序主要負(fù)責(zé)檢查計(jì)算機(jī)硬件設(shè)備的狀態(tài),并建立相應(yīng)的設(shè)備訪問通道和接口,其中最重要的是建立人機(jī)交互接口(鍵盤、鼠標(biāo)和顯示器),還要建立外部存儲(chǔ)設(shè)備接口(硬盤)——因?yàn)椴僮飨到y(tǒng)和應(yīng)用軟件都存儲(chǔ)在外部存儲(chǔ)設(shè)備中。此外,BIOS還必須要檢查內(nèi)存狀態(tài)以及容量,以便將后續(xù)的操作系統(tǒng)和軟件裝入內(nèi)存。
BIOS程序原則上是由電腦主板生產(chǎn)商(或OEM廠商)設(shè)計(jì)的,因此不同品牌和型號的BIOS程序很可能不同,但完成的工作大致相同,特別是在進(jìn)行下一步工作時(shí),不論哪一個(gè)廠家的BIOS程序都要在最后一步,去讀取硬盤存儲(chǔ)器上的第一個(gè)扇區(qū)——因?yàn)椴僮飨到y(tǒng)的引導(dǎo)程序安裝在硬盤的第一個(gè)扇區(qū)上(因此,往往硬盤的第一個(gè)扇區(qū)如果損壞,硬盤就不能再使用了)。
第二步叫做操作系統(tǒng)引導(dǎo)(也叫OS原入),BIOS程序在完成自檢之后,會(huì)讀取硬盤的第一個(gè)扇區(qū)的數(shù)據(jù)(通常是512個(gè)字節(jié),這就是操作系統(tǒng)引導(dǎo)程序),并將其寫入內(nèi)存的特定區(qū)域,然后 BIOS程序?qū)?zhí)行最后一條指令——一個(gè)跳轉(zhuǎn)指令,讓CPU跳轉(zhuǎn)到操作系統(tǒng)引導(dǎo)程序的第一條指令開始執(zhí)行。
512個(gè)字節(jié)的操作系統(tǒng)引導(dǎo)程序中(硬盤第一個(gè)扇區(qū)的最后64個(gè)字節(jié))還包含了硬盤的分區(qū)表,在分區(qū)表中指明了邏輯驅(qū)動(dòng)器的數(shù)量和各自的大小,也標(biāo)明了活動(dòng)分區(qū)——而操作系統(tǒng)程序就安裝在活動(dòng)分區(qū)上。操作系統(tǒng)引導(dǎo)程序在活動(dòng)分區(qū)上找到系統(tǒng)軟件,將其裝入內(nèi)存,然后啟動(dòng)操作系統(tǒng)運(yùn)行(顯然它的最后一個(gè)指令也是個(gè)跳轉(zhuǎn)指令)。
操作系統(tǒng)啟動(dòng)運(yùn)行之后,會(huì)建立更加復(fù)雜的設(shè)備驅(qū)動(dòng)程序接口(比如圖形界面系統(tǒng)和多媒體系統(tǒng)),以及相應(yīng)的應(yīng)用軟件。完成這一系列的工作之后,操作系統(tǒng)會(huì)自動(dòng)轉(zhuǎn)入一個(gè)人機(jī)交互的等待程序,這時(shí)候用戶就可以通過鼠標(biāo)或鍵盤操作計(jì)算機(jī)(或觸摸屏),操縱它完成你所要求的工作,當(dāng)工作完成后(程序運(yùn)行完畢),操作系統(tǒng)會(huì)再一次回到等待界面。
事實(shí)上,今天的電腦(包括智能手機(jī))在操作系統(tǒng)開始運(yùn)行之后通常是實(shí)時(shí)多任務(wù)的人機(jī)交互,因此在某個(gè)或某些程序在運(yùn)行的過程當(dāng)中,你也可以通過鼠標(biāo)、鍵盤或觸摸屏來操作計(jì)算機(jī)。