Linux中國

怎麼在 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 下通過使用 QEMUFreeDOS 去運行一個老的 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](/data/attachment/album/201710/31/214640lx55gm1f11xjbb5j.png "Starting FreeDOS installation")

![Select your keyboard layout](/data/attachment/album/201710/31/214640vhaawkwgwjnjazh2.png "Select your keyboard layout")

![Selecting which packages to install](/data/attachment/album/201710/31/214641g7hw0zobrijh1o6p.png "Selecting which packages to install")

![Rebooting after installation](/data/attachment/album/201710/31/214641agkiu1ic4d7d133k.png "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 spreadsheet program](/data/attachment/album/201710/31/214642h4cgh0e8klxu0lda.png "As-Easy-As spreadsheet program")

As-Easy-As 電子表格程序

我也喜歡在 QEMU中引導 FreeDOS 去玩一些收藏的 DOS 遊戲,比如原版的 Doom。這些老的 DOS 遊戲玩起來仍然非常有趣, 並且它們現在在 QEMU 上運行的非常好。

![Doom](/data/attachment/album/201710/31/214643zunqji9tx9hyblul.png "Doom")

Doom

![Heretic](/data/attachment/album/201710/31/214644vyzlp3767uub5c6u.png "Heretic")

Heretic

![Jill of the Jungle](/data/attachment/album/201710/31/214644ozgp1yyue8u460on.png "Jill of the Jungle")

Jill of the Jungle

![Commander Keen](/data/attachment/album/201710/31/214644tnny43c8zn6o04qo.png "Commander Keen")

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

作者:Jim Hall 譯者:qhwdw 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國