Mac OS X:第一印象
我们有可能找到比 Linus Torvalds 更不一样的人吗?我们被告知乔布斯脾气暴躁、卑鄙、无情、肆无忌惮,并且虐待与他一起工作和为他工作的人。我们被告知要信任他,风险自负。而且,我们被告知他拥有一个大约有中国那么大的自我。那么,看在上帝的份上,我们为什么还要报道苹果电脑公司的新技术呢?
原因很简单:关注竞争对手始终是一个好主意。不要被愚弄,认为 Linux 面临的唯一竞争对手在雷德蒙德。当然,苹果电脑公司一直值得关注。作为一家公司,苹果是 IBM PC 时代之前的唯一幸存者,它比大多数公司更了解桌面计算和易用性,并且它(对 GNOME 和 KDE 的好人们表示敬意)始终生产出最好、最可用的 GUI。
苹果最新的操作系统产品名为 Mac OS X。这个名字本身就暗示了它的两个主要组成部分。Mac OS X 是构建在 UNIX 基础之上的 Macintosh 界面。它的基础是一种名为“Darwin”的技术,这是一种基于 Mach 微内核的开源实现。是的,你没有眼花缭乱——苹果已经开源了一项核心软件技术。特别有趣的是,Darwin 开源开发团队正在为英特尔芯片技术准备内核版本;仅此一点就应该敲响一些 Linux 的警钟)。目前可用的实现,正式捆绑为“Mac OS X 公开测试版”,目标是 PowerPC 微处理器。
在深入细节之前,是时候坦白了,是时候坦诚相待了。我是 Macintosh 的忠实粉丝,自从我妻子在 1993 年给我买了一台 Mac Color Classic 以来,我就一直是它的粉丝。与大多数兼职、居家 Mac 用户一样,工作是另一回事,我一直被“要求”在办公室使用 Wintel 平台。直到最近,我才设法安排好事情,让我的办公桌下的盒子上印着彩虹色的水果标志(以及“G3 Server”字样)。我很伤心地说,Mac Color Classic 现在与我的姐夫住在一起,取而代之的是一台无名的 Wintel PC。除此之外(为了我的罪孽),我正在使用 Borland 的 Delphi 技术编写和维护一套基于 Windows 的应用程序,因此 Windows 98 必须保留下来以支持这项活动。为了支持我的其他活动(教学、研究和写作),我划分了 Wintel 的硬盘驱动器并安装了 Linux Mandrake。
我的大部分 Linux 时间都花在 Perl、vi 和 LaTeX 上。大约 18 个月前,我在当地的报刊亭拿起 1999 年 4 月刊的《Linux Journal》后开始接触 Linux。我之前使用 UNIX 的经验是在 80 年代后期在大学里使用它。(我像躲避瘟疫一样躲避 Windows NT。)
直到最近,并且与 Mac OS 9 结合使用,我还在办公室运行 LinuxPPC 发行版。由于我使用所有这些不同的环境来完成不同的事情,我不断地重启我的家庭和办公室 PC,在 Linux、Mac OS 9 和 Windows 98 之间来回切换。有一段时间,我在 LinuxPPC 之上运行 Mac-On-Linux 技术,这使我可以从 Linux 内部访问我的 Mac 应用程序。虽然 Mac-On-Linux 是一项令人印象深刻的技术,但它对我来说有点太不稳定,无法经常使用,所以我停止使用它。但是,它在我的技术列表中,将在以后的某个日期重新审视。
现在你知道我来自哪里了,我可以回到 Mac OS X 了。苹果电脑公司在 2000 年秋季宣布发布 Mac OS X 公开测试版,并以 29.95 美元的价格向 Macintosh 社区提供该技术。他们的开发人员计划的成员免费获得了操作系统的副本,以及一张开发人员工具 CD。这就是我获得副本的方式,因为我怀疑我是否愿意为测试苹果最新操作系统的特权付费。我不介意为完整版产品(如 Linux 发行版)付费,但为测试版产品收费……拜托了,苹果!制作和运送所有这些 CD 确实需要成本;但肯定很容易让 Mac OS X 免费下载吧?
在我甚至可以开始安装之前,一个小小的震惊在等着我。CD 上的 README 文档告诉我,Mac OS X 需要 128 MB 的 RAM 才能安装!我差点从座位上摔下来。我只能希望这是因为 Mac OS X 是测试版软件,并且此特定版本附带了大量调试代码。我的办公室 Mac 不是那么旧,但它只安装了一个 64 MB DRAM 芯片。幸运的是,校园里一位友好的计算机技术员允许我将我的单条 64 MB 芯片换成 128 MB。完成更换后,我一切准备就绪。
正如预期的那样,在我的 G3 上安装过程很顺利——毕竟,苹果同时提供硬件和软件。用户几乎不需要配置信息或知识。我被要求以图形方式选择安装 Mac OS X 的磁盘分区(我已经使用苹果的 SCSI HD Setup 实用程序预先配置好了)。然后,我按照提示提供了我的互联网详细信息,以及默认的登录 ID 和密码。其他一切都已处理完毕。正是在安装过程中,我第一次意识到这是一个新事物。首先,正在安装的组件之一被描述为“BSD 子系统”。这对于普通的 Macintosh 用户来说可能意义不大,但我对正在发生的事情有了一个大致的了解。
安装完成后,快速重启后出现了 Mac OS X 登录屏幕。我登录后,几秒钟后,Mac OS X 桌面迎接了我。苹果将这项新的界面技术称为“Aqua”,它看起来非常惊艳(请参阅屏幕截图)。
只有当你使用 Aqua 一段时间并探索其众多功能后,你才会意识到它实际上是一件多么出色的软件工程作品。当然,Aqua 不是 X Window System,它是苹果专有技术和专有苹果代码。从 Mac 用户的角度来看,Aqua 非常像他们习惯的 Mac OS 桌面,但一些差异使其感觉有点奇怪。当然,登录 Mac 对于大多数长期使用 Mac 的人来说将是一种全新的体验。另一个主要的震惊是 Mac 现在有了命令行!终端实用程序允许您访问 /bin/tcsh shell 以使用——正如 Mac OS X 在线帮助系统中所述,“BSD 实用程序”。这是我的第一个目的地,因为每次我遇到一个新系统时,我都会检查我的基本工具列表:Perl、vi、LaTeX 和 ispell。
在命令行输入 perl -v 会产生 Perl 5.6.0 版权声明。酷。vi 编辑器始终存在,但我还是检查了一下,果然,Mac OS X 安装了 vi。在命令行输入 latex 和 ispell 会产生“命令未找到”错误消息。糟糕。
快速访问 www.tug.org 很快将我引导到 teTeX 站点,我能够下载适用于 Mac OS X 的 TeX 和 LaTeX 的预编译二进制文件。访问 www.gnu.org 为我带来了一份 ispell 的副本,经过两天的尝试,我仍然无法从源代码构建它。我甚至下载并安装了 GNU 文本实用程序,以便手头有一个更兼容的 sort 实用程序,但这并没有帮助我完成安装。作为一个失败者,我最终放弃了,并记下在未来的某个日期再来尝试。
当然,易于安装只是易用性等式的一部分(并且所有 Linux 发行版——或许除了 Rock Linux——都在这方面取得了巨大进步)。另一个需要考虑的领域是易于管理。为了说明这一点,我将讲述最近的一次经历。
在工作中,我的一门课程涉及向二年级本科生教授计算机网络。在课程中,我让我的学生(有时是第一次)接触 Linux、vi、Perl 和所有常用的互联网开发技术(HTML、CGI、JavaScript 等)。在过去几年中,为了支持我的实践课程,我的学生登录到我们学院的中央 Linux 服务器之一。不幸的是,我永远无法确定系统是否会按照我喜欢的方式配置,所以今年我考虑在我的 LinuxPPC 系统上设置帐户,让学生登录到我的办公室系统。设置多个用户非常容易;我只是使用 adduser 和 passwd 命令创建了 15 个帐户。(我知道,我可以使用 GNOME 中更友好的用户控制面板,但我已经在命令行了)。然后我通过 /etc/inetd.conf 文件打开了 Telnet。到目前为止一切都很容易和直接,而且它奏效了。
现在我的学生可以访问我的机器了,我认为让他们在系统上创建一些个人 HTML 页面会很好。具体来说,我想让任何人使用 /~username URL 语法访问这些页面,其中“username”是系统上用户的名称(Apache 会将其解析为该用户的主目录)。不知道该怎么做,我找到了我可靠的 Running Linux,第 3 版,并阅读了关于设置和配置 Apache 的章节。
我了解了一些关于 Apache 的知识,包括我认为需要了解的所有知识,关于 UserDir 指令的信息,以及关于 srm.conf、httpd.conf 和 access.conf 配置文件的一些材料。在更改了我认为必须更改的内容后,我重新启动了 Apache,新设置已启用。然后我浏览到我的机器,并尝试访问新创建的个人网页,但我收到了权限错误。我重新阅读了关于 Apache 的页面,调整了一些设置,但再次收到权限错误。
我处理此类问题的常用策略是离开去做其他事情一段时间,思考问题,然后再回来再试一次。不幸的是,这次,我的常用策略没有奏效。我仍然收到权限错误,所以我认为问题可能出在 Apache 运行的用户上(在一个配置文件中将其设置为 nobody)。我对此进行了调整,以尝试查看它是否可以在不同的用户下工作,但没有成功。我调整了我的系统组设置,也没有奏效。
我以前的一位同事将这种工作模式称为“猜测和摆弄”。在这个阶段,我猜够了,也摆弄够了。基本问题是,像大多数 Linux 新手一样,我只知道足够危险的知识,所以我感到害怕,并决定任何更多的猜测和摆弄都可能危及我的系统。我尽可能地重置了一切,然后就把它放在一边了。但让我困扰的是,我无法让它按照我想要的方式工作。我也不确定这是我的错、Apache 的错还是 LinuxPPC 的错。
然后,仿佛魔术般,Mac OS X 邮件出现在我的办公桌上。在安装了大约十分钟后(相当无情地覆盖了我的旧 LinuxPPC 分区),我使用图形化的“多个主机”实用程序重新创建了 15 个学生帐户。在 Mac OS X 命令行上找不到 adduser 命令。然后我通过单击“网络服务”控制面板中的复选框打开了 Apache(随操作系统一起安装)。我使用 Sherlock 图形搜索工具搜索了 Apache 配置文件,找到后,确定 Apache 正在 public_html 目录中查找个人网页。我在自己的帐户登录下创建了该目录,然后创建了一个五行 HTML 页面。从另一台机器浏览,我访问了在我的 Mac OS X 计算机上运行的 Web 服务器,并要求它显示 /~barryp,然后……我的五行网页出现了,紧随其后的是我得意洋洋的“Yes!”。它默认情况下就能按照我想要的方式工作。毕竟,如果您的系统上有多个用户,并且您在同一系统上运行 Apache,那么您的用户可能想要发布自己的网页,这难道不是很有道理吗?我知道我认为哪两种设置更容易使用……
当然,在我转移到 Mac OS X 后不久,我看到了一篇文章,讨论了使用 Comanche 实用程序配置 Apache,这可能有助于我解决 LinuxPPC 的问题。但话又说回来,也可能没有。我还收到了第 78 期《LJ》,其中包含一篇关于 Apache 的精彩文章,但晚了一周才帮助我解决 LinuxPPC 问题(那时我已经转移到 Mac OS X 了)。
在底层,Mac OS X 运行的是基于卡内基梅隆大学 Mach 3.0 和 FreeBSD 3.2(它本身源自 BSD 4.4-Lite)的内核。没有提到的是,这是苹果公司首个融入直接继承自 NeXT Computer 收购案的技术的操作系统产品。
Mac OS X 与 Linux 截然不同。Linux 是一个单内核,除了厨房水槽之外的所有东西都在内核模式下运行,而 Mach 是基于微内核的,因为它限制了可以在内核中运行的进程为一个小子集。大多数其他一切都在用户模式下运行。与其引发另一场关于哪种设计是正确方向的 Tanenbaum/Torvalds 辩论,不如就此打住,两者都是操作系统的有效设计架构,两者都有其优点和缺点,并且都可以工作。与以前版本的 Mac OS 相比,最大的技术差异在于,当它进行多任务处理时,基本操作系统现在是真正的抢占式的,而不是协作式的。这直接归因于 Mach 微内核的使用。对 POSIX、NFS 和 BSD TCP/IP 网络的支持也作为标准配置提供。
标准 Aqua 应用程序包括苹果自己的电子邮件程序、一堆 QuickTime 应用程序、常用的实用程序,以及——请注意——微软的 Internet Explorer 5 (IE5)。适用于 Mac OS X 的 IE5 存在错误且速度缓慢,我讨厌它。幸运的是,对“旧版”Macintosh 应用程序(在 Mac OS X 中称为“Classic”应用程序)的支持是标准配置,它的工作方式有点像 Mac-On-Linux,只不过旧版应用程序在 Aqua 桌面上运行,而不是在单独的 Aqua 窗口中运行。这项技术运行良好,我能够毫无问题地使用 Netscape Communicator、ClarisWorks 和所有常用的 Mac OS 9 应用程序。
当然,并非一切都一帆风顺。在短短两周内,我已经遇到了两次崩溃;只有拨动电源开关才能让我重新上线。由于这是“测试版”软件,我愿意暂时接受这一点。为了苹果的利益,他们确实警告不要在生产环境中使用测试版 Mac OS X。一个主要的烦恼是 Mac OS X 似乎对软盘一无所知。当我将软盘滑入我的 G3 前面的插槽时,什么也没发生。我期望,就像地球上所有其他 Mac 用户一样,看到我的软盘的图形图像出现在 Mac OS X 桌面上。什么也没有。我在帮助中搜索了“floppy”这个词,但一无所获。更令人恼火的是我对我的 ZIP 磁盘的处理。当将 Mac OS 格式化的 ZIP 磁盘插入 G3 的 ZIP 驱动器时,它会出现在桌面上,但是当我滑入 PC 格式化的 ZIP 磁盘时,Mac OS X 什么也没做。这在旧系统下运行得非常好,并且应该是 Mac OS X 的一部分。我祈祷苹果在下一个版本之前修复它。
至于史蒂夫·乔布斯,嗯,他一直致力于改变世界。借助 Mac OS X,他心爱的苹果电脑公司再次有机会做到这一点。苹果在 70 年代后半叶发布 Apple II 时改变了我们所知的世界,然后在 1984 年推出原始 Macintosh 时再次改变了世界。从那时起,库比蒂诺就一直很平静;诚然,PowerBook、iMac 和 iBook 等技术很酷,但它们实际上只是对 1984 年原始 Mac 的渐进式改进。Mac OS X 有潜力成为比苹果过去生产的任何其他操作系统都更重要的产品,但该公司必须迅速行动。具体来说,苹果应该开源 Aqua 代码,并公开支持将其技术移植到 Linux 内核。Linux 和 Aqua 结合在一起,将在英特尔平台上成为无与伦比的组合。世界统治,确实如此。想象一下雷德蒙德的恐慌。
那么,Mac OS X 是否意味着我的办公室计算机上的 LinuxPPC 终结了?就目前而言,尽管我在 ispell 方面遇到了问题,但答案是“是的”。Mac OS X 为我提供了办公室所需的一切;它既是 Mac 又是 UNIX/Linux。我简直太幸福了。在家里,我目前仍然坚持使用 Windows/Mandrake 组合,但至少当我对 Windows 98 的挫败感达到顶峰时,我可以启动进入 Mandrake。而且,我在 Mandrake 上使用的所有工具,与我在 LinuxPPC 上使用的工具一样,与我现在在 Mac OS X 上使用的工具 100% 兼容。当然,能够避免办公室里的所有这些重启对我来说是一个主要的优势。
我已经运行 Mac OS X 几个星期了,我将在办公室继续运行它,直到 2001 年 5 月我的测试版许可证到期。让我们希望苹果在那之前发布完整的 1.0 版本,并希望苹果将其免费提供给所有来者,包括开发人员和用户。
Paul Barry (paul.barry@itcarlow.ie) 在爱尔兰卡洛理工学院 (http://www.itcarlow.ie) 教授计算机网络课程。他热爱 Mac,也热爱 Linux——真是不可思议!