簡單操作系統(tǒng) FreeDOS 如何啟動(dòng)
概述你的計(jì)算機(jī)如何引導(dǎo)和啟動(dòng)一個(gè)像 FreeDOS 這樣的簡單操作系統(tǒng)。
在使用 DOS 計(jì)算機(jī)的過程中,我很欣賞的一點(diǎn)是,引導(dǎo)過程相對容易理解。在 DOS 中沒有太多的變動(dòng)組件。而今天,我想和大家分享一下電腦是如何引導(dǎo)和啟動(dòng)像 FreeDOS 這樣的簡單操作系統(tǒng)的概況。
初始引導(dǎo)
當(dāng)你打開計(jì)算機(jī)的電源時(shí),系統(tǒng)會(huì)進(jìn)行一些自我檢查,如驗(yàn)證內(nèi)存和其他組件。這被稱為開機(jī)自檢(POST)。POST 之后,計(jì)算機(jī)使用一個(gè)硬編碼指令,告訴它在哪里找到加載操作系統(tǒng)的指令。這就是“引導(dǎo)加載程序”,通常它將試圖找到硬盤上的主引導(dǎo)記錄(MBR)。然后,MBR 加載主操作系統(tǒng),在這里就是 FreeDOS。
這個(gè)定位一個(gè)信息以便計(jì)算機(jī)能夠加載操作系統(tǒng)的下一個(gè)部分的過程被稱為“引導(dǎo)”,來自于“通過你自己的努力振作起來”的古老說法。正是從這個(gè)用法中,我們采用了“引導(dǎo)”一詞來表示啟動(dòng)你的計(jì)算機(jī)。
內(nèi)核
當(dāng)計(jì)算機(jī)加載 FreeDOS 內(nèi)核時(shí),內(nèi)核所做的第一件事就是識(shí)別用戶所表示要使用的任何參數(shù)。它被保存在一個(gè)叫做 FDCONFIG.SYS
的文件中,與內(nèi)核保存在同一個(gè)根目錄下。如果 FDCONFIG.SYS
不存在,那么 FreeDOS 的內(nèi)核就會(huì)尋找一個(gè)叫做 CONFIG.SYS
的替代文件。
如果你在 20 世紀(jì) 80 年代或 90 年代使用過 DOS,你可能對 CONFIG.SYS
文件很熟悉。從 1999 年起,F(xiàn)reeDOS 首先尋找 FDCONFIG.SYS
,以防你的 DOS 系統(tǒng)與其他 DOS(如 MS-DOS)做了 雙啟動(dòng)。請注意,MS-DOS 只使用 CONFIG.SYS
文件。因此,如果你用同一個(gè)硬盤同時(shí)啟動(dòng) FreeDOS 和 MS-DOS,MS-DOS 使用 CONFIG.SYS
來配置自己,而 FreeDOS 則使用 FDCONFIG.SYS
。這樣一來,雙方都可以使用自己的配置。
FDCONFIG.SYS
可以包含一些配置設(shè)置,其中之一是 SHELL=
或 SHELLHIGH=
。任何一個(gè)都會(huì)指示內(nèi)核加載這個(gè)程序作為用戶的交互式 shell。
如果 FDCONFIG.SYS
和 CONFIG.SYS
都不存在,那么內(nèi)核就會(huì)假定幾個(gè)默認(rèn)值,包括在哪里找到 shell。如果你在啟動(dòng) FreeDOS 系統(tǒng)時(shí)看到 “Bad or missing Command Interpreter” 的信息,這意味著 SHELL=
或 SHELLHIGH=
指向了一個(gè)在你系統(tǒng)中不存在的 shell 程序。
Bad or missing Command Interpreter
你可以通過查看 SHELL=
或 SHELLHIGH=
行來調(diào)試這個(gè)問題。如果做不到這一點(diǎn),請確保你在 FreeDOS 系統(tǒng)的根目錄下有一個(gè)名為 COMMAND.COM
的程序。它就是 shell,我接下來會(huì)講到它。
shell
在 DOS 系統(tǒng)中,“shell” 一詞通常是指一個(gè)命令行解釋器:一個(gè)交互式程序,它從用戶那里讀取指令,然后執(zhí)行它們。在這里,F(xiàn)reeDOS 的 shell 與 Linux 的 Bash shell 相似。
除非你用 SHELL=
或 SHELLHIGH=
要求內(nèi)核加載一個(gè)不同的 shell,否則 DOS 上的標(biāo)準(zhǔn)命令行 shell 被稱為 COMMAND.COM
。當(dāng) COMMAND.COM
啟動(dòng)時(shí),它也尋找一個(gè)文件來配置自己。默認(rèn)情況下,COMMAND.COM
會(huì)在根目錄下尋找一個(gè)名為 AUTOEXEC.BAT
的文件。AUTOEXEC.BAT
是一個(gè)“批處理文件”,它包含一組啟動(dòng)時(shí)運(yùn)行的指令,大致類似于 Linux 上 Bash 啟動(dòng)時(shí)讀取的 ~/.bashrc
“資源文件”。
你可以在 FDCONFIG.SYS
文件中用 SHELL=
或 SHELLHIGH=
改變 shell 以及 shell 的啟動(dòng)文件。FreeDOS 1.3 RC4 安裝程序?qū)⑾到y(tǒng)設(shè)置為讀取 FDAUTO.BAT
而不是 AUTOEXEC.BAT
。這與內(nèi)核讀取另一個(gè)配置文件的原因相同;你可以在硬盤上用另一個(gè) DOS 雙啟動(dòng) FreeDOS。FreeDOS 將使用 FDAUTO.BAT
而 MS-DOS 將使用 AUTOEXEC.BAT
。
如果沒有像 AUTOEXEC.BAT
這樣的啟動(dòng)文件,shell 將簡單地提示用戶輸入日期和時(shí)間。
Without AUTOEXEC.BAT, the shell will prompt for date and time
就是這些了。當(dāng) FreeDOS 加載了內(nèi)核,而內(nèi)核也加載了 shell,F(xiàn)reeDOS 就準(zhǔn)備好讓用戶輸入命令了。
FreeDOS is ready for you to enter your first command