在樹莓派上執行 DOS 系統

Jim Hall發表於2018-04-14

不同的 CPU 架構意味著在樹莓派上執行 DOS 並非唾手可得,但其實也沒多麻煩。

FreeDOS 對大家來說也許並不陌生。它是一個完整、免費並且對 DOS 相容良好的作業系統,它可以執行一些比較老舊的 DOS 遊戲或者商用軟體,也可以開發嵌入式的應用。只要在 MS-DOS 上能夠執行的程式,在 FreeDOS 上都可以執行。

作為 FreeDOS 的發起者和專案協調人員,很多使用者會把我作為內行人士進行發問。而我最常被問到的問題是:“FreeDOS 可以在樹莓派上執行嗎?”

這個問題並不令人意外。畢竟 Linux 在樹莓派上能夠很好地執行,而 FreeDOS 和 Linux 相比是一個更古老、佔用資源更少的作業系統,那 FreeDOS 為啥不能樹莓派上執行呢?

簡單來說。由於 CPU 架構的原因,FreeDOS 並不能在樹莓派中獨立執行。和其它 DOS 類的系統一樣,FreeDOS 需要英特爾 x86 架構 CPU 以及 BIOS 來提供基礎的執行時服務。而樹莓派執行在 ARM 架構的 CPU 上,與英特爾 CPU 二進位制不相容,也沒有 BIOS。因此樹莓派在硬體層面就不支援 FreeDOS。

不過透過 PC 模擬器還是能在樹莓派上執行 FreeDOS 的,雖然這樣也許稍有不足,但也不失為一個能在樹莓派上執行 FreeDOS 的方法。

DOSBox 怎麼樣?

有人可能會問:“為什麼不用 DOSBox 呢?” DOSBox 是一個開源的跨平臺 x86 模擬器,在 Linux 上也能使用,它能夠為應用軟體尤其是遊戲軟體提供了一個類 DOS 的執行環境,所以如果你只是想玩 DOS 遊戲的話,DOSBox 是一個不錯的選擇。但在大眾眼中,DOSBox 是專為 DOS 遊戲而設的,而在執行一些別的 DOS 應用軟體方面,DOSBox 只是表現平平。

對多數人來說,這只是個人偏好的問題,我喜歡用 FreeDOS 來執行 DOS 遊戲和其它程式,完整的 DOS 系統和 DOSBox 相比能讓我體驗到更好的靈活性和操控性。我只用 DOSBox 來玩遊戲,在其它方面還是選擇完整的 FreeDOS。

在樹莓派上安裝 FreeDOS

QEMU(Quick EMUlator)是一款能在 Linux 系統上執行 DOS 系統的開源的虛擬機器軟體。很多流行的 Linux 系統都自帶 QEMU。QEMU 在我的樹莓派上的 Raspbian 系統中也同樣能夠執行,下文就有一些我在樹莓派 Raspbian GNU/Linux 9 (Stretch) 系統中使用 QEMU 的截圖。

去年我在寫了一篇關於如何在 Linux 系統中執行 DOS 程式的文章的時候就用到了 QEMU,在樹莓派上使用 QEMU 來安裝執行 FreeDOS 的步驟基本上和在別的基於 GNOME 的系統上沒有什麼太大的區別。

在 QEMU 中你需要透過新增各種元件來搭建虛擬機器。先指定一個用來安裝執行 DOS 的虛擬磁碟映象,透過 qemu-img 命令來建立一個虛擬磁碟映象,對於 FreeDOS 來說不需要太大的空間,所以我只建立了一個 200MB 的虛擬磁碟:

qemu-img create freedos.img 200M

和 VMware 或者 VirtualBox 這些 PC 模擬器不同,使用 QEMU 需要透過新增各種元件來搭建虛擬機器,儘管有點麻煩,但是並不困難。我使用了以下這些引數來在樹莓派上使用 QEMU 安裝 FreeDOS 系統:

qemu-system-i386 -m 16 -k en-us -rtc base=localtime -soundhw sb16,adlib -device cirrus-vga -hda freedos.img -cdrom FD12CD.iso -boot order=d

