跳到正文
Hacker News· ecliptik·· 7 小时前AI 评分20

Infinite Mac 新增 BeOS:可在浏览器中运行多个 BeOS 版本

Infinite Mac: BeOS

AI 导读

Infinite Mac 现已支持在浏览器中运行多个 BeOS 版本,安装镜像与 Mac 版本对等,可即时启动、使用预装软件、插入 Internet Archive 的 CD-ROM 并在 Saved HD 保存工作。为提升 BeOS 兼容性,作者向 DingusPPC 模拟器上游提交了多项修复,并称其可能是唯一能运行 PowerPC 版 BeOS 的模拟器。

正文 · AI 翻译

tl;dr:你现在可以在浏览器中通过 Infinite Mac 运行许多 BeOS 版本,这是我的网站,你可以在其中体验 1984 年至 2005 年的 Macintosh 电影宇宙。这些安装与它们的 Mac 表亲完全对等:你可以即时启动它们(大磁盘以流式传输方式加载),使用 Infinite HD 中预装的软件,插入来自 Internet Archive 的 CD-ROM,并将你的工作保存在“Saved HD”驱动器上。

BeOS 是一个专注于多媒体、多任务和多线程的操作系统,最终被移植到 90 年代中期的 Power Macintosh 上。它给 Mac 社区的许多人留下了深刻印象,包括 Apple 本身,后者曾考虑收购创建它的公司 Be。如果你一直关注 Apple 寻找下一代操作系统的传奇故事,这能让你看到那条未走之路是什么样子。

BeOS R5 running inside Infinite Mac, showing GL Teapot, Mandelbrot, Gobe Productive, Terminal, image viewer and CPU monitor.

让 BeOS 运行起来

在 Infinite Mac 上完成上一个颇为复杂(但仍然令人满意)的项目后,我在寻找一个更快的成果。BeOS 已经在我的关注范围内有一段时间了,而且(与 A/UX 不同)我与它有个人联系:我记得在秋叶原看到过一台 BeBox,用 BeView 让我的 Mac 装扮成它的样子,最终在我的 Power Macintosh 8500 上双启动 BeOS。我已经集成的模拟器 DingusPPC 在运行 BeOS 方面进展良好,所以将它添加到网站似乎主要只是准备一些额外的磁盘镜像。

起初,事情似乎如我所希望的那样简单直接;我添加了一个 Power Macintosh 7300 配置(官方支持的 Power Mac 之一),找到了一个安装 CD,制作了一个磁盘镜像,然后就运行起来了。但随着我更多地使用它并开始安装更多版本,我开始发现许多小 bug 和边缘情况:

  • 由于 ADB 模拟中的一个 bug,BeOS 引导加载程序认为所有修饰键都被按下了;这使得它每次都显示(丑陋的、类似 PC BIOS 的)分区选择屏幕。
  • 更改屏幕色深时,有两个硬件组件需要被通知:视频控制器和数模转换器。DingusPPC 一直意外依赖于 Mac OS 发送这些通知的顺序;BeOS 恰好做出了相反的选择,最终会导致显示损坏。
  • 早期版本的 BeOS 以小端模式进行视频内存更新1;DingusPPC 缺少对该硬件能力的支持。
  • 较晚版本的 BeOS 可以挂载 HFS 分区,但对我通过 machfs Python 库生成的卷遇到了问题。结果发现 BeOS(正确地)在如何填充某些数据结构方面比 Mac OS 更严格。
  • 以及 其他 等等——过去一个月我向上游提交到 DingusPPC 的大多数提交都是为了追求更好的 BeOS 兼容性。

Infinite Mac emulating BeOS R5 emulating System 7.6.1 running Speedometer
两全其美?

SheepShaver,一款至今仍在维护的 Power Macintosh 模拟器(Infinite Mac 也内嵌了它),起源于 BeOS。很大程度上是为了体验又一层“盗梦空间”式模拟的乐趣,我想确认它也能正常工作。结果发现,它同样需要一个兼容性修复——它依赖于 ROM 映射到物理内存地址时的一个边缘情况,而 DingusPPC 并未准确建模这一点。

这些 bug 修复大多有一个共同模式:DingusPPC(以及 Infinite Mac)主要专注于运行 Mac OS,因此无意中依赖了它的怪癖或实现选择。加入一个独立开发的操作系统后,新的代码路径被触发,最终提升了模拟硬件的准确性。需要说明的是,DingusPPC 开箱即用已经相当接近完美;感谢它的维护者。我相信,经过这项工作,它是唯一2能运行 PowerPC 版 BeOS 的模拟器。我也希望这能有助于启动像 MkLinux(我同样对它留有记忆)和 Rhapsody 这样的其他操作系统。

Infinite Mac custom instance dialog with a BeOS control appearance.

在 Infinite Mac 这边,有一些明显的变化,比如我的自定义控件采用了“BeOS”外观,以及为软件库收集软件。我还需要在磁盘上叠加一些动态生成的内容,让操作系统预选一个与浏览器窗口匹配的屏幕分辨率(类似于为 A/UX 所做的)。一个 AI 代理(对我来说仍然是 Codex)再次对这类繁琐的逆向工程任务很有帮助:观察到操作系统在磁盘上存储了一个包含屏幕尺寸的文件是一回事;能够复现其所有细微之处则是另一回事,尤其是随着后续版本格式发生了变化。

