傳統(tǒng)的 DOS 操作系統(tǒng)支持的許多非常優(yōu)秀的應(yīng)用程序: 文字處理,電子表格,游戲和其它的程序。但是一個(gè)應(yīng)用程序太老了,并不意味著它沒(méi)用了。
如今有很多理由去運(yùn)行一個(gè)舊的 DOS 應(yīng)用程序。或許是從一個(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),你可以用它來(lái)玩經(jīng)典的游戲、運(yùn)行舊式業(yè)務(wù)軟件,或者開(kāi)發(fā)嵌入式系統(tǒng)。任何工作在 MS-DOS 中的程序也可以運(yùn)行在 FreeDOS 中。
在那些“過(guò)去的時(shí)光”里,你安裝的 DOS 是作為一臺(tái)計(jì)算機(jī)上的獨(dú)占操作系統(tǒng)。 而現(xiàn)今,它可以很容易地安裝到 Linux 上運(yùn)行的一臺(tái)虛擬機(jī)中。 QEMU (快速仿真程序Quick EMUlator的縮寫(xiě)) 是一個(gè)開(kāi)源的虛擬機(jī)軟件,它可以在 Linux 中以一個(gè)“訪客guest”操作系統(tǒng)來(lái)運(yùn)行 DOS。許多流行的 Linux 系統(tǒng)都默認(rèn)包含了 QEMU 。
通過(guò)以下四步,很容易地在 Linux 下通過(guò)使用 QEMU 和 FreeDOS 去運(yùn)行一個(gè)老的 DOS 程序。
第 1 步:設(shè)置一個(gè)虛擬磁盤(pán)
你需要一個(gè)地方來(lái)在 QEMU 中安裝 FreeDOS,為此你需要一個(gè)虛擬的 C: 驅(qū)動(dòng)器。在 DOS 中,字母A: 和 B: 是分配給第一和第二個(gè)軟盤(pán)驅(qū)動(dòng)器的,而 C: 是第一個(gè)硬盤(pán)驅(qū)動(dòng)器。其它介質(zhì),包括其它硬盤(pán)驅(qū)動(dòng)器和 CD-ROM 驅(qū)動(dòng)器,依次分配 D:、E: 等等。
在 QEMU 中,虛擬磁盤(pán)是一個(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 看起來(lái)非常小,但是早在 1990 年代, 200MB 是非常大的。它足夠安裝和運(yùn)行 DOS。
第 2 步: QEMU 選項(xiàng)
與 PC 仿真系統(tǒng) VMware 或 VirtualBox 不同,你需要通過(guò) QEMU 命令去增加每個(gè)虛擬機(jī)的組件來(lái) “構(gòu)建” 你的虛擬系統(tǒng) 。雖然,這可能看起來(lái)很費(fèi)力,但它實(shí)際并不困難。這些是我們?cè)?QEMU 中用于去引導(dǎo) FreeDOS 的參數(shù):
qemu-system-i386QEMU 可以仿真幾種不同的系統(tǒng),但是要引導(dǎo)到 DOS,我們需要有一個(gè) Intel 兼容的 CPU。 為此,使用 i386 命令啟動(dòng) QEMU。-m 16我喜歡定義一個(gè)使用 16MB 內(nèi)存的虛擬機(jī)。它看起來(lái)很小,但是 DOS 工作不需要很多的內(nèi)存。在 DOS 時(shí)代,計(jì)算機(jī)使用 16MB 或者 8MB 內(nèi)存是非常普遍的。-k en-us從技術(shù)上說(shuō),這個(gè)?-k?選項(xiàng)是不需要的,因?yàn)?QEMU 會(huì)設(shè)置虛擬鍵盤(pán)去匹配你的真實(shí)鍵盤(pán)(在我的例子中, 它是標(biāo)準(zhǔn)的 US 布局的英語(yǔ)鍵盤(pán))。但是我還是喜歡去指定它。-rtc base=localtime每個(gè)傳統(tǒng)的 PC 設(shè)備有一個(gè)實(shí)時(shí)時(shí)鐘 (RTC) 以便于系統(tǒng)可以保持跟蹤時(shí)間。我發(fā)現(xiàn)它是設(shè)置虛擬 RTC 匹配你的本地時(shí)間的最簡(jiǎn)單的方法。-soundhw sb16,adlib,pcspk如果你需要聲音,尤其是為了玩游戲時(shí),我更喜歡定義 QEMU 支持 SoundBlaster 16 聲音硬件和 AdLib 音樂(lè)。SoundBlaster 16 和 AdLib 是在 DOS 時(shí)代非常常見(jiàn)的聲音硬件。一些老的程序也許使用 PC 喇叭發(fā)聲; QEMU 也可以仿真這個(gè)。-device cirrus-vga要使用圖像,我喜歡去仿真一個(gè)簡(jiǎn)單的 VGA 視頻卡。Cirrus VGA 卡是那時(shí)比較常見(jiàn)的圖形卡, QEMU 可以仿真它。-display gtk對(duì)于虛擬顯示,我設(shè)置 QEMU 去使用 GTK toolkit,它可以將虛擬系統(tǒng)放到它自己的窗口內(nèi),并且提供一個(gè)簡(jiǎn)單的菜單去控制虛擬機(jī)。-boot order=你可以告訴 QEMU 從多個(gè)引導(dǎo)源來(lái)引導(dǎo)虛擬機(jī)。從軟盤(pán)驅(qū)動(dòng)器引導(dǎo)(在 DOS 機(jī)器中一般情況下是A:?)指定order=a。 從第一個(gè)硬盤(pán)驅(qū)動(dòng)器引導(dǎo)(一般稱(chēng)為?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)器中沒(méi)有引導(dǎo)介質(zhì),然后使用硬盤(pán)驅(qū)動(dòng)器。
第 3 步: 引導(dǎo)和安裝 FreeDOS
現(xiàn)在 QEMU 已經(jīng)設(shè)置好運(yùn)行虛擬機(jī),我們需要一個(gè) DOS 系統(tǒng)來(lái)在那臺(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 很簡(jiǎn)單。首先,告訴 QEMU 使用 CD-ROM 鏡像并從其引導(dǎo)。 記住,第一個(gè)硬盤(pán)驅(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。
第 4 步:安裝并運(yùn)行你的 DOS 應(yīng)用程序
一旦安裝完 FreeDOS,你可以在 QEMU 中運(yùn)行各種 DOS 應(yīng)用程序。你可以在線(xiàn)上通過(guò)各種檔案文件或其它網(wǎng)站找到老的 DOS 程序。
QEMU 提供了一個(gè)在 Linux 上訪問(wèn)本地文件的簡(jiǎn)單方法。比如說(shuō),想去用 QEMU 共享 dosfiles/ 文件夾。 通過(guò)使用 -drive 選項(xiàng),簡(jiǎn)單地告訴 QEMU 去使用這個(gè)文件夾作為虛擬的 FAT 驅(qū)動(dòng)器。 QEMU 將像一個(gè)硬盤(pán)驅(qū)動(dòng)器一樣訪問(wèn)這個(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 游戲玩起來(lái)仍然非常有趣, 并且它們現(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 程序。
所有圖片要致謝 FreeDOS.org。
作者簡(jiǎn)介:
Jim Hall 是一位開(kāi)源軟件的開(kāi)發(fā)者和支持者,可能最廣為人知的是他是 FreeDOS 的創(chuàng)始人和項(xiàng)目協(xié)調(diào)者。 Jim 也非常活躍于開(kāi)源軟件適用性領(lǐng)域,作為 GNOME Outreachy 適用性測(cè)試的導(dǎo)師,同時(shí)也作為一名兼職教授,教授一些開(kāi)源軟件適用性的課程,從 2016 到 2017, Jim 在 GNOME 基金會(huì)的董事會(huì)擔(dān)任董事,在工作中, Jim 是本地政府部門(mén)的 CIO。
?
評(píng)論
查看更多