2021-05-12 14:32:11
使用 QEMU 在 Linux 中執行 DOS 程式
QEMU 和 FreeDOS 使得很容易在 Linux 中執行老的 DOS 程式
傳統的 DOS 作業系統支援的許多非常優秀的應用程式: 文書處理,電子試算表,遊戲和其它的程式。但是一個應用程式太老了,並不意味著它沒用了。
如今有很多理由去執行一個舊的 DOS 應用程式。或許是從一個遺留的業務應用程式中提取一個報告,或者是想玩一個經典的 DOS 遊戲,或者只是因為你對“傳統計算機”很好奇。你不需要去雙引導你的系統去執行 DOS 程式。取而代之的是,你可以在 Linux 中在一個 PC 模擬程式和 FreeDOS 的幫助下去正確地執行它們。
FreeDOS 是一個完整的、免費的、DOS 相容的作業系統,你可以用它來玩經典的遊戲、執行舊式業務軟體,或者開發嵌入式系統。任何工作在 MS-DOS 中的程式也可以執行在 FreeDOS 中。
在那些“過去的時光”裡,你安裝的 DOS 是作為一台計算機上的獨佔作業系統。 而現今,它可以很容易地安裝到 Linux 上執行的一台虛擬機器中。 QEMU (快速模擬程式Quick EMUlator的縮寫) 是一個開源的虛擬機器軟體,它可以在 Linux 中以一個“訪客guest”作業系統來執行 DOS。許多流行的 Linux 系統都預設包含了 QEMU 。
通過以下四步,很容易地在 Linux 下通過使用 QEMU 和 FreeDOS 去執行一個老的 DOS 程式。
第 1 步:設定一個虛擬磁碟
你需要一個地方來在 QEMU 中安裝 FreeDOS,為此你需要一個虛擬的 C: 驅動器。在 DOS 中,字母A:
和 B:
是分配給第一和第二個軟碟機的,而 C:
是第一個硬碟機。其它媒介,包括其它硬碟機和 CD-ROM 驅動器,依次分配 D:
、E:
等等。
在 QEMU 中,虛擬磁碟是一個映象檔案。要初始化一個用做虛擬 C:
驅動器的檔案,使用 qemu-img
命令。要建立一個大約 200 MB 的映象檔案,可以這樣輸入:
qemu-img create dos.img 200M
與現代計算機相比, 200MB 看起來非常小,但是早在 1990 年代, 200MB 是非常大的。它足夠安裝和執行 DOS。
第 2 步: QEMU 選項
與 PC 模擬系統 VMware 或 VirtualBox 不同,你需要通過 QEMU 命令去增加每個虛擬機器的元件來 “構建” 你的虛擬系統 。雖然,這可能看起來很費力,但它實際並不困難。這些是我們在 QEMU 中用於去引導 FreeDOS 的引數:
< 如顯示不全,請左右滑動 >
qemu-system-i386 |
QEMU 可以模擬幾種不同的系統,但是要引導到 DOS,我們需要有一個 Intel 相容的 CPU。 為此,使用 i386 命令啟動 QEMU。 |
-m 16 |
我喜歡定義一個使用 16MB 記憶體的虛擬機器。它看起來很小,但是 DOS 工作不需要很多的記憶體。在 DOS 時代,計算機使用 16MB 或者 8MB 記憶體是非常普遍的。 |
-k en-us |
從技術上說,這個 -k 選項是不需要的,因為 QEMU 會設定虛擬鍵盤去匹配你的真實鍵盤(在我的例子中, 它是標準的 US 布局的英語鍵盤)。但是我還是喜歡去指定它。 |
-rtc base=localtime |
每個傳統的 PC 裝置有一個實時時鐘 (RTC) 以便於系統可以保持跟蹤時間。我發現它是設定虛擬 RTC 匹配你的本地時間的最簡單的方法。 |
-soundhw sb16,adlib,pcspk |
如果你需要聲音,尤其是為了玩遊戲時,我更喜歡定義 QEMU 支援 SoundBlaster 16 聲音硬體和 AdLib 音樂。SoundBlaster 16 和 AdLib 是在 DOS 時代非常常見的聲音硬體。一些老的程式也許使用 PC 喇叭發聲; QEMU 也可以模擬這個。 |
-device cirrus-vga |
要使用影象,我喜歡去模擬一個簡單的 VGA 視訊卡。Cirrus VGA 卡是那時比較常見的圖形卡, QEMU 可以模擬它。 |
-display gtk |
對於虛擬顯示,我設定 QEMU 去使用 GTK toolkit,它可以將虛擬系統放到它自己的視窗內,並且提供一個簡單的選單去控制虛擬機器。 |
-boot order= |
你可以告訴 QEMU 從多個引導源來引導虛擬機器。從軟碟機引導(在 DOS 機器中一般情況下是 A: )指定 order=a 。 從第一個硬碟機引導(一般稱為 C: ) 使用 order=c 。 或者去從一個 CD-ROM 驅動器(在 DOS 中經常分配為 D: ) 使用 order=d 。 你可以使用組合字母去指定一個特定的引導順序, 比如 order=dc 去第一個使用 CD-ROM 驅動器,如果 CD-ROM 驅動器中沒有引導媒介,然後使用硬碟機。 |
第 3 步: 引導和安裝 FreeDOS
現在 QEMU 已經設定好執行虛擬機器,我們需要一個 DOS 系統來在那台虛擬機器中安裝和引導。 FreeDOS 做這個很容易。它的最新版本是 FreeDOS 1.2, 發行於 2016 年 12 月。
從 FreeDOS 網站上下載 FreeDOS 1.2 的發行版。 FreeDOS 1.2 CD-ROM “standard” 安裝器 (FD12CD.iso
) 可以很好地在 QEMU 上執行,因此,我推薦使用這個版本。
安裝 FreeDOS 很簡單。首先,告訴 QEMU 使用 CD-ROM 映象並從其引導。 記住,第一個硬碟機是 C:
驅動器,因此, CD-ROM 將以 D:
驅動器出現。
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
正如下面的提示,你將在幾分鐘內安裝完成 FreeDOS 。
Starting FreeDOS installation
Select your keyboard layout
Selecting which packages to install
Rebooting after installation
在你安裝完成之後,關閉視窗退出 QEMU。
第 4 步:安裝並執行你的 DOS 應用程式
一旦安裝完 FreeDOS,你可以在 QEMU 中執行各種 DOS 應用程式。你可以線上上通過各種檔案檔案或其它網站找到老的 DOS 程式。
QEMU 提供了一個在 Linux 上存取本地檔案的簡單方法。比如說,想去用 QEMU 共用 dosfiles/
資料夾。 通過使用 -drive
選項,簡單地告訴 QEMU 去使用這個資料夾作為虛擬的 FAT 驅動器。 QEMU 將像一個硬碟機一樣存取這個資料夾。
-drive file=fat:rw:dosfiles/
現在,你可以使用合適的選項去啟動 QEMU,加上一個外部的虛擬 FAT 驅動器:
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
一旦你引導進入 FreeDOS,你儲存在 D:
驅動器中的任何檔案將被儲存到 Linux 上的 dosfiles/
資料夾中。可以從 Linux 上很容易地直接去讀取該檔案;然而,必須注意的是,啟動 QEMU 後,不能從 Linux 中去改變 dosfiles/
這個資料夾。 當你啟動 QEMU 時,QEMU 一次性構建一個虛擬的 FAT 表,如果你在啟動 QEMU 之後,在 dosfiles/
資料夾中增加或刪除檔案,模擬程式可能會很困惑。
我使用 QEMU 像這樣執行一些我收藏的 DOS 程式, 比如 As-Easy-As 電子試算表程式。這是一個在上世紀八九十年代非常流行的電子試算表程式,它和現在的 Microsoft Excel 和 LibreOffice Calc 或和以前更昂貴的 Lotus 1-2-3 電子試算表程式完成的工作是一樣的。 As-Easy-As 和 Lotus 1-2-3 都儲存資料為 WKS 檔案,最新版本的 Microsoft Excel 不能讀取它,但是,根據相容性, LibreOffice Calc 可以支援它。
As-Easy-As 電子試算表程式
我也喜歡在 QEMU中引導 FreeDOS 去玩一些收藏的 DOS 遊戲,比如原版的 Doom。這些老的 DOS 遊戲玩起來仍然非常有趣, 並且它們現在在 QEMU 上執行的非常好。
Doom
Heretic
Jill of the Jungle
Commander Keen
QEMU 和 FreeDOS 使得在 Linux 上執行老的 DOS 程式變得很容易。你一旦設定好了 QEMU 作為虛擬機器模擬程式並安裝了 FreeDOS,你將可以在 Linux 上執行你收藏的經典的 DOS 程式。
所有圖片要致謝 FreeDOS.org。
作者簡介:
Jim Hall 是一位開源軟體的開發者和支援者,可能最廣為人知的是他是 FreeDOS 的創始人和專案協調者。 Jim 也非常活躍於開源軟體適用性領域,作為 GNOME Outreachy 適用性測試的導師,同時也作為一名兼職教授,教授一些開源軟體適用性的課程,從 2016 到 2017, Jim 在 GNOME 基金會的董事會擔任董事,在工作中, Jim 是本地政府部門的 CIO。
via: https://opensource.com/article/17/10/run-dos-applications-linux
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-11/148182.htm
相關文章