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