桌面战争

作者:Michael K. Johnson

Linux 用户不仅可以运行原生的 Linux 程序,还可以通过模拟程序运行许多 DOS、SVR3 Unix、SVR4 Unix 和 Macintosh 程序。 很明显,这使得 Linux 成为一个更通用的系统。 也有许多旧电脑的模拟器,包括 Apple ][、Commodore 64 等,这些模拟器对某些人很有用,当然对于喜欢玩旧电脑游戏的人来说也很有趣。 到目前为止,这个列表中一直缺少的是对 MS Windows 程序的真正支持。 这很遗憾,因为 MS Windows 的应用程序比地球上任何其他计算平台都多。 不仅应用程序很多,而且它们广为人知,人们知道如何使用它们。

有些人认为 MS Windows 已经赢得了桌面战争,并且在可预见的未来不会有竞争。 我认为这种假设有点为时过早,原因有二。 首先,尽管 MS Windows 拥有 更多 的应用程序,但其中许多应用程序的质量不是特别高。 第二个,也是更重要的原因是,即使你承认 API 战争 输给了微软,也并不意味着微软赢得了 桌面 战争。 也就是说,即使所有应用程序都只为 MS Windows 编写,MS Windows 也不会是你唯一的“操作系统”选择——可以模拟 MS Windows。 甚至有可能比微软做得更好。

同样重要的是不要失去客观视角; Linux 已经可以运行一些应用程序,无需任何 MS Windows 模拟,并且 Linux 在许多重要领域已经取得了巨大的成功。

Wine

大多数 Linux 用户都知道,大约两年半以来,一个程序员团队一直在稳步开发一个名为 Wine 的项目,它本质上是 MS Windows 的近乎克隆版本,旨在在 X Window 系统下运行。 长期以来,Wine 只能运行像 Windows 纸牌这样简单的程序,当一些旁观者在纸牌游戏可以运行后等待了 整整一个月,发现 Microsoft Word 仍然 无法在 Wine 下工作时,他们就断定 Wine 已经死了,并向 Linux Usenet 新闻组的所有读者宣布了他们惊人的推论——尽管他们忽略了包含他们有偏见的逻辑——这导致其他一些读者相信了他们。

Wine 开发人员坚持不懈地努力,毫不气馁,Wine 已经慢慢成熟,现在正接近普遍可用性。 虽然 Wine 的每个新版本仍然是“仅供开发人员使用”,但一些“真正的”基于 MS Windows 的应用程序开始工作了。 这并不意味着它们已经有用——例如,Wine 尚不支持打印——但这确实意味着 Wine 开发人员仍在稳步取得进展。

TWIN

一些 Linux 用户听说一家名为 Willows (www.willows.com) 的新公司正在开发一个名为 TWIN 的商业编程库,该库在几周前刚刚发布为 BETA 软件。 它允许开发人员为 MS Windows 编写应用程序,然后将其转换为 Unix 和 Linux 系统上的本机应用程序(保持 MS Windows 的外观和感觉),以及未来(根据 Willows 的说法)Macintosh 和 OS/2 系统。

虽然 TWIN 明确表示不作为 MS Windows 模拟器销售——“……我们目前不提供 [或] 支持“现成”产品(如 MS WORD 和 EXCEL)的纯模拟功能作为独立功能。”——但它们确实提供了运行开发人员需要的基于 MS Windows 的二进制程序的能力,包括 DLL 和 EXE。 他们的常见问题解答中指出:“我目前正在运行 Microsoft Office 应用程序,Word、Excel 和 Project。 这些是我们验证该库的最佳方法……”

既然 Willows 的 TWIN 已经发布,那么将其与 Wine 进行比较是合适的。 最重要的区别在于,Willows 表示 TWIN 仅用作开发人员工具,并且二进制功能旨在帮助开发人员。 相比之下,Wine 的主要目的是成为最终用户运行其常规 MS Windows 应用程序的工具,并且随附的开发人员库几乎是副产品(但这并不意味着它是低质量或无用的)。 Wine 仅在 Intel 平台上运行,而 TWIN 具有“二进制模拟”,也可以在其他平台上运行。 TWIN 可以使用标准的 MS Windows 打印机驱动程序,而 Wine 仍然缺少打印支持。 TWIN 是商业软件,而 Wine 是免费软件。 TWIN 更加完整。

Willows 还参与了一项努力,旨在制定 MS Windows 编程 API 的 ISO 标准、非专有版本。 Windows 应用程序编程接口,或 APIW,是一个公开可用的标准,它不仅将帮助 Willows、Sun 和其他希望克隆 MS Windows 编程接口的公司,还将以两种方式帮助 Wine 项目

  • 通过提供更多关于 MS Windows 编程接口如何工作的文档(微软在这方面一直没有提供帮助,并且拒绝参与 APIW 规范制定过程),Wine 程序员将需要更少的试错来确定疑点,从而使他们的工作更轻松,并且

  • 通过帮助标准化 MS Windows 应用程序的工作方式,APIW 有可能使 Wine 更容易支持更多应用程序。

为了向 Linux 用户提供基于 MS Windows 的应用程序,人们正在竭尽全力。 在 Linux DOS 盒 DOSEMU 上工作的程序员团队已经能够在 Linux 下的 DOSEMU DOS 盒中运行 MS Windows 3.1。 这不是特别稳定,并且需要内核补丁,但是对于那些需要 立即 运行基于 MS Windows 的应用程序,不想重新启动,并且具有足够技术理解的人来说,这是一个选择。

桌面并未放弃

几点(或者更确切地说,是要点)

  • 即使没有 MS Windows 应用程序支持,Linux 在桌面领域也是成功的。

  • 对 MS Windows 应用程序的支持很重要,但并非至关重要。

  • MS Windows 应用程序支持并未被忽视,但尚未准备好用于“黄金时段”使用。

加载 Disqus 评论