Developer Release 8.2 是 Power Mac 上的首个 BeOS 版本,它带有一个时间炸弹,使其在 1997 年 4 月 1 日之后无法启动。这不仅仅是为了制造紧迫感;它附带了一个 Be 无法无限期分发的授权字体渲染器。DR8.3 解决了这个问题,但为了让这个值得注意的首个版本能够启动,我最终确实依赖了自定义日期支持,在选择该磁盘时硬编码一个可用的日期。

BeOS 印象

虽然我在 BeOS 当红时曾试驾过它,但我不记得用得足够多,以至于除了“这很快;我怀念我所有的第三方软件”之外还能形成什么看法。About This Particular Macintosh 确实有当时的报道,包括 Be 在波士顿 Macworld Expo 的首次和第二次亮相,以及对 R3 和 R4.5 的评测;它们读起来很有趣。Be 自己发布的这个视频也演示了他们所认为的其优势。

以2026年的眼光来看,它的速度依然让我印象深刻——启动和使用都很快,尤其是与同期那些功能少得多的Mac OS版本相比(例如,实时窗口拖动直到Mac OS X才出现)。POSIX子系统和类Unix shell也感觉很现代(不像A/UX的)——我用终端四处探索毫无困难。创新之处也很多,尽管其中一些(带有属性和实时查询的BFS)比其余部分(replicants是小组件的前身,但我想不出它们有什么用处)更有趣。

它给人的感觉也是一个面向开发者、仍在建设中的系统:许多内置应用都是技术演示(不过谁不喜欢犹他茶壶呢),而同时期的Be主页直接链接到开发者发行说明,并讨论CodeWarrior版本和缺陷跟踪器的访问权限。这种未完成的状态也延伸到了第三方软件——我在这张Amiga杂志光盘上偶然发现了一些BeOS软件,其中大多数都带有“0.1版”的感觉,无论是字面上还是比喻意义上。公平地说,我确实找到了一些更成熟的软件,例如来自前ClarisWorks团队的Gobe Productive。如果你愿意尝试,这个软件和其他软件都在Infinite HD上(最好在较晚的操作系统版本中)。

这个界面在当时看来很新颖,不过我想知道它能否经得起时间的考验3。独特的标签式窗口标题看起来很整洁,但可拖动区域变小了,所以每次想移动窗口时我都得更加费心。而且使用手形作为默认光标让点击感觉不如传统箭头精确(“手指”上到底哪个像素是热点?)。UI的其他部分感觉像是一个不完全协调的Windows/Mac混合体,有可以模拟开始菜单的Deskbar4、菜单项上的Alt键加速器,但也有弹簧加载文件夹和空间式的Finder Tracker。

说到Tracker,我之前没有意识到Be已经将其开源(甚至整合了开源版本的更改)。这大约是在Be转向互联网设备的时期——如果只暴露一个全屏浏览器应用,就没有必要在文件管理器上投入工程资源了。这篇采访Tracker开发者的文章有更多背景故事。

OPENSTEP 4.0 and BeOS DR8.2, side-by-side in Infinite Mac's disk browser
自己动手做对比测试:NeXT vs. Be

相比之下,NeXTStep感觉更成熟。它经历了类似的一些动荡(从专有硬件到现成PC,公司战略转变),但也许因为它有更多时间,它处理事情的方式更优雅一些。例如,NeXT支持可在68K、Intel、PA-RISC和其他架构上运行的“胖”二进制文件。在BeOS上,它们必须是单独的可执行文件,让用户选择运行哪一个,并使分发复杂化(这让我更难找到可包含在Infinite HD中的软件)。更糟糕的是,你还必须在CD-ROM上有并行的磁盘分区:BFS使用主机字节序,因此由PowerPC安装写入的磁盘无法被Intel读取,反之亦然。但我对NeXT的偏爱可能源于我知道苹果最终选择了哪个操作系统。

其他站点改进

距离上次更新才过了没多久,但我还是挤出时间做了几项体验优化。现在你可以对模拟机的屏幕截图和录制视频(带声音)。这为你提供了一种高保真的图像内容捕获方式,因为它直接导出了原本会显示在屏幕上的内容。

Infinite Mac CD-ROM drawer showing a lot of system CDs.

我还扩充了操作系统 CD-ROM 的收藏,加入了 Rhapsody 和 Mac OS X 开发者预览版等条目。虽然它们目前还只是愿景(DingusPPC 尚无法运行它们),但它们确实满足了我的收藏癖。这些 CD 已镜像到我自己的 Cloudflare R2 存储桶并由其提供服务——Internet Archive 是一个了不起的资源(你可以捐款给他们),但从它那里流式传输已变得越来越不稳定。我不想加剧这个问题,而且多亏了我的赞助者,我负担得起提供几 GB 的服务。

至于接下来,既然这条另类的 Mac 时间线已经覆盖,或许是时候探索一部前传了。

  1. 今天我才知道这是可行的——Apple 通常在其机器上以 big-endian 模式运行 PowerPC 并处理一切。甚至还有一项关于此控制器能力的专利。 ↩
  2. 不过在我做这件事的时候,BeBox 被凭感觉造了出来。 ↩
  3. 话说回来,看起来 Haiku 几乎逐字保留了它,所以它显然对某些人有着持久的吸引力。 ↩
  4. 如果你能找到那个 3 像素宽的可拖动区域,把它移到底部。 ↩

来源:Hacker News · blog.persistent.info