虚拟机体验Mac OS X Public Beta:在Qemu上运行早期版本的Mac OS

请注意:本文章发表于 2018年4月21日 ,已经超过一年,其内容可能已经过期。对于发表时间较久的文章,本站不能在准确性和质量方面做出保证。虽然仍然欢迎提出改进建议,但一般不再维护,敬请谅解。

1998年到2000年末,走在Mac OS X路线上的Apple先后推出Mac OS X Developer Beta第一版到第四版,直到经典的Mac OS X Public Beta。这些版本的Mac OS无疑令人向往。Mac OS X Public Beta推出于2000年,是Mac OS X路线中的关键一环,也是较早期的采用改进Aqua界面的Mac OS X,也是今天我们要体验的对象。

早期版本的Mac OS充满魅力,但它们与早期版本的Windows不同。它们需要特殊的硬件,例如一台物理上的早期Mac电脑,且能够正常工作;甚至某些Mac OS版本还有苛刻的运行条件,你的Mac电脑还必须能够支持你想要运行的那一版Mac OS。于是今天,我这里采取了另外一个思路,成功运行并体验了Mac OS X Public Beta,下面是一些心得。


本文全文基于macOS High Sierra,Windows思路与本文基本相同。

映像准备

你需要Mac OS X Public Beta的映像文件,本文演示用的版本是1H39;除此之外,你还需要一个Mac OS 9的安装映像,或Mac OS X 10.3及更高版本的安装映像,或Darwin系统的映像,以用于初始化磁盘,本文使用Mac OS 9 SC。这些早期版本的Abandonware在WinWorldPC上有所提供,这里不提供文件,仅提供链接。除了WinWorld之外,其他版本的映像也广泛存在。

你所获得的映像可能是DMG格式的,这里提供这个简单的命令供你参考。

hdiutil convert imagefile.dmg -format UDTO -o imagefile.iso

配置Qemu

我个人认为,Qemu是目前Mac平台上最佳的PowerPC硬件虚拟解决方案。当然,我们都听说过SheepShaver和PearPC,但它们都具有一些局限性——SheepShaver的速度缓慢,且支持的操作系统版本十分有限,由于硬件限制,止步于Mac OS 9.0.4。而PearPC对Windows支持良好,在别的平台上运行时则需要自行编译和调试,且支持的版本同样有限,仅支持Mac OS X 10.1以及以上版本。而Qemu则是一款绝佳的,支持从Mac OS 9.0到Mac OS X 10.5的方案,且容易配置,简便易行,速度同样令人满意。

首先,我们需要下载Qemu。这里不提供下载,但提供指向Emaculation.com论坛的链接。如果你在下文遇到了错误,且参数正确无误(下文介绍),请尝试更换Build。解压Qemu程序包到一个固定的文件夹内,并将你的两个映像(Public Beta与任意一个可以用来初始化磁盘的映像,上文介绍)拖入同一个文件夹内,并给它们都取一个简单的名字。本文假定你重命名为了cdinstall与cddisk。

然后,打开「终端」,将包内的qemu-img拖入,来创建磁盘文件。将(size)替换为一个合适的大小,(path+name)替换为一个本文件夹的路径和一个简单的名字。本文假定你在本目录下创建了3GB大小的磁盘,且命名为hd。

./qemu-img create -f raw -o size=(size)G (path+name).img 
创建的文件如图所示。

再接下来,右键编辑qemu.command文件。它应该存在于解压的程序包中,如果你没有看到它,请创建它。如果它里面已经有内容,请删除掉它们,或视情况保留。然后编辑这个脚本,它至关重要。这里提供我使用的参数。

记得选择一个你用得顺手的编辑器。
//这行告诉macOS,这是个Bash脚本。

#!/bin/bash

//这行将脚本的执行路径更换为这个文件夹。

cd "$(dirname "$0")"

//这行启动Qemu并添加如下参数:
//-boot d: 从CD-ROM启动。如果你想要从磁盘启动,将d改为c;
//-M mac99: 机型为Power Macintosh G4(AGP);
//-m 256: 拥有256MB内存;
//-prom-env 'auto-boot?=true' & -prom-env 'vga-ndrv?=true': OpenBIOS参数,后者允许设定分辨率;
//-drive file=hd.img,format=raw,media=disk & -drive file=cd.iso,format=raw,media=cdrom: 添加设备,源文件为XX,为RAW格式,作为disk(磁盘)或cdrom(CD-ROM);
//-rtc base=2000-12-25: 将虚拟机的时间设定为2000年的圣诞节,以破解Time Bomb。

