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