在高端电脑上运行低端程序:在配备 QEMU 的 MacBook M1(Apple Silicon)上运行 FreeDOS 在高端电脑上运行低端程序:在配备 QEMU 的 MacBook M1(Apple Silicon)上运行 FreeDOS

在高端电脑上运行低端程序:在配备 QEMU 的 MacBook M1(Apple Silicon)上运行 FreeDOS

基于苹果芯片的FreeDOS我对MS-DOS时代有着美好的回忆。当然,我不是说我想回到那个时代,但对我来说,这就像在地下室壁橱里找到以前的NES游戏机,或者看《电视乐园》一样:一次有趣的怀旧之旅。

在系统内存以千字节 (KB) 为单位的年代,MS-DOS 是业界的王者。虽然微软也曾推出过一款早已被人遗忘,但在当时却非常成功的 UNIX 克隆系统——Xenix。尽管 MS-DOS 的安装介质并不难找(事实上,你仍然可以通过 MSDN 订阅下载),但 FreeDOS 才是现代的替代品。它不仅拥有 MS-DOS 的所有功能,还提供了丰富的便捷功能以及大量的应用程序、游戏和实用工具。

你可以在老式硬件上运行 FreeDOS,也可以在现代硬件上运行,因为 x86-64 架构对实模式有传统的支持,不过驱动程序会比较麻烦。而且,谁会想专门用一台现代的 i9(甚至 i3)处理器来做 16 位计算呢?

显然,更好的解决方案是在虚拟机中运行。实际上,一台普通的家用电脑就能运行十几个,甚至上百个 FreeDOS 虚拟机。常用的解决方案包括 Virtualbox、VMware 的免费 Player 或 qemu/UTM。此外还有 bochs,它更偏向于研究平台。

但是,如果你的主力系统是 macOS 并且你使用的是 Apple Silicon 芯片,那么你的选择就非常有限了。Virtualbox 和 VMware Player 都不支持在 Apple Silicon 上运行 x86 模拟。你可以在 Windows 系统上安装 Virtualbox 或 VMware,然后远程桌面连接到它,但我发现如果你从 macOS 远程桌面连接,这两种方法都会出现很多显示问题。我家里没有物理 Linux 服务器(所有程序都是虚拟机),也许使用物理 Linux 服务器会是更好的选择。

但是,有一种方法可以在 Apple Silicon 上原生运行:QEMU。

我花了不少功夫才找到合适的方案并建立起网络连接,所以在这里分享一下我的经验。我不会一步一步地讲解安装过程,因为一旦安装运行起来,它就和其他 FreeDOS 系统一样了,不过还是有一些技巧和窍门可以分享。

UTM 是 QEMU 的图形化前端,如果您对命令行过敏,可以尝试使用它,但我不会介绍它。

安装 FreeDOS

第一步:下载 FreeDOS。访问FreeDOS 官网。你需要 Live CD。你也可以顺便下载附赠的光盘。创建一个目录,并将这两个 .ISO 文件放入其中。

第二步:安装 qemu。我假设你已经安装了 Homebrew,因为,嗯,既然你读了我们的网站,我们就是这么想的。如果没有,请点击这里复制安装命令。然后打开终端并粘贴该命令。

Homebrew 安装完成后:

 brew install qemu

第三步:创建硬盘。更准确地说,是创建一个 QEMU 镜像文件,它将充当硬盘。您可以将其设置为 2GB,因为这是 DOS 系统能够识别的最大容量。您可以将此镜像文件放在与 .ISO 文件相同的目录中。

 $ qemu-img create c.img 2G
正在格式化“c.img”,格式为原始格式,大小为2147483648

这里的 C 指的是 C 盘,但你可以随意命名。

第四步:创建 QEMU 脚本。

QEMU有很多不同的配置选项。经过多次试验,以下是我最终使用的配置:

 qemu-system-i386 -cpu 486 -boot order=dc -m 16M \
-k en-us -name FreeDOS1 \
-cdrom FD13LIVE.iso \
-drive file=c.img,format=raw,media=disk \
-rtc base=localtime \
-nic 用户,型号=pcnet,mac=10:20:30:40:50:60

让我们来详细分析一下:

qemu-system-i386:我们运行的是 i386 系统,这很符合当时的时代背景。顺便一提,如果您有兴趣,可以在 QEMU 模拟器下运行各种系统:HP PA-RISC、S390、DEC Alpha 等等。

-cpu 486:如果你愿意,你可以在这里运行 286、386 等处理器。

-boot order=dc:这意味着“先尝试从 CD-ROM 启动,然后再从硬盘启动”。安装 FreeDOS 后,您需要更改这些设置,或者更改 CD-ROM 中加载的内容(例如,更改为 Bonus CD)。

-m 16M:使用 16MB 内存。您可以根据需要修改此设置,但请记住,DOS 的内存管理比 Linux、Windows 或 Mac 更复杂。除非您的应用程序运行了 DOS 内存扩展程序,否则您可能只能使用 1MB 内存,甚至无法使用全部 1MB。

-k en-us :英语键盘

-name FreeDOS1:您可以随意选择一个名称。

-cdrom FD13LIVE.iso:这将显示在 D 盘。您需要使用此 Live CD 启动以安装 FreeDOS。

-drive file=c.img,format=raw,media=disk:这是我们刚刚创建的硬盘驱动器。

-rtc base=localtime:将系统时钟设置为主机的本地时间。

-nic user,model=pcnet,mac=10:20:30:40:50:60:使用 pcnet 创建网络接口卡,并将 MAC 地址设置为 10:20:30:40:50:60。

把这段代码放到一个名为 qemu_freedos.sh 的文件中。然后:

 $ chmod 755 qemu_freedos.sh
$ ./qemu_freedos.sh

QEMU 将会启动,并弹出一个窗口显示 LiveCD 的启动过程。选择“安装到系统硬盘”,即可开始运行。

全屏模式

为了获得最佳的 DOS 体验,我建议使用全屏模式。按下 Command-F,即可进入一个角色扮演的世界。您仍然可以使用 Control-方向键切换到不同的虚拟桌面。

退出全屏模式,您需要中断输入捕获。请按以下方式操作:

  • Control-Option-G
  • 然后按 Command-F 退出全屏模式

联网

这有点令人困惑,我还没完全弄明白。启动 FreeDOS 时,你会看到以下信息:

检测到QEMU网络。

目前不支持物理硬件联网。

如果按照 FDAUTO.BAT 和 FDNET.BAT 中的程序逻辑进行分析,似乎启动程序总是会得出这个结论并退出,同时显示此错误消息。

然而,人脉关系确实有效。试试这个:

 C:\NET\FDNET\pcntpk int=0x60
DHCP

这将设置网络并分配 IP 地址。之后(安装相应的软件包后),您可以使用 wget、ftp、ssh 等工具。

后续步骤

此时您可能需要安装一些其他软件。请查看以下资源:

  • FDIMPLES – FreeDOS 软件包管理器
  • WinWorld——一个汇集了大量经典软件的宝库,包括 Lotus 1-2-3、WordPerfect、dBase 等等。

总有一天,你需要回到21世纪。你可以直接关闭窗口,但要正确关闭,请发出 SHUTDOWN 命令(无需大写),然后等待虚拟机自行关闭。