您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Linux中如何運行DOS程序”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“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 程序。
你需要一個地方來在 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。
與 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 驅動器中沒有引導介質,然后使用硬盤驅動器。 |
顯示詳細信息
現在 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。
一旦安裝完 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 程序。
以上是“Linux中如何運行DOS程序”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。