掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
傳統(tǒng)的 DOS 操作系統(tǒng)支持的許多非常優(yōu)秀的應(yīng)用程序: 文字處理,電子表格,游戲和其它的程序。但是一個(gè)應(yīng)用程序太老了,并不意味著它沒用了。

創(chuàng)新互聯(lián)公司是一家以成都網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、seo優(yōu)化、小程序App開發(fā)等移動(dòng)開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為格柵板等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。
如今有很多理由去運(yùn)行一個(gè)舊的 DOS 應(yīng)用程序?;蛟S是從一個(gè)遺留的業(yè)務(wù)應(yīng)用程序中提取一個(gè)報(bào)告,或者是想玩一個(gè)經(jīng)典的 DOS 游戲,或者只是因?yàn)槟銓?duì)“傳統(tǒng)計(jì)算機(jī)”很好奇。你不需要去雙引導(dǎo)你的系統(tǒng)去運(yùn)行 DOS 程序。取而代之的是,你可以在 Linux 中在一個(gè) PC 仿真程序和 FreeDOS 的幫助下去正確地運(yùn)行它們。
FreeDOS 是一個(gè)完整的、免費(fèi)的、DOS 兼容的操作系統(tǒng),你可以用它來玩經(jīng)典的游戲、運(yùn)行舊式業(yè)務(wù)軟件,或者開發(fā)嵌入式系統(tǒng)。任何工作在 MS-DOS 中的程序也可以運(yùn)行在 FreeDOS 中。
在那些“過去的時(shí)光”里,你安裝的 DOS 是作為一臺(tái)計(jì)算機(jī)上的獨(dú)占操作系統(tǒng)。 而現(xiàn)今,它可以很容易地安裝到 Linux 上運(yùn)行的一臺(tái)虛擬機(jī)中。 QEMU (快速仿真程序Quick EMUlator的縮寫) 是一個(gè)開源的虛擬機(jī)軟件,它可以在 Linux 中以一個(gè)“訪客guest”操作系統(tǒng)來運(yùn)行 DOS。許多流行的 Linux 系統(tǒng)都默認(rèn)包含了 QEMU 。
通過以下四步,很容易地在 Linux 下通過使用 QEMU 和 FreeDOS 去運(yùn)行一個(gè)老的 DOS 程序。
你需要一個(gè)地方來在 QEMU 中安裝 FreeDOS,為此你需要一個(gè)虛擬的 C: 驅(qū)動(dòng)器。在 DOS 中,字母A: 和 B: 是分配給第一和第二個(gè)軟盤驅(qū)動(dòng)器的,而 C: 是第一個(gè)硬盤驅(qū)動(dòng)器。其它介質(zhì),包括其它硬盤驅(qū)動(dòng)器和 CD-ROM 驅(qū)動(dòng)器,依次分配 D:、E: 等等。
在 QEMU 中,虛擬磁盤是一個(gè)鏡像文件。要初始化一個(gè)用做虛擬 C: 驅(qū)動(dòng)器的文件,使用 qemu-img 命令。要?jiǎng)?chuàng)建一個(gè)大約 200 MB 的鏡像文件,可以這樣輸入:
qemu-img create dos.img 200M
與現(xiàn)代計(jì)算機(jī)相比, 200MB 看起來非常小,但是早在 1990 年代, 200MB 是非常大的。它足夠安裝和運(yùn)行 DOS。
與 PC 仿真系統(tǒng) VMware 或 VirtualBox 不同,你需要通過 QEMU 命令去增加每個(gè)虛擬機(jī)的組件來 “構(gòu)建” 你的虛擬系統(tǒng) 。雖然,這可能看起來很費(fèi)力,但它實(shí)際并不困難。這些是我們?cè)?QEMU 中用于去引導(dǎo) FreeDOS 的參數(shù):
| qemu-system-i386 | QEMU 可以仿真幾種不同的系統(tǒng),但是要引導(dǎo)到 DOS,我們需要有一個(gè) Intel 兼容的 CPU。 為此,使用 i386 命令啟動(dòng) QEMU。 |
|---|---|
| -m 16 | 我喜歡定義一個(gè)使用 16MB 內(nèi)存的虛擬機(jī)。它看起來很小,但是 DOS 工作不需要很多的內(nèi)存。在 DOS 時(shí)代,計(jì)算機(jī)使用 16MB 或者 8MB 內(nèi)存是非常普遍的。 |
| -k en-us | 從技術(shù)上說,這個(gè) -k 選項(xiàng)是不需要的,因?yàn)?QEMU 會(huì)設(shè)置虛擬鍵盤去匹配你的真實(shí)鍵盤(在我的例子中, 它是標(biāo)準(zhǔn)的 US 布局的英語鍵盤)。但是我還是喜歡去指定它。 |
| -rtc base=localtime | 每個(gè)傳統(tǒng)的 PC 設(shè)備有一個(gè)實(shí)時(shí)時(shí)鐘 (RTC) 以便于系統(tǒng)可以保持跟蹤時(shí)間。我發(fā)現(xiàn)它是設(shè)置虛擬 RTC 匹配你的本地時(shí)間的最簡單的方法。 |
| -soundhw sb16,adlib,pcspk | 如果你需要聲音,尤其是為了玩游戲時(shí),我更喜歡定義 QEMU 支持 SoundBlaster 16 聲音硬件和 AdLib 音樂。SoundBlaster 16 和 AdLib 是在 DOS 時(shí)代非常常見的聲音硬件。一些老的程序也許使用 PC 喇叭發(fā)聲; QEMU 也可以仿真這個(gè)。 |
| -device cirrus-vga | 要使用圖像,我喜歡去仿真一個(gè)簡單的 VGA 視頻卡。Cirrus VGA 卡是那時(shí)比較常見的圖形卡, QEMU 可以仿真它。 |
| -display gtk | 對(duì)于虛擬顯示,我設(shè)置 QEMU 去使用 GTK toolkit,它可以將虛擬系統(tǒng)放到它自己的窗口內(nèi),并且提供一個(gè)簡單的菜單去控制虛擬機(jī)。 |
| -boot order= | 你可以告訴 QEMU 從多個(gè)引導(dǎo)源來引導(dǎo)虛擬機(jī)。從軟盤驅(qū)動(dòng)器引導(dǎo)(在 DOS 機(jī)器中一般情況下是A: )指定order=a。 從第一個(gè)硬盤驅(qū)動(dòng)器引導(dǎo)(一般稱為 C:) 使用 order=c。 或者去從一個(gè) CD-ROM 驅(qū)動(dòng)器(在 DOS 中經(jīng)常分配為 D: ) 使用 order=d。 你可以使用組合字母去指定一個(gè)特定的引導(dǎo)順序, 比如 order=dc 去第一個(gè)使用 CD-ROM 驅(qū)動(dòng)器,如果 CD-ROM 驅(qū)動(dòng)器中沒有引導(dǎo)介質(zhì),然后使用硬盤驅(qū)動(dòng)器。 |
顯示詳細(xì)信息
現(xiàn)在 QEMU 已經(jīng)設(shè)置好運(yùn)行虛擬機(jī),我們需要一個(gè) DOS 系統(tǒng)來在那臺(tái)虛擬機(jī)中安裝和引導(dǎo)。 FreeDOS 做這個(gè)很容易。它的最新版本是 FreeDOS 1.2, 發(fā)行于 2016 年 12 月。
從 FreeDOS 網(wǎng)站上下載 FreeDOS 1.2 的發(fā)行版。 FreeDOS 1.2 CD-ROM “standard” 安裝器 (FD12CD.iso) 可以很好地在 QEMU 上運(yùn)行,因此,我推薦使用這個(gè)版本。
安裝 FreeDOS 很簡單。首先,告訴 QEMU 使用 CD-ROM 鏡像并從其引導(dǎo)。 記住,第一個(gè)硬盤驅(qū)動(dòng)器是 C: 驅(qū)動(dòng)器,因此, CD-ROM 將以 D: 驅(qū)動(dòng)器出現(xiàn)。
qemu-system-i386 -m 16 -k en-us -rtc base=localtime -soundhw sb16,adlib -device cirrus-vga -display gtk -hda dos.img -cdrom FD12CD.iso -boot order=d
正如下面的提示,你將在幾分鐘內(nèi)安裝完成 FreeDOS 。
Starting FreeDOS installation
Select your keyboard layout
Selecting which packages to install
Rebooting after installation
在你安裝完成之后,關(guān)閉窗口退出 QEMU。
一旦安裝完 FreeDOS,你可以在 QEMU 中運(yùn)行各種 DOS 應(yīng)用程序。你可以在線上通過各種檔案文件或其它網(wǎng)站找到老的 DOS 程序。
QEMU 提供了一個(gè)在 Linux 上訪問本地文件的簡單方法。比如說,想去用 QEMU 共享 dosfiles/ 文件夾。 通過使用 -drive 選項(xiàng),簡單地告訴 QEMU 去使用這個(gè)文件夾作為虛擬的 FAT 驅(qū)動(dòng)器。 QEMU 將像一個(gè)硬盤驅(qū)動(dòng)器一樣訪問這個(gè)文件夾。
-drive file=fat:rw:dosfiles/
現(xiàn)在,你可以使用合適的選項(xiàng)去啟動(dòng) QEMU,加上一個(gè)外部的虛擬 FAT 驅(qū)動(dòng)器:
qemu-system-i386 -m 16 -k en-us -rtc base=localtime -soundhw sb16,adlib -device cirrus-vga -display gtk -hda dos.img -drive file=fat:rw:dosfiles/ -boot order=c
一旦你引導(dǎo)進(jìn)入 FreeDOS,你保存在 D: 驅(qū)動(dòng)器中的任何文件將被保存到 Linux 上的 dosfiles/ 文件夾中??梢詮?Linux 上很容易地直接去讀取該文件;然而,必須注意的是,啟動(dòng) QEMU 后,不能從 Linux 中去改變 dosfiles/ 這個(gè)文件夾。 當(dāng)你啟動(dòng) QEMU 時(shí),QEMU 一次性構(gòu)建一個(gè)虛擬的 FAT 表,如果你在啟動(dòng) QEMU 之后,在 dosfiles/ 文件夾中增加或刪除文件,仿真程序可能會(huì)很困惑。
我使用 QEMU 像這樣運(yùn)行一些我收藏的 DOS 程序, 比如 As-Easy-As 電子表格程序。這是一個(gè)在上世紀(jì)八九十年代非常流行的電子表格程序,它和現(xiàn)在的 Microsoft Excel 和 LibreOffice Calc 或和以前更昂貴的 Lotus 1-2-3 電子表格程序完成的工作是一樣的。 As-Easy-As 和 Lotus 1-2-3 都保存數(shù)據(jù)為 WKS 文件,最新版本的 Microsoft Excel 不能讀取它,但是,根據(jù)兼容性, LibreOffice Calc 可以支持它。
As-Easy-As 電子表格程序
我也喜歡在 QEMU中引導(dǎo) FreeDOS 去玩一些收藏的 DOS 游戲,比如原版的 Doom。這些老的 DOS 游戲玩起來仍然非常有趣, 并且它們現(xiàn)在在 QEMU 上運(yùn)行的非常好。
Doom
Heretic
Jill of the Jungle
Commander Keen
QEMU 和 FreeDOS 使得在 Linux 上運(yùn)行老的 DOS 程序變得很容易。你一旦設(shè)置好了 QEMU 作為虛擬機(jī)仿真程序并安裝了 FreeDOS,你將可以在 Linux 上運(yùn)行你收藏的經(jīng)典的 DOS 程序。

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流