04.17 在樹莓派上運行 DOS 系統

在樹莓派上運行 DOS 系統

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

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

FreeDOS[1] 對大家來說也許並不陌生。它是一個完整、免費並且對 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[2](Quick EMUlator)是一款能在 Linux 系統上運行 DOS 系統的開源的虛擬機軟件。很多流行的 Linux 系統都自帶 QEMU。QEMU 在我的樹莓派上的 Raspbian 系統中也同樣能夠運行,下文就有一些我在樹莓派 Raspbian GNU/Linux 9 (Stretch)[3] 系統中使用 QEMU 的截圖。

去年我在寫了一篇關於如何在 Linux 系統中運行 DOS 程序[4]的文章的時候就用到了 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

你可以在我其它的文章[5]中找到這些命令的完整介紹。簡單來說,上面這條命令指定了一個英特爾 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 免費提供激活碼[6]。

我也非常喜歡 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

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


分享到:


相關文章: