Linux:不再仅仅适用于 Intel

作者:Joseph L. Brothers

Linux 不再仅仅是为早餐,呃,Intel 而准备的了。每个人都喜欢它,并希望在他们最喜欢的处理器上使用它:680x0、Alpha、MIPS、Sparc、PowerPC。这很好,因为它让 Linus 高兴,Linux 变得更好,Linux 用户的生活更轻松,让商业操作系统供应商保持警惕,并销售大量硬件。这也很好,因为 Linux 移植到更新的处理器技术有助于确保我们最喜欢的操作系统的持续活力。另一方面,移植可能会分裂开发,并因过多的代码流而导致错误和混乱。可移植性所需的更改可能意味着每个人的 Linux 都会变慢。为了避免这些问题,Linus 和其他移植人员正在共同努力,使 Linux 超越其基于 Intel 处理器的起点。

对于那些 Linux 社区的新手,我们应该首先解释一下,Linux 社区中有一个关于“虚拟啤酒”的长期玩笑。“牛津啤酒巨魔”被认为向 Linus 发送了“虚拟啤酒”(大概是买啤酒的钱),很快“虚拟啤酒”就意味着任何形式的感谢或赞扬。因为这个短语已经变得很常见,所以关于(虚拟)啤酒的双关语在 Linux 用户中很常见。让我们来一次虚拟啤酒厂的快速参观,了解它们的管道、液压工程师和酿酒大师,最后快速品尝一下产品。让我们从配方开始。表 I 列出了每个移植版本的配料以及关于过程的一些注释。您可以看到每个批次的进展情况。

  • 交叉工具至少包括一个编译器和二进制实用程序(as、ar、ld),它们为新的机器 + 操作系统组合生成可执行文件。

  • 合并源代码指的是将移植版本与 Linus 的内核源代码集成。

  • 模拟器是一个假装是新硬件的程序,以便新的可执行文件可以运行和调试。

  • 启动是几百个字的本机汇编代码,它检查并可能设置硬件,然后开始加载内核。一旦代码停止更改,移植就完成了。

  • 内核指的是启动用户 shell 所需的最低限度的操作系统软件。它包括内存管理、进程调度、基本的设备驱动程序和至少一个文件系统。

  • 运行 shell 包括运行基本 Linux 命令行实用程序的能力。

  • 本地工具是使用交叉工具交叉编译到新的机器 + 操作系统上的结果。

  • SDK 指的是新移植的 Linux 可以从头开始,完全独立地编译自身的工作副本。

  • 用户应用程序包括文本处理、电子邮件、备用 shell 和文件系统、更多设备驱动程序,实际上是一个完整的面向字符的 Linux。简而言之,除了 X-Windows 之外的一切。

  • X-Windows 添加了标准的图形用户界面。

当您检查每个移植版本的诞生地时,您可能会喜欢跟踪其相对的“醉人”能力。对于虚拟啤酒,这是以 BogoMips(虚假的误导性处理器速度指标)来校准的。请记住,这不能用于比较不同的处理器。

请注意,表 II 左侧的“Mips”指的是 RISC 处理器系列,而不是速度的度量。现在我们将访问每个啤酒厂,四处看看,会见酿酒师,并测量批次的温度。我们将不花时间在我们都熟悉的 ix86 Linux 上。此外,它不是移植版本;它是原始版本。继续我们的参观。

名称:Linux/68k

Linux/68k 是 Linux 移植到 Amiga 和 Atari 680x0 平台的版本,这些平台具有硬件内存管理和浮点支持。

  • 状态:beta

  • FAQ 访问:pfah.informatik.unikl.de:8000/pers/jmayer/linux68k-faq ftp://tsx-11.mit.edu/pub/linux/680x0/FAQ(或任何 tsx-11 镜像)

  • FAQ 维护者:Joerg Mayer,jmayer@informatik.uni-kl.de

  • 邮件列表:Linux-activists channel 680X0 at linux-activists-request@niksula.hut.fi linux-680x0@vger.rutgers.edu 订阅请发送邮件至:majordomo@vger.rutgers.edu

  • 源代码访问: www-users.informatik.rwth-aachen.de/~hn/linux68k.html http://src.doc.ic.ac.uk/packages/Linux/tsx-11-mirror/680x0/ ftp://tsx-11.mit.edu/pub/linux/680x0ftp://ftp.germany.eu.net/pub/os/Linux/Mirror.SunSITE/ftp://src.doc.ic.ac.uk/computing/operating-systems/Linux/tsx-11-mirror/680x0/

  • 发布协调员:Amiga - Hamish Macdonald,hamish@border.ocunix.on.ca Atari - Roman Hodek,rnhodek@cip.informatik.uni-erlangen.de

  • 支持平台:Amiga - A3000、A3000T 和 A4000/40(但不包括 A4000/30)Atari - Falcon(加上 FPU)、TTMac - 没有可用信息

  • 需要帮助

    • 需要更多硬件相关的设备驱动程序。《内核黑客指南》需要针对 680x0 进行更新,特别强调内存管理。

    • Linux/68k 在两个制造商的平台上运行 beta 质量的 680x0 Linux 内核,以及许多文件系统、shell 和一些实用程序。目前还没有 X-windowing,但相关工作正在进行中。使用专门贡献的工具,可以进行完整的本地开发。

    • Amiga 和 Atari 的移植版本合并得非常成功,以至于同一个内核镜像(来自 tsx-11 的 vmlinux)可以在两台机器上运行。 另一个优点是,如果只使用硬件无关的设备,所有用户程序二进制文件都应该可以在运行 Linux/68k 的任何机器上工作。这些设备包括 ramdisk、mem、pty、tty、vt、slip、net/inet 和通用 SCSI 设备。已移植的文件系统包括:minix、ext2、msdos、proc、isofs、nfs。

Hamish Macdonald,描述 1 月 4 日的情况

我目前有一个 v1.1.61 级别的私有源代码树,我正在跟踪 Linus 的可移植性更改,并一直在向他提交关于可移植性相关抽象的评论。在时间允许的情况下,我可能会提交更多这方面的更改。

名称:Linux/Alpha

Linux/Alpha 是 Linux V1.0 移植到 Digital Equipment Corp. Alpha RISC 微处理器的版本。

  • 状态:内核 SDK

  • 支持平台:Linux/Alpha 主要面向支持 ISA、VLB 和 PCI 设备的 PC 级 Alpha 平台。

  • FAQ 访问:关注 comp.os.linux.announce

  • FAQ 维护者:Jim Paradis (paradis@amt.tay1.dec.com)

  • 邮件列表

  • 源代码访问:gatekeeper.dec.com:/pub/DEC/Linux-Alpha

  • 发布协调员:Jim Paradis (paradis@amt.tay1.dec.com)

  • 需要帮助

    • 如果您有一个运行 OSF/1(例如 DEC 2000)的基于 Alpha 的 PC 级系统,您可以将同一系统用于开发和测试平台。否则,您将需要两个系统。

    • 开发系统可以是任何可以支持 Linux/Alpha 交叉开发工具的系统。交叉工具已在以下系统上成功构建和测试:

      • Linux 1.1.x 386/486 (当然!)

      • DEC OSF/1 Alpha 2.0

      • DEC RISC/ULTRIX 4.2 (MIPS)

      • SunOS 4.1 (Sparc)

      • Jim Paradis,宣布 Linux/Alpha

  • 开发者套件 95 年 1 月 20 日

    • Linux/Alpha 软件开发者套件是 Digital 的 Alpha 微处理器系列的第一个 Linux 操作系统组件公开发布版本。

    • SDK 可通过匿名 FTP [见上文] 获取。我强烈建议您首先下载 README 和 SDK_CONTENTS 文件,并在下载任何其他内容之前阅读它们(提示:您不需要下载该目录中的所有 55Mb!)

    • Linux/Alpha SDK 不是一个功能齐全的 Linux 发行版。文档非常粗略,主要以信封背面的笔记形式存在。Linux/Alpha 不是自托管的;必须在另一个系统上使用可用的交叉开发工具交叉编译内核和实用程序。内核非常脆弱,并且几个重要的代码路径尚未经过测试。可用的实用程序非常少;您可以将系统启动到 shell 提示符,但您还不能做太多其他事情。设备驱动程序支持非常少;目前,我们支持控制台回调设备驱动程序,但这些驱动程序非常慢(控制台回调驱动程序相当于 Intel 系统上的 BIOS 驱动程序)。到目前为止,我们已经为 DEC 2000 AXP 系统移植了三个示例驱动程序:键盘、文本模式 VGA 和 Adaptec 1742 SCSI。

    • 换句话说,Linux/Alpha 目前处于只有内核黑客才会喜欢的状态。如果这描述的是您,那么请务必下载 SDK 并尝试一下!

名称:Linux/MIPS

Linux/MIPS 是为配备 Mips R4x00 处理器的计算机提供的 Linux 移植版本。

  • 状态:工具 alpha;内核 pre-alpha

  • 支持平台:配备 R4400PC 和 R4600 处理器的 Deskstations Tyne 和 Acer PICA。Deskstations 支持 ISA 总线。

  • FAQ 访问:www.waldorf-gmbh.de:/linux-mips-faq.html ftp.waldorf-gmbh.de:/pub/linux/mips/linux-mips-FAQ

  • FAQ 维护者: linux@waldorf-gmbh.de

  • 邮件列表

  • 源代码访问:sunsite.unc.edu:/pub/Linux/ALPHA/mipsftp.uni-mainz.de:/pub/Linux/MIPSftp.waldorf-gmbh.de:/pub/linux/mips

  • 发布协调员:Andreas Busse (andy@waldorf-gmbh.de)

  • 需要帮助:当然,您可以提供帮助!如果您有 Mips 设备,请告知我们。

    • 来自 FAQ

      • 我们有一个为 Deskstation 板卡半工作的内核。控制台、软盘、串行和并行 I/O 似乎还可以。C 库几乎完成。我们预计第一个用户进程将很快运行。内核将在用户可以发出 shell 命令时发布,可能在 1995 年初。

      • 可用的支持/开发工具包括可用于 Linux/ix86、SunOs 4.1.3 和 Solaris2.3 的交叉编译器、汇编器和链接器。用于 Linux/ix86 的 Mips R2000/R3000 模拟器 (SPIM) 也已准备好下载。

    • Andy Busse 评论

      • 我在这部分项目中的角色有点像项目管理。当然,将 Linux 移植到 Mipses 也是我的主意。从我的角度来看,不同的本机字节序可能是 Linux/MIPS 最复杂的部分。大多数系统都是小端序,而有些系统仅运行大端序。但是,我仍然希望可以在所有支持的 Mips 设备上实现用户代码兼容性。

      • Ralf Baechle (ralf@waldorf-gmbh.de ) 目前正在开发 Deskstation 移植版本:正如您可能已经看到的,68k 移植版本即将合并到 Linus 的内核发行版中。由于 68k 移植版本是最先进的移植版本,我对 Linux/68k 的集成寄予厚望。这将使所有其他人的移植工作变得容易得多。

名称:Linux/Sparc

