Linux?在 Macintosh 上?使用 Mach?
那么,为什么选择 Linux?
还需要问吗?Linux 是自由 Unix 克隆用户中最受欢迎的选择。Linux 提供 Unix 功能,例如真正的多任务处理、虚拟内存、共享库、按需加载、TCP/IP 网络和许多其他高级功能。Linux 的版本已被移植到各种平台,包括其他基于 PowerPC 的计算机,这使得 Power Macintosh 的移植变得更加容易。
Linux 社区庞大、不断增长、活跃且积极参与。这个社区促进了软件和思想的开发与交流,使其成为新的操作系统产品的绝佳环境。而且,最后但并非最不重要的一点是,Linux 受 GNU 通用公共许可证保护,确保苹果的贡献不会被用于其他供应商的专有产品中。
您可能会问自己,“我为什么要在一个 Power Macintosh 上运行 Linux 呢?” 毕竟,Linux 社区绝大多数面向英特尔硬件。为什么要改变呢?
首先,这对苹果和苹果爱好者来说是好事。如上所述,Linux 为 Macintosh 开辟了一个新的市场。许多研究人员和科学家可能会发现 Macintosh 是一个有用的工具,但他们无法证明购买第二台计算机系统的合理性。如果他们的车间运行 Unix,那么 Macintosh 就无法融入——直到现在。
大学实验室和宿舍是另一个目标。随着 MkLinux 的可用性,用户可以从两全其美中获益:使用 Linux 进行研究和批量数据处理,使用 MacOS 进行图形应用程序、桌面出版等等。因此,苹果可能会卖出机器,但您却获得了乐趣。想想所有那些酷炫的 MacOS 应用程序正等待着被探索,更不用说在 MkLinux 下使用 Power Mac 的多媒体功能的乐趣了。
与苹果的传统保持一致,高度集成的 Power Macintosh 硬件大大简化了 Linux 系统管理。Power Mac 作为完整系统交付。因此,Power Macintosh 通常可以“开箱即用”地运行 MkLinux,而无需添加卡、芯片和其他组件。由于 Power Mac 使用诸如 NuBus 或 PCI 之类的智能总线,因此操作系统可以处理硬件配置问题,例如 DMA 寻址和中断向量。
事实上,正如我们在贸易展上告诉人们的那样:“一旦您安装了它,MkLinux 实际上就是 Linux。当然,您必须放弃一些东西——DMA 向量、IRQ 设置、跳线、不兼容的 BIOS 代码——但基本上,它就是 Linux……”
虽然苹果电脑公司的 Microkernel Linux for the Power Macintosh(MkLinux)已经开发了几年,但它向公众开放的时间并不长。苹果公司关于 MkLinux 的首次公开声明是在自由软件基金会的首届自由再发行软件会议(1996 年 2 月)上发布的。
苹果宣布它正在与开放软件基金会(OSF;现已与 X/Open 合并成立开放组织)合作,将 Linux 移植到 Mach 基础,并将 Mach 移植到各种 Power Mac 产品。该项目由苹果电脑公司发起、赞助和资助。
OSF 提供了 Mach 3.0 微内核(由卡内基梅隆大学和 OSF 研究所开发)以及工程团队来移植代码。(一篇关于 MkLinux 的 OSF 论文——“Linux on the OSF Mach 3 Micro-kernel”——在会议上发表。)
苹果公司 1996 年 2 月的公告预测 MkLinux 的第一个端口将在 1996 年夏季上市。出乎意料的是,MkLinux 的第一个公开发行版,开发者版本 1 (DR1),于 5 月上市。MkLinux DR1 之后是 DR2,于 1996 年 9 月发布。DR3 计划于 1997 年早春发布。
MkLinux 版本倾向于包含大量更改。必须获取数百兆字节的新材料或更改材料,无论是通过 FTP 还是 CD-ROM,通常需要完全重新安装。因此,完整的 MkLinux 版本发布频率相对较低(仅当由足够大或足够基本的一组更改保证时)。
在版本发布之间,苹果通过 FTP 发布次要更新。一些更新提供错误修复;其他更新引入新的或实验性功能。在任何一种情况下,它们都旨在与特定的 MkLinux 版本一起使用。
此时,您可能想知道 MkLinux 到底是什么。它是否运行 MacOS Finder?它是否运行 X11?我所知道和喜爱的所有命令都可用吗?就此而言,这个名字本身怎么发音?
首先要明确的是:MkLinux 的官方发音是“em-kay” Linux,但通常发音为 McLinux。这符合 Linux 的传统,Linux 本身允许以多种方式发音。(Li-nucks、Li-nooks、Lie-nooks 甚至 Lee-nooks 都很常见。)
无论如何,MkLinux 是 Linux 的完整移植版本,具有全套 GNU 工具和附件,包括 X11R6,它在 Mach 微内核之上运行。因此,Mk(微内核)Linux。由于 MkLinux 实际上就是 Linux,因此它不运行 Finder——目前还没有。另一方面,它确实运行几乎任何您能想到的 Linux 命令。(当然,需要基于英特尔硬件的命令是不可能的。)
Mach 微内核提供了一个抽象层,其他操作系统可以在其上移植。它还提供多处理器支持、内核级线程支持、分布式和集群计算以及其他有趣的功能。通过将 Mach 移植到 Power Macintosh,苹果为各种研究甚至商业操作系统在平台上运行扫清了道路。
Mach 3 微内核由卡内基梅隆大学开发。从那时起,它得到了研究所的大量增强。MkLinux 当前使用 Mk6.1,它是 Mach 3.0 微内核的变体,但有使用更高级微内核的前景。
Mach 微内核仅执行一小部分功能。它处理进程间通信、低级 I/O(即,访问 SCSI 和其他总线)、内存管理和调度。更高级别的功能(文件系统、网络等)由一个或多个“服务器”执行。Mach 服务器是用户模式进程,它们提供操作系统“个性”的全部或一部分。它们不直接与底层硬件对话;一般来说,没有 Mach 进程这样做。相反,它们通过“消息”与 Mach 微内核通信。
因此,当 cat 执行 write 系统调用时,中断会被 Mach 微内核捕获。然后将相关信息打包到消息中并传递给相应的服务器。然后可能会发生几个操作、中断和消息,仅涉及微内核和相关服务器。只有当 write 完成(或失败)后,微内核才会重新启动 cat 进程。
在 MkLinux 中,与几乎所有基于 Mach 的系统一样,OS 个性由“单服务器”提供。这是 Mach 术语,指的是处理给定操作系统所有个性的单个进程。FSF 的 Hurd 也基于 Mach,它使用“多服务器”设计,少量进程分担操作系统职责。顺便说一句,MkLinux 项目团队对将 Hurd 合并到 MkLinux 中表示出一些兴趣。
MkLinux 使用的服务器看起来很像标准的 Linux 内核。事实上,它是 Linux 内核的副本,经过修改以使用 Mach 的低级功能。在前两个开发者版本中,MkLinux 服务器基于 Linux 1.2.13。然而,DR2 的更新以及新的 DR3 都基于 Linux 2.0.23。此内核提供了几个新功能,以及性能和稳定性的改进。
操作系统开发人员会很高兴知道基于 2.0 的 MkLinux 允许同时运行多个服务器(例如,Linux 或 Hurd)。这对于任何希望调试新服务器的人来说都非常方便。
有了这种能力,您可以启动调试版本以及生产版本。如果(或当)调试版本崩溃时,系统会继续工作,从而为您节省大量时间和麻烦。不仅如此,您还可以像调试任何普通应用程序一样简单地启动 gdb 并调试第二个服务器。
操作系统精英(阅读,一些内核黑客)可能不同意,但我们其余的人都知道,内核,无论多么出色,都是不够的。我们需要更多:shell、实用程序、窗口系统以及所有其他我们已经爱上的小玩具。别担心;MkLinux 拥有您在 Linux 中喜爱的一切。
默认的 MkLinux 安装主要基于 Red Hat Linux 发行版,并大量使用 Red Hat Package Manager (RPM),包括全套用户命令以及完整的 X11R6 窗口系统。许多其他命令在 RPM 存档中可用,无论是在安装 CD 上还是通过匿名 FTP。
事实上,一个完整的 MkLinux 系统绝不是小巧或简陋的。即使是开发者版本也相当可观。(安装指南建议使用 16 MB 的 RAM 和至少 500 MB 的专用磁盘空间。)
我们不得不承认,苹果和 GNU 项目过去存在分歧。我们也不能说苹果已经放弃了专有软件的想法。因此,令许多人惊讶(甚至令一些人震惊)的是,苹果公开资助一个开发 MkLinux 并将其移植到整个 Power Macintosh 系统家族的项目。
不仅如此——除了有机会销售更多 Power Macintosh 系统(确实是一个强大的诱因),苹果并没有从 MkLinux 移植中获得任何利润。苹果认可的 CD-ROM 的分发和销售由第三方处理(例如,Prime Time Freeware)。
完全符合最佳自由软件礼仪,苹果正在根据适当的(GPL、OSF 等)许可证发布其所有 Linux 和 Mach 更改的源代码。事实上,整个发行版都可以通过匿名 FTP 获得。鼓励第三方镜像该站点,创建自己的 CD-ROM 发行版,或与朋友分享该软件。这是最好的自由软件。
通过将 MkLinux 移植到 Power Macintosh,苹果为新市场打开了大门,但这只是故事的一半。为了向 Linux 社区的英特尔导向致敬,苹果还确保了 MkLinux 的英特尔端口可用。事实上,MkLinux/英特尔端口是首先开发的,并且完全由苹果资助。英特尔端口正在跟踪 Power Macintosh 版本;虽然您可能不会在苹果的网页上显眼地看到它,但它仍然非常活跃。
通过也将 MkLinux 移植到英特尔平台,苹果为英特尔和 Power Macintosh 用户打开了大门,让他们可以试用彼此的系统、交换软件和想法,并普遍扩大 Linux 世界。例如,我们预计 PCI 驱动程序软件和多媒体应用程序方面会有一些有价值且有趣的交流。
好吧,您几乎被说服了。您了解了苹果为什么要资助 Linux 项目,并且您已经开始相信 Power Macintosh 上的 Linux。但它仍然被称为开发者版本。MkLinux 有多完整?是否支持所有 Power Macintosh?有什么,也许更重要的是,没有什么?以下摘要描述了 MkLinux DR2 版本以及截至 1997 年 1 月初发布的所有更新。
前两个 MkLinux 开发者版本在基本操作系统和命令集方面相当完整,但在某些领域仍然不足。如上所述,这些版本基于 Linux 1.2.13,这是一个有些过时的 Linux 服务器版本。然而,最近添加了 Linux 2.0 支持(官方从 1996 年 12 月更新开始)。MkLinux 内核更改已发送回 Linus Torvalds,以包含在 Linux 的下一个修订版中;我们相信从现在开始我们将保持同步。
从一开始,MkLinux 就具有完整的 SCSI 支持,包括挂载(并最终从其启动)可移动磁盘(如 Iomega 的 Jaz 驱动器)的能力。它支持连接到主板视频或 HPV 和 A/V 卡的各种显示器。它包括用于 DMA 和调制解调器控制的串行支持,以及对 SLIP 和 PPP 连接以及以太网的支持。X11R6 支持各种多按钮指点设备,只要它们符合苹果的桌面总线 (ADB) 协议。
当然,还有一些东西仍然缺失。音频和软盘支持仍在开发中。串行支持尚未扩展到打印机。在撰写本文时,尚不支持多显示器;事实上,尚不支持 NuBus 或 PCI 总线卡。共享库即将就绪;这些应该可用于开发者版本 3。
令许多早期采用者失望的是,MkLinux 缺乏对大多数当前 Power Macintosh 型号的支持。DR1 和(发货时的)DR2 仅支持基于 Nubus 的、基于 PowerPC 601 的系统(Power Macintosh 6100、7100、8100 系列、Power Computing 100 和 120 克隆机)。由于这些 Power Macintosh 型号在 MkLinux 首次发布前不久就已停产,因此用户无法购买用于 MkLinux 的新系统。
然而,在 DR1 发布后,苹果 MkLinux 团队发布了一项调查,要求 MkLinux 用户(和潜在用户)社区帮助选择下一组要移植的机器。毫不奇怪,最受欢迎的选择是最新的、速度最快的机器系列——基于 PCI 总线的、基于 PowerPC 604 芯片的系统(Power Macintosh 7200、7500、8500、9500 和克隆机)。
事情总是比希望的要长;DR2 于 9 月发布,仍然没有 PCI 支持。然而,我们承诺在圣诞节前提供支持,并设法信守了我们的承诺。12 月中旬的 DR2 更新包含(测试版)对上述基于 PCI 的机器的支持,融入了 2.0 Linux 服务器,并受到了长期等待且耐心的 MkLinux 粉丝的热烈欢迎。
随着 PCI 支持的顺利进行,该团队可以将精力集中在支持剩余的系统(主要是 Performas 和 Powerbooks)上,并开始考虑即将到来的 CHRP(通用硬件参考平台)系统。唯一困难的决定将是先实施哪一个。
不幸的是,虽然许多机器表面上看起来很相似(并且苹果的系统软件团队在使它们看起来相同方面做得非常出色!),但它们内部实际上都略有不同。所以,这可能需要一段时间……但请放心,该团队致力于及时在所有 Power Macintosh 平台上提供 MkLinux。
MkLinux 最初是 Brett Halle 的梦想,当时他是苹果现代操作系统部门内核团队的经理。在苹果副总裁 Ike Nassi 的祝福下,Brett 开始赞助少数 OSF 研究所的员工将 Mach 3.0 微内核和 Linux 移植到第一个 Power Macintosh 平台。在项目开始几个月后,第一位苹果工程师 Michael Burg 加入进来,兼职从事 MkLinux 工作。
在 DR1 发布前不久,苹果公司认为该项目值得更多支持,并将两位苹果员工(Halle 和 Burg)分拆成他们自己的专门团队。现在的苹果杠杆技术集团最多有五名员工,研究所有三名工程师,并希望未来能实现合理增长。
对于我们焦急且不断增长的 MkLinux 粉丝群体来说,不幸的是,这仍然是一个非常小的团队。当我们专注于移植到下一系列 Power Macintosh、保持我们的网页和 FTP 站点更新以及管理整个项目时,许多有趣的发展都“资源有限”。幸运的是,这是 Linux,其中“一切都由其他人完成”。MkLinux 开发者角是一个由 MkLinux 程序员组成的小而勇敢的团队,他们愿意承担(并完成)需要的项目。我们的开发者角为我们提供了 X11R6 端口、NetaTalk、MkLinux 的 GNU-step、HFS 文件系统实用程序以及许多其他有趣且理想的附加功能。我们很高兴将这些开发人员视为 MkLinux 团队的成员。
最后但并非最不重要的是,我们感谢所有勇敢地下载并安装每个新更新的 MkLinux 用户。在像 MkLinux 这样的小型内部项目中,我们无法访问苹果的专用软件测试组织。我们已尽力在发布之前测试和调试我们的开发者版本和更新,但我们依靠我们的用户社区在各种网络环境和硬件配置中对我们的版本进行压力测试。我们对所有这些人提供的有益评论、参与意愿、有说服力的错误报告和明智的电子邮件印象深刻。
MkLinux 团队目前拥有超过 15 名注册开发人员、约 4000 名注册用户和 5000 名邮件列表订阅者。(我们承认一些邮件列表订阅者也是注册用户。)如果您尚未加入我们的团队,我们很乐意欢迎您。
MkLinux 的当前版本始终可以通过匿名 FTP 和 CD-ROM 获得。我们的 FTP 站点 ftp://ftp.mklinux.apple.com/pub/ 在全球近二十个站点镜像。苹果认可的 CD-ROM,印有 MkPenguin(Linux 企鹅,坐在 Power Mac 上),可以通过邮购从出版商 Prime Time Freeware 获得 (http://www.ptf.com/, info@ptf.com)。
由于 Prime Time Freeware 在 Unix 和自由软件出版方面的经验,他们被选为出版苹果公司 MkLinux 的参考版本。《MkLinux:Power Macintosh 的微内核 Linux》在苹果 MkLinux 团队的协助和支持下编辑而成,将包含 MkLinux 的教程介绍以及各种有趣且有用的参考资料。到本文付印时,参考版本应该已经出版。
该产品由一本书和两张 CD-ROM 组成,将包含关于 Linux、Mach、MkLinux 和 Power Macintosh 的各种参考资料。《MkLinux:Power Macintosh 的微内核 Linux》是 MkLinux 的唯一参考著作,其中包含许多其他单一来源无法获得的材料。它将在许多技术和专业书店以及通过出版商的直接邮购提供。
访问我们的网站 (www.mklinux.apple.com) 并四处看看,然后加入一些邮件列表。我们强烈建议您加入 mklinux-announce 和 mklinux-answers;这些是经过审核的列表(数量少,相关信息量大),让用户及时了解 MkLinux 社区中的重要事件。其余(主题)组为您提供与其他 MkLinux 开发人员和用户互动、分享想法、问题和解决方案的方式。在网上见!
Vicki Brown 自 1983 年以来一直从事各种 Unix 系统的工作,其中大部分时间在苹果电脑公司工作。目前是 MkLinux 项目团队的成员,她将自己的工作职责描述为消防员、网络园丁和舞台管理员。Vicki 在业余时间喜欢阅读、关注《星际迷航》和巴比伦 5,以及与配偶和四只猫共度时光。可以通过 vlb@apple.com 联系到她。