Synth Daily

MkLinux 与那台被炫酷改装的 Apple Workgroup Server 9150

这个项目始于修复一台不稳定的 Apple Workgroup Server 9150,这台机器在苹果服务器产品线中是个异类。文章详细记录了修复、升级这台老旧服务器并为其安装 MkLinux 的全过程。内容不仅涵盖了硬件层面的维修(如处理老化的塑料件和更换电容)、硬件升级(如更换 CPU 和视频卡),还深入探讨了苹果公司早期的服务器战略、Workgroup Server 系列的演变,以及作为 Mach 微内核与 Linux 结合体的 MkLinux 的诞生历史。最终,尽管遇到了内存限制、硬件兼容性等诸多挑战,作者还是成功地打造了一台可以双启动经典 MacOS 和 MkLinux 的高性能复古服务器。

苹果早期的服务器战略

苹果公司最初并没有制造大型计算机的历史,其服务器产品线的出现可以追溯到失败的 Macintosh Office 概念。1985 年,苹果推出了包括 AppleTalk 个人网络和 LaserWriter 打印机在内的产品,希望构建办公网络。当时,乔布斯寄希望于一个代号为“Big Mac”的项目,它被设想为一台运行某种 Unix 系统的高端工作站或文件服务器。

“Big Mac”项目也被内部称为“3M”项目,因为它计划提供至少一百万像素(megapixel)的显示、一百万字节(megabyte)的内存,并以每秒一百万条指令(million instructions per second)的速度运行。

然而,随着乔布斯的离开,该项目被取消。为了挽回企业客户的信心,苹果开始探索其他路径,其中之一就是 A/UX。

A/UX:苹果自己的 Unix

A/UX 是苹果推出的基于 UNIX System V 的操作系统,并集成了 4.2BSD 和 4.3BSD 的扩展。它旨在为 Mac 提供一个强大的 Unix 环境。

  • A/UX 1.0 于 1988 年发布,运行在 Macintosh II 上,价格高昂。
  • A/UX 3.0 基于 System 7,于 1993 年发布,随着第一代 Workgroup Server 一同推出。
  • A/UX 未能延续到 PowerPC 时代,为后来的 MkLinux 和其他方案留下了空间。

Workgroup Server 的演变

在专门的服务器硬件出现之前,用户只能将普通的 Mac 电脑用作服务器。直到 1993 年,苹果才正式推出了第一代 Workgroup Server(WGS)

  • 第一代 (68K):

    • WGS 95: 基于 Quadra 950,是最高端的型号,标配 A/UX 3.0.1。
    • WGS 80: 基于 Quadra 800。
    • WGS 60: 基于 Centris 610。 这些服务器本质上是配置更高、捆绑了服务器软件的 Mac 电脑。
  • 第二代 (PowerPC): 随着向 PowerPC 的过渡,苹果推出了新的 WGS 型号,但 A/UX 缺席了。

    • WGS 9150 (“Green Giant”): 这是本文的主角。它基于 PowerPC 601 处理器,使用了类似 Quadra 950 的机箱,但经过修改以容纳 CD-ROM 和 DAT 驱动器。它也是唯一一款没有对应桌面 Mac 型号的 Workgroup Server。
    • WGS 8150: 基于 Power Macintosh 8100。
    • WGS 6150: 基于 Power Macintosh 6100。

苹果的服务器软件策略在当时显得非常混乱。他们曾尝试过 Novell NetWare,但反响不佳。最终,这些 PowerPC 服务器主要运行 System 7 和 AppleShare,并捆绑了名为 AISS (Apple Internet Server Solution) 的一揽子软件,其中包含了 WebSTAR、BBEdit 和 Adobe Acrobat 等第三方工具。

重建“绿色巨人”

这台 WGS 9150 因为频繁崩溃而需要重建。最初的排查指向了 CPU 过热,但更换导热硅脂并未解决问题。最终,主板被送去进行了专业的电容更换,这似乎解决了硬件不稳定的根本原因。

一个主要挑战是处理所谓的“Spindlerplastic”——一种因增塑剂挥发而变得极度脆弱的 ABS 塑料。

这种老化塑料无法修复,除非将其熔化并添加新的增塑剂。机箱内用于固定主板的卡扣和支架几乎一触即碎,给安装过程带来了巨大麻烦。