你可以在我其它的文章中找到這些命令的完整介紹。簡單來說,上面這條命令指定了一個英特爾 i386 相容虛擬機器,並且分配了 16MB 記憶體、一個英文輸入鍵盤、一個基於系統時間的實時時鐘、一個音效卡、一個音樂卡以及一個 VGA 卡。檔案 freedos.img 指定為第一個硬碟(C:),FD12CD.iso 映象作為 CD-ROM (D:)驅動。QEMU 設定為從 D: 的 CD-ROM 啟動。

你只需要按照提示就可以輕鬆安裝好 FreeDOS 1.2 了。但是由於 microSD 卡在面對大量的 I/O 時速度比較慢,所以安裝作業系統需要花費很長時間。

在樹莓派上執行 FreeDOS

你的執行情況取決於使用哪一種 microSD 卡。我用的是 SanDisk Ultra 64GB microSDXC UHS-I U1A1 ,其中 U1 這種型號專用於支援 1080p 的影片錄製(例如 GoPro),它的最低序列寫速度能夠達到 10MB/s。相比之下,V60 型號專用於 4K 影片錄製,最低連續寫入速度能達到 60MB/s。如果你的樹莓派使用的是 V60 的 microSD 卡甚至是 V30(也能達到 30MB/s),你就能明顯看到它的 I/O 效能會比我的好。

FreeDOS 安裝好之後,你可以直接從 C: 進行啟動。只需要按照下面的命令用 -boot order=c 來指定 QEMU 的啟動順序即可:

​qemu-system-i386 -m 16 -k en-us -rtc base=localtime -soundhw sb16,adlib -device cirrus-vga -hda freedos.img -cdrom FD12CD.iso -boot order=c​

只要樹莓派的 QEMU 上安裝了 FreeDOS,就不會出現明顯的效能問題。例如遊戲通常在每一關開始的時候會載入地圖、怪物、聲音等一系列的資料,儘管這些內容需要載入一段時間,但在正常玩的時候並沒有出現效能不足的現象。

FreeDOS 1.2 自帶了很多遊戲以及其它應用軟體,可以使用 FDIMPLES 包管理程式來安裝它們。FreeDOS 1.2 裡面我最喜歡的是一款叫 WING 的太空射擊遊戲,讓人想起經典的街機遊戲 Galaga(WING 就是 Wing Is Not Galaga 的遞迴縮寫詞)。

As-Easy-As 是我最喜歡的一個 DOS 應用程式,作為 20 世紀八九十年代流行的電子表格程式,它和當時的 Lotus 1-2-3 以及現在的 Microsoft Excel、LibreOffice Calc 一樣具有強大的威力。As-Easy-As 和 Lotus 1-2-3 都將資料儲存為 WKS 檔案,現在新版本的 Microsoft Excel 已經無法讀取這種檔案了,而 LibreOffice Calc 視相容性而定有可能支援。鑑於 As-Easy-As 的初始版本是一個共享軟體,TRIUS 仍然為 As-Easy-As 5.7 免費提供啟用碼

我也非常喜歡 GNU Emacs 編輯器,FreeDOS 也自帶了一個叫 Freemacs 的類 Emacs 的文字編輯器。它比 FreeDOS 預設的 FreeDOS Edit 編輯器更強大,也能帶來 GNU Emacs 的體驗。如果你也需要,可以在 FreeDOS 1.2 中透過FDIMPLES包管理程式來安裝。

是的,你或許真的可以在樹莓派上執行 DOS

即使樹莓派在硬體上不支援 DOS,但是在模擬器的幫助下,DOS 還是能夠在樹莓派上執行。得益於 QEMU PC 模擬器,一些經典的 DOS 遊戲和 DOS 應用程式能夠執行在樹莓派上。在執行磁碟 I/O ,尤其是大量密集操作(例如寫入大量資料)的時候,效能可能會受到輕微的影響。當你使用 QEMU 並且在虛擬機器裡安裝好 FreeDOS 之後,你就可以盡情享受經典的 DOS 程式了。


via: https://opensource.com/article/18/3/can-you-run-dos-raspberry-pi

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

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

相關文章