Linux/Sparc 是 Linux 移植到 sun4c 的版本,基于 Sparc 架构的第 7 版。

  • 状态:刚刚开始

  • 支持平台:Sun 4/20 是典型的。更完整的列表即将推出。

  • FAQ 访问:请参阅邮件列表

  • FAQ 维护者:David S. Miller,davem@nadzieja.rutgers.edu

  • 邮件列表:linux-sparc@vger.rutgers.edu 订阅请发送邮件至: majordomo@vger.rutgers.edu

  • 源代码访问:ftp://tsx-11.mit.edu/pub/linux/sources/system

  • 发布协调员:David S. Miller,davem@nadzieja.rutgers.edu

  • 需要帮助:如果您有 Sparc 设备可以启动,请联系 David S. Miller。用 David Miller 的话说,

    • 目前,我的测试设备可以执行以下操作:1) 打印启动消息,2) 确定机器类型(sun4c、sun4m、sun4d 等),3) 确定机器上的可用物理内存和其他类型的信息,4) 探测 OpenBoot PROM 以查找机器上的设备。PROM 在这里是一个真正的优势。5) BogoMIPS,移植版本最重要的部分!这台 SUN 4/20 给出了 17.94 BogoMIPS。6) 完全映射内核的虚拟页面。7) 启用并刷新虚拟地址缓存。

    • 我已经编写了很多架构相关的 include/asm-sparc 文件,并且能够在树上执行 “make config; make dep; make clean”。很多文件系统代码都可以编译。让它工作是另一回事。

    • 当前关于 Sparc Linux 移植版本的工作主要针对基于 Sparc 架构第 7 版的 sun4c 机器。主要区别(在机器类型之间)在于 V8 及更高版本中 MMU 的访问方式不同。幸运的是,V8 手册《Sparc Reference MMU》定义了 Version 8 内存管理(对于 sun4m)。我正在尝试使 sun4m 支持易于稍后插入。是的,这意味着多处理器支持以及随之而来的一切。尽管在 95 年中期之前不会出现此类机器,但我正在考虑 Version 9 Sparc 来编写一些代码:有备无患。

    • 我一直在努力协调我的代码与 Linus 的代码,以免在内核树中发生冲突,可以这么说。Eric Youngdale 和 Linus 在决定如何最好地将我的内存管理代码集成到当前树中方面提供了极大的帮助。

名称:Linux/PowerPC

Linux/PowerPC 是 Linux 移植到 PowerPC 处理器的版本,最初是 601 和 603。

  • 状态:恢复中

  • 支持平台:Apple PowerMac、Motorola PowerStack、IBM Power Personal PC。PowerStack 使用 ISA 和 PCI 总线。

  • FAQ 访问:请参阅邮件列表

  • FAQ 维护者: brothers@halcyon.com

  • 邮件列表:linux-ppc@vger.rutgers.edu 订阅请发送邮件至: majordomo@vger.rutgers.edu 关注邮件列表以获取公告

  • 源代码访问:ftp://tsx-11.mit.edu/pub/linux/sources/system/

  • 发布协调员: brothers@halcyon.com

  • 需要帮助

    • 需要文档专家。需要了解 Linux 文档项目、SGML、HTML、TeX、LaTeX,并渴望学习使用 “noweb” 进行文学编程。

    • 需要拥有 PC 级 RS6000 机器或 IBM PowerPersonal PC 的志愿者来进行启动和内核测试,并编写或移植设备驱动程序。

    • Apple PowerMac 移植人员大多拥有交叉开发环境(不是免费软件)。访问 Mac 的 ADB 内部总线规范似乎迫在眉睫,因为 Apple 现在似乎愿意在某些条件下发布该信息。

    • 随着一些摩托罗拉 PowerStack(已订购)及其即将到来的所有者在 94 年底加入该项目,Linux/PowerPC 移植版本的 PowerStack 部分开始整合在一起。一个针对 PPC 的 GNU 交叉开发工具集已经启动。

    • 非常感谢 Northwest Nexus (info@halcyon.com) 通过提供作者的网络访问来支持 Linux/PowerPC 项目。还要感谢 MicroApl Ltd. (London, UK (MicroAPL@microapl.demon.co.uk )),PortAsm 汇编器源代码翻译器的制造商,感谢他们的贡献。

虚拟啤酒厂之旅总结

Jim Paradis 很好地总结了这一点

在一个新平台上实现任何操作系统都是一项重大任务。将 Intel 版本的 Linux 发展到今天的程度,已经花费了数十甚至数百程序员-年。此外,虽然内核移植是一项重要的工程,但它只是操作系统移植的一小部分。毫不奇怪,非 Intel 版本的 Linux 需要一段时间才能出现。

你们都可以随意享用我们提供的样品。什么?杯子空了?当然是空的,这是这类啤酒厂的风险之一。好啤酒需要时间。不过,我们希望您喜欢这次虚拟啤酒厂之旅。请记住,在品尝 RISC 移植版本时,请不要屏住呼吸!

Joseph L. Brothers,CCP,CDP,是摩托罗拉无线数据集团的高级软件工程师,他在那里使用 noweb 文学编程工具编写分布式工程生产力软件。在他自己的时间里,他自愿担任 Linux/PowerPC 项目的 PowerStack 任务协调员。

加载 Disqus 评论