硬件细节与修复

  • 主板布局: WGS 9150 的主板为了适应 Quadra 950 的机箱,有大量留白空间。它拥有两个 SCSI 总线:一个由 CURIO 芯片控制的外部总线,和一个由 MESH 芯片控制的更快的内部 SCSI-2 总线。
  • CPU: 原始 CPU 是一颗 80MHz 的 PowerPC 601,被永久焊在主板上。作者清理了老化的导热化合物,并重新涂抹了现代导热膏。
  • 固定问题: 由于塑料卡扣全部断裂,作者最终使用尼龙螺丝活页夹等创造性方法来固定主板,以确保背部端口对齐且内部开关不会被错误挤压。
  • 初始测试: 在安装了 256MB 内存和 ZuluSCSI 固态存储替代方案后,作者首先安装了 Mac OS 8.6 并进行了长时间的稳定性测试,确认硬件已恢复正常工作。

MkLinux:苹果的另类 Linux

在安装 MkLinux 之前,文章回顾了它的起源。MkLinux 并非一个常规的 Linux 移植,而是将 Linux 内核作为在 Mach 微内核之上的一个任务来运行。

  • 起源: 该项目由苹果内部的 Ike Nassi 发起,作为对当时陷入困境的 Copland 操作系统项目的一种技术探索。他们委托开放软件基金会(OSF)的团队进行开发。
  • 架构: MkLinux 将整个 Linux 内核作为一个单一服务器运行在 Mach 上。这种设计虽然简化了开发,但也带来了性能开销。
  • 发布历史:
    • 第一个开发者版本(DR1)于 1996 年发布,最初只支持 NuBus 架构的 Power Mac。
    • 后续版本(如 DR2.1)逐渐增加了对 PCI 架构 Mac 和 G3 型号的支持。
    • 乔布斯回归后,苹果对 MkLinux 的兴趣减弱,项目最终被社区接管,并于 2002 年发布了最后一个版本(pre-R2)。

尽管存在性能问题和开发缓慢,但在很长一段时间里,MkLinux 是唯一能在 NuBus Power Mac 上运行的 Linux 发行版,也是唯一一个曾得到苹果官方某种程度支持的。

安装 MkLinux

安装过程充满了时代特色,也遇到了新的问题。

  1. 分区: 使用一个修改过的 Apple HD SC Setup 工具,将硬盘划分为多个 A/UX 格式的分区,包括用于根目录(/)、/home、以及多个 128MB 的交换分区。
  2. 引导: 安装程序需要从 Mac OS 启动。通过一个名为 MkLinux Booter 的扩展,系统重启后会加载 Mach 内核。
  3. 内存问题: 安装在加载 Linux 内核时卡住了。经过排查,发现问题在于 RAM 过多。MkLinux 的 Mach 内核对超过特定数量的内存存在兼容性问题。 > Mach 内核的虚拟机哈希表存在一个硬性上限。当内存过多导致这个表溢出时,内核就会崩溃。解决方法是在启动参数中添加 -m136 来限制可用内存。
  4. 安装程序: MkLinux 使用了一个修改版的 Red Hat Linux 6.2 安装程序。整个安装过程耗时超过六小时。
  5. 完成: 安装完成后,系统成功启动到 Linux 命令行界面,可以双启动 Mac OS 8.6 和 MkLinux。

性能升级

为了将这台服务器打造成终极形态,作者进行了一系列升级。

  • CPU 升级: 安装了一块 Sonnet Crescendo G3 400MHz 的 PDS 升级卡。这张卡自带 1MB 的 L2 缓存,能极大地提升 Mac OS 的运行速度。

    MkLinux 无法在 G3 处理器激活时启动。解决方案是通过调整扩展加载顺序,让 G3 升级卡的驱动(INIT)在 Mac OS 中较晚加载,从而只在 Mac OS 环境下生效,而在启动 MkLinux 时保持使用原生的 601 处理器。

  • 视频卡升级: 主板自带的视频性能很弱。作者尝试了多种方案:

    • Radius 24XK (NuBus): 虽然 Mach 内核能检测到,但 Linux 内核启动时会引发内核恐慌。
    • Apple A/V Card (PDS): Mach 内核可以识别,但无法启动 Linux 任务。
    • Apple HPV Card (PDS): 成功。虽然 Mach 内核无法正确识别其名称,但它能成功启动 Linux 并提供比主板集成显卡更好的分辨率。
  • 最终配置: 通过一个特殊的转接套件,将 HPV 视频卡安装在一个 NuBus 插槽中(电气连接仍为 PDS),最终实现了 G3 CPU + 独立显卡 的配置。

这台经过精心修复和极限升级的 Workgroup Server 9150,最终成为了一台独特的、能够同时运行两种操作系统的强大复古机器,见证了苹果一段鲜为人知的历史。