./qemu-system-ppc -boot d -M mac99 -m 256 -prom-env 'auto-boot?=true' -prom-env 'vga-ndrv?=true' -drive file=hd.img,format=raw,media=disk -drive file=cd.iso,format=raw,media=cdrom -rtc base=2000-12-25

除此之外,你可以通过-device连接新的存储设备,还可以使用下面的参数。无论如何,请保证这些参数与./qemu-system-ppc在同一行;更多参数可以在Qemu官方文档处查阅。然后,保存文件。

//-device usb-mouse & -device usb-kbd: 令Qemu以USB的形式连接鼠标与键盘;
//-netdev user,id=network01 -device sungem,netdev=network01: Qemu内建DHCP服务器提供一个Sungem网卡;
//-prom-env 'boot-args=-v: OpenBIOS参数,使用Verbose模式启动;
//-g 1024x768x32: 调整分辨率为1024x768,32位。

系统安装

在启动虚拟机前,别忘了将cddisk.iso重命名为cd.iso,以便Qemu从它启动。双击qemu.command脚本,如果出现了权限问题,用chmod来解决。随后不久,虚拟机应该正常启动。

chmod +x qemu.command
Mac OS 9.2.2 SC的启动界面。

取决于你选择的映像,初始化磁盘。

利用Mac OS的「磁盘设置」来初始化。

初始化磁盘后,关闭虚拟机,然后将cd.iso拖入「废纸篓」。将cdinstall.iso,也就是Public Beta的映像重命名为cd.iso,再次启动虚拟机。虚拟机应该正常启动,且你应该很快看到安装界面。完成安装即可。

Mac OS X Public Beta安装器的语言选择界面。

当安装完成界面显示时,可以关闭Qemu,然后将qemu.command中关于CD-ROM的参数去掉,将boot参数改为从磁盘启动,即d改为c。将cd.iso拖入「废纸篓」。

安装结束。

体验Mac OS X Public Beta

在Mac OS X Public Beta首次运行时,它将启动「设置助理」。设置助理的步骤与Apple Rhapsody基本相同,我曾在VMware中模拟它。这几步简单无比,无需更新版本的「注册」流程。

Mac OS X Public Beta设置助理。

如果你出现了如下图所示的界面,请检查-rtc参数。Mac OS X Public Beta带有Time Bomb,利用rtc参数将时间设定为2000年的圣诞节可以解决问题。否则,Qemu会同步系统时间,导致你无法使用Public Beta。

Time Bomb警告框。

Mac OS X Public Beta的桌面称为”Desktop”,窗口上却是”Finder”。这造成了一些逻辑上的不习惯。Apple图标在菜单栏居中的位置,而应用程序菜单却显示如今Apple菜单里的内容。

Mac OS X Public Beta的桌面、菜单栏与Dock。

如果你点击”Desktop”,这里没有”About Desktop”,只有”About This Mac”。

“About This Mac”窗口。

Mac OS X Public Beta的Aqua界面为改进后的界面。Dock已经改为带有放大、活动指示和弹跳打开的2D Dock,而不是App的大图标,设计思路无限接近于如今的现代macOS。Aqua风格深入系统的每一个角落,动画流畅,App图标禁得起放大,也禁得起缩小,整个系统精致美丽,优美动人。

几个App与窗口。

在Mac OS X Public Beta内,不活动的窗口菜单栏被半透明处理。这个设计沿用至Mac OS X 10.2.8。整个Mac系统当然还留有不少来自NeXT时代或Rhapsody时代的气质,有尤其是Finder的布局。经典的「分栏」显示方式优雅地展现了层级的关系,更是继承至今。

很多App设计还留有Classic时代的气质,例如「Apple System Profiler」与「Disk Utility」。前者基本上与Mac OS 9的版本高度一致,而后者则只是简单整合了Mac OS 9上的两个独立App,图标也没有重新设计,但是高清化了。

原始的「磁盘工具」。

