PowerPC 上的原生 Linux
为您的 PowerPC 机器寻找更好的操作系统吗?如果您正在阅读 Linux Journal,那么您很可能已经找到了一个。来自 Apple、摩托罗拉和 IBM 的基于 PowerPC 的机器对基于 Intel 和 DEC Alpha 的 PC 构成了一些竞争。PowerPC 是一款设计精良的处理器,拥有精良的机箱,并且由于它使用 PCI 总线,因此可以使用为 Intel PC 制造的大多数 PCI 卡。更棒的是,PowerPC 可以运行 Linux。
PowerPC (PPC) 处理器是由 IBM、Apple 和摩托罗拉合资生产的。绝大多数 PPC 计算机是 PowerMac 和 PowerMac 克隆机。IBM 和摩托罗拉都生产基于 PREP 标准的 PowerPC。摩托罗拉也生产 Mac 克隆机。IBM 现在在其 RS6000 和 830 系列机器以及其大型计算机之一 AS400 中使用 PowerPC。甚至还有一款 IBM 便携式电脑 Thinkpad 是基于 PowerPC 的。基于 PREP 的机器对于操作系统来说看起来都差不多,这使得支持它们都更容易。然而,PowerMac 不是基于 PREP 的。原生 Linux 可以运行在所有这些机器上,AS400 和基于 NuBus 的旧 PowerMac 除外。我们的目标是能够在每个可用的 PowerPC 系统上运行 PowerPC Linux。
有三个版本的原生 PowerPC Linux,以及 Apple 带有 Linux 个性的 Mach 版本 (MkLinux) —— 全部由不同的团队开发。所有原生版本的移植都始于 Gary Thomas 早期的工作。到本文发表时,我们希望各种原生版本已经合并为一个版本。目前的情况(一月下旬),这三个版本是
http://www.linuxppc.org/--Gary Thomas 为 Be、摩托罗拉和 IBM 机器开发的 Linux 2.0 版本。此版本包含来自 MkLinux 项目的一些内核支持。如需更多信息,请写信至 g.thomas@osf.org。
http://www.cs.nmt.edu/linuxppc/--新墨西哥理工学院为摩托罗拉和 IBM 工作站开发的 Linux 2.1 版本。这是在主 Linux 源代码发行版中找到的版本。如需更多信息,请写信至 cort@cs.nmt.edu。
ftp://cap.anu.edu.au/pub/--Paul Mackerras 为 PowerMac 开发的 Linux 2.1 版本。如需更多信息,请写信至 paulus@cs.anu.edu.au。
目前,我们正在整合新墨西哥理工学院的移植版本(适用于摩托罗拉和 IBM 机器)与 Paul Mackerras 的版本(适用于 PowerMac),以便从一个源代码树支持所有 PowerPC 机器。
像 Emacs、awk、Perl、bash、Ghostview 和 TeX 这样的标准实用程序,编译和运行方式与任何 Linux 移植版本一样。网络支持是完整的——NFS 服务器和客户端、FTP 服务器和客户端、slip、ppp、tftp 引导服务器、xntp 和其他网络服务都工作正常。X 在带有 S3 卡的 IBM 和 Mac 上运行。(在我的 IBM 830 上运行非常流畅。)事实上,本文档完全是在 PowerPC Linux 下使用 X、Ghostview、LaTeX 和 Emacs 准备的。
PowerPC Linux 非常稳定,我正在将其用作内核的开发平台。我已经有长达两周的正常运行时间,仅在更新到较新的内核时才重启。“crashme”测试在我们的机器上运行了超过 12 个小时,并且仍在不断改进。Lmbench 表明系统运行速度也很快。
与 PowerPC 上的 AIX 相比,Linux 的性能非常好。与使用 lmbench 测试的 Intel 上的 Linux 相比,它的运行也良好。 列表 1 中的数字是 lmbench-1.0 运行 10 次结果的算术平均值(PowerMac 上的结果是单次运行)。最新的 lmbench 数字、crashme 结果和错误修复保存在 http://www.cs.nmt.edu/linuxppc/。
对其他视频卡的支持将很快完成。共享库的早期版本正在 Thomas 的版本上工作。它们是高度优先事项,因此将很快完成。内核模块在 2.1 内核的早期版本中工作正常,但随着 modutils 最近的更改,有一些小问题需要解决。模块很快就会再次工作。
有一个 PowerMac 版本的 LILO(名为 MILO)可以引导 MacOS 和 Linux,但 PREP 平台还没有这样的程序。引导加载程序目前还不是高度优先事项,但拥有一个肯定有助于调试过程——如果没有 LILO,快速引导新内核会变得很繁琐。LILO 对于希望引导 PPC Linux 和另一个操作系统的用户也是必要的。
由于大多数 PowerPC 系统都使用 PCI 总线,因此在 Intel PC 上工作的 PCI 卡也可以在 PowerPC 系统上工作。有许多为 PCI 设备编写的 Linux 驱动程序,因此添加对更多设备的支持很容易。大多数驱动程序只需要进行少量修改即可在 PowerPC 上工作。通常我们只需要更改驱动程序的“字节序”。Linux 中的大多数设备驱动程序都假定小端 CPU,并且由于 PowerPC 运行大端,因此大多数驱动程序都需要更改发送到设备的数据格式。随着更改的进行,作者们已经获得了副本,以便包含在标准 Linux 树中。幸运的是,PowerPC 不是唯一移植到大端机器的 Linux 版本。Sparc 运行大端,必须处理相同的问题并修复相同的问题,因此我们并不孤单,需要并且正在进行这些更改。
截至目前,工作驱动程序的列表包括串行接口、PS/2 鼠标、EIDE 硬盘驱动器(CD-ROM 有错误)、NCR 53c8XX SCSI 控制器(所有 SCSI 设备都工作)、标准软盘、DEC 以太网卡(de4x5 驱动程序)和 Lance 以太网卡。PowerMac 上支持 MACE 以太网接口、ADB 鼠标/键盘以及 MESH 和 53C96 SCSI 控制器。摩托罗拉的 Mark Scott 配置了 PowerStack 以支持音频,但任何架构上的其他声音设备尚不支持。EIDE CD-ROM 支持存在错误,需要更多工作——视频输入和输出都不工作。欢迎拥有其他硬件的用户的补丁。
PowerPC 上的 Linux 是一个稳定而强大的开发环境。我们需要更多用户安装它,并开始进行驱动程序修改和其他缺失功能的工作。Linux 受益于全球众多程序员的工作,PowerPC Linux 希望拥有同样的优势。
目前,使内核坚如磐石是最高优先级。其次是加快速度。毕竟,一个快速崩溃的内核只是一个快速崩溃的内核。
我想采用在新墨西哥理工学院开发的实时 Linux,并使其在 PPC 上工作。与具有更好的定时器和更简单的中断接口的 80x86 相比,PowerPC 使实时功能更容易实现。与 RT-Linux 集成甚至可以通过使用软禁用中断而不是昂贵的硬件禁用来优化内核。
一旦我有权访问对称多处理 (SMP) PowerPC 机器,我将开始 SMP 的工作,因为现在没有对 PowerPC SMP 机器的支持。
PPC Linux 的发行版目前包括用于安装的引导软盘映像、根软盘映像、文件系统 tar 文件和用于硬盘的最终引导映像。详细说明和安装的相关文件可以在 ftp://ftp.nmt.edu:/pub/people/cort/ 找到。此安装过程很笨拙,并且需要具有 NFS 服务器或磁带驱动器的网络。这不像它可能的那样实用,并且有很多改进空间。Red Hat 包管理工具已编译并工作,但 Red Hat 尚未直接支持它们;因此,只有 RPM 源代码包有效。
PPC Linux 中不支持模拟操作系统,PowerMac 版本除外,只要它们不进行 Mach 系统调用,PowerMac 版本就可以运行 MkLinux 二进制文件。除了有限的 MkLinux 支持外,没有添加模拟的计划。支持 PowerPC AIX 二进制文件并不困难,但由于用户想要使用的 PowerPC AIX 应用程序很少,因此添加支持是不值得的。然而,对于 MacOS 和 Windows 的模拟,可以提出更有力的理由。MacOS 和 MS Windows 都有许多用户希望在 PPC Linux 下运行的应用程序。也许 PowerPC 的 MacOS 和 Windows 模拟可以由其他人作为类似于 Wine 和 DOSemu 的项目来承担。
在内核和用户级别的许多领域仍然有很多工作要做。设备驱动程序需要修改和测试,以从大端 CPU 转换为设备的本机格式。现在支持的设备很少,而且我无法访问所有设备来完成这项工作。需要拥有他们希望看到支持的硬件并且对进行一些内核黑客技术感兴趣的人员来参与这个项目。即使是不想编写代码的用户也可以通过测试内核更改来提供帮助。
还需要对在其工作站上运行 PowerPC 感兴趣的人员。需要不同的 PowerPC 机器来测试和验证系统在尽可能多的 PowerPC 机器上工作。愿意帮助添加对其自身机器支持的人员会更好。
X 需要更改以支持更多视频卡,并且这些更改应与标准 XFree 集成。我也非常热衷于 PPC Linux Netscape 的想法。Linus Torvalds 在 1997 年 Usenix 技术大会上敦促将 Linux 作为“有趣”的系统;他以自己将 Quake 移植到 Alpha Linux 的工作为例。也许有兴趣的人可以承担起这项事业。
一个在 PowerMac 和其他 PowerPC 平台上工作的 PowerPC 版本的 LILO 将非常有用。目前,我们只有一个 PowerMac 版本,并且可以使用 PowerMac 版本开始进行 PREP LILO 的工作。
Cort Dougan 是新墨西哥理工学院的研究生,他将时间分配在研究生工作、PowerPC Linux 和水培农业之间。可以通过电子邮件 cort@cs.nmt.edu 与他联系。