当然,作为Beta作品,也是一代拥有重大飞跃的版本,它的稳定性有待商榷。虽然它拥有内存保护等来自Unix的技术,极大地增强了系统稳定性,但是对比如今的macOS还是有些差距——我在试图打开终端时,它Kernel Panic了。这一版并没有四国语言的提示,突如其来,也有些吓人。对比Mac OS 9的炸弹,这里不够更新版本「优雅」。

突如其来的Kernel Panic。

在Qemu上回首过去,如果愿意花费时间来调试和不断尝试,我们完全可以体验到从NeXT Step到Mac OS X的完整历史。即使你没有旧款的Mac电脑,通过Qemu方便地体验一下吧——在回首时,我们不但能一睹旧版本Mac OS的风采,更能感受那些许多一脉传承的技术和概念。它们极大地便利了我们如今的Mac体验。如果你有什么想法和故事,欢迎在评论区里留言分享给我和大家。

本文的发表和一些技术问题的解决离不开「老Mac与Mac OS交流群」的支持。欢迎加入,QQ群号:769483275。

拓展阅读

赞赏站长

本站是原创性质的个人站点,站长拥有所有原创内容的著作权,版权所有。

站长欢迎任何人利用本站内容进行高质量的二次创作,但必须为站长署名(@paizhangpi 或 @paizhang),并附上本站的链接,或事先与站长协商授权事宜。除此之外,严禁任何人盗用本站包括图片在内的任何原创内容,形式包括但不限于低质量或未署名的二创或使用、转载、抄袭、引用、改编、翻译,乃至用于商业用途等。以上行为一经发现,将会追究到底。

《虚拟机体验Mac OS X Public Beta:在Qemu上运行早期版本的Mac OS》上有6条评论

  1. Safari 11.0.3 Safari 11.0.3 Mac OS X  10.11.6 Mac OS X 10.11.6
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/604.5.6 (KHTML, like Gecko) Version/11.0.3 Safari/604.5.6

    排长!这是咋回事呢?(窗口上的提示:MacBook-Air:~ Man$ /Users/apple/Desktop/Qemu-4/qemu.command ; exit;
    dyld: lazy symbol binding failed: Symbol not found: _clock_gettime
    Referenced from: /Users/apple/Desktop/Qemu-4/./qemu-system-ppc (which was built for Mac OS X 10.12)
    Expected in: /usr/lib/libSystem.B.dylib

    dyld: Symbol not found: _clock_gettime
    Referenced from: /Users/apple/Desktop/Qemu-4/./qemu-system-ppc (which was built for Mac OS X 10.12)
    Expected in: /usr/lib/libSystem.B.dylib

    /Users/apple/Desktop/Qemu-4/qemu.command: line 5: 5193 Trace/BPT trap: 5 ./qemu-system-ppc -boot d -M mac99 -m 256 -prom-env ‘auto-boot?=true’ -prom-env ‘vga-ndrv?=true’ -drive file=hd.img,format=raw,media=disk -drive file=cd.iso,format=raw,media=cdrom -rtc base=2000-12-25
    logout
    Saving session…
    …copying shared history…
    …saving history…truncating history files…
    …completed.

    [进程已完成])启动不了

  2. Safari 11.1 Safari 11.1 Mac OS X  10.13.4 Mac OS X 10.13.4
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15

    排长好厉害啊!一个高中生就能做到如此地步!佩服佩服! 🙂 🙂 🙂

  3. Google Chrome 66.0.3355.4 Google Chrome 66.0.3355.4 Windows 10 x64 Edition Windows 10 x64 Edition
    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3355.4 Safari/537.36

    求Windows的操作步骤

    1. WebView 4.0 WebView 4.0 Android 7.1.2 Android 7.1.2
      Mozilla/5.0 (Linux; Android 7.1.2; ZUK Z2131 Build/NJH47D; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/66.0.3359.126 Mobile Safari/537.36 tieba/9.4.8.0

      Emaculation论坛上有Windows版的QEMU安装包,操作和命令行上基本是相同的,但性能会比macOS/Linux下面运行QEMU慢的多

  4. Safari 11.1 Safari 11.1 Mac OS X  10.13.4 Mac OS X 10.13.4
    Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15

    这也太牛逼了吧

    1. Google Chrome 65.0.3325.181 Google Chrome 65.0.3325.181 Mac OS X  10.13.2 Mac OS X 10.13.2
      Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36

      😮 哈哈

回复 solderwire 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据