书摘:使用 Windows 应用程序与 JDS
编者按:以下摘自 《探索 JDS Linux 桌面》,这是一本由 Tom Adelstein 和 Sam Hiser 合著,并由 O'Reilly and Associates 出版的新书。
您现在已经熟悉了 Java 桌面系统的核心程序。尽管您可以看到 JDS 上可用的许多 Linux 应用程序的强大功能,但您可能仍然需要 Windows 计算机上使用的软件。JDS 可以通过以下方式运行 Windows 程序:
远程桌面协议 (RDP) 客户端,连接到 Windows 终端服务器
原生 Linux Windows 模拟器
虚拟机服务器,在 GNOME 桌面上运行
我们将逐一 بررسی 这些方法,重点关注原生 Linux Windows 模拟器的使用。
过去,在软件和操作系统之间存在冲突的人们会对其硬盘进行分区并双启动。如果他们需要使用 Visio 绘制流程图,他们会启动进入 Windows,但如果他们运行一套企业应用程序,他们会启动回到 Linux。人们认为双启动既乏味又低效。
有几种解决方案可以帮助人们一起使用 Windows 和 Linux 软件;其中大多数都可以在 Linux 端找到。在本章中,我们将向您介绍主要的解决方案,并为一种有前途且流行的解决方案提供安装细节:CodeWeavers 的 CrossOver Office。
我们将仿真定义为一个计算机系统对另一个计算机系统的模仿(模拟)过程。模仿程序或设备(模拟器)接受相同的数据,执行相同的程序,并实现与其模仿的系统相同的结果。
JDS 配备了一个内置客户端,可以连接到 Microsoft 服务器以运行 Windows 应用程序。该协议称为 RDP,旨在为在 Windows 服务器上运行的基于 Windows 的应用程序提供通过网络进行远程显示、键盘和鼠标连接以及打印流。打印流、键盘输入和鼠标点击在服务器和终端仿真软件之间通过网络传输。每个用户登录并仅看到他或她自己的会话,服务器透明地管理该会话,独立于任何其他客户端会话。
JDS 客户端与 X Window 系统和 GNOME 桌面一起运行。Microsoft 终端服务将 Windows 桌面和基于 Windows 的应用程序交付给各种桌面,包括通常不运行 Windows 的桌面。通过仿真,这允许同一组应用程序在不同类型的桌面硬件上运行。
图 1 显示了原生 JDS 客户端,它连接到 Windows 终端服务器 (WTS)。这使您可以在无需双启动的情况下运行 Linux 桌面和 Windows 程序。图 2 描述了允许 JDS 运行 WTS 应用程序的架构。

图 2. JDS 和 Windows 终端服务器之间使用 RDP 的交互
WTS 在大型组织中使用,因为其成本非常高。除了硬件、Windows Server 许可证和客户端访问许可证 (CAL) 的成本外,每个用户都需要 WTS 许可证,并且每个应用程序都需要许可证才能供希望运行该应用程序的人员使用。RDA 的价值主张在于使用瘦客户端解决方案的用户。
我们在本章中讨论的其他解决方案为个人用户提供了访问 Windows 应用程序的途径,而且成本远低于此,并且性能同样出色。
WINE 是最常用的开源解决方案,用于在 JDS 上运行 Windows 软件。WINE 是 Windows 应用程序编程接口 (API) 的开源实现。Windows 应用程序在 WINE(接口)上运行,而 WINE 又在 Linux 上运行。这产生了一个环境,其中 JDS 和其他 Linux 系统可以与原生 Linux 应用程序并排运行 Windows 应用程序。
例如,WINE 允许您在 MS Word 和 Evolution 之间共享桌面空间,重叠它们的窗口,启动它们,并利用您一直使用的桌面和窗口管理功能来最小化它们。例如,剪切和粘贴工具以与在两个 JDS 应用程序之间相同的方式在两个应用程序之间移动文本。
由于 WINE 是用 Linux 代码编写的,因此它在 JDS 中原生运行;因此它消耗的内存很少,并且不需要大量投资。Windows 软件的性能不会降低。事实上,有些人报告说,在 WINE 上运行的 Windows 应用程序比在 Windows 操作系统上运行的同一应用程序提供更快的响应速度,因为 Linux 是一个如此高效的多任务操作系统。
WINE 未与 JDS 捆绑在一起。如果您想使用它,您必须添加它。您可以从其源代码安装它,并从命令行运行它(打开一个终端窗口,如第 5 章所示),或者通过可用的商业实现之一运行它。
并非所有在 Windows 上运行的应用程序都可以在 WINE 上运行。许多应用程序需要特殊支持,并且 WINE 正在不断升级以支持越来越多的应用程序。目前,可以在 JDS 上运行的最流行的应用程序(同时利用 WINE)是 MS Office 应用程序、Lotus Notes、Photoshop、Quicken 和 Visio。
WINE 不需要 Microsoft Windows 即可运行,因为它是一个替代实现,由 100% 无 Microsoft 代码组成,并通过 Linux 内核运行。WINE 提供了用于将 Windows 源代码移植到 JDS 的开发工具包 (Winelib) 和程序加载器,允许许多未经修改的 Windows 程序在 JDS 上运行。但是,运行专有的 Windows 应用程序确实需要软件供应商的许可证——获取未经许可的软件副本并将其安装在您的系统上是非法的,无论您使用的是 WINE 还是其他任何东西。
WINE 提供:
支持运行许多最流行的 Win 95/98、NT/2000/XP、Windows 3.1 和 DOS 程序
基于 X11 的图形显示,包括远程显示到运行 X 的其他系统
DirectX 游戏支持
支持声音和替代输入设备
通过 PostScript 接口驱动程序打印到标准 Unix/Linux PostScript 打印服务
支持串行调制解调器设备
TCP/IP 网络
支持扫描仪、CD 刻录机等
现在,让我们来看看 WINE 的商业实现以及其他像 WINE 一样不需要双启动的解决方案。
EMC 公司拥有并分发此软件包,该软件包在 Linux 上模拟虚拟机。可以在 www.vmware.com 上找到相关信息。
VMWare 与您当前正在运行的操作系统并行运行一个 Intel x86 兼容的操作系统。您可以使用 JDS 并同时在同一屏幕上的虚拟机中运行 Windows XP、Windows 2000 或 Windows NT。事实上,您可以同时运行许多不同的操作系统,所有这些都在原生操作系统之上。这对于在不同操作系统上进行密集的软件测试非常有用。
VMWare 需要商业许可证,大约花费 200 美元。您还需要想要运行的 Windows 版本的许可副本。您可能还会遇到性能下降,因为 VMWare 会在您的操作系统上创建一个虚拟计算机。
位于德克萨斯州奥斯汀的 NeTraverse 拥有并销售名为 Win4Lin 的产品。NeTraverse 产品来自主要由原始 SCO 集团开发的名为 MergeTM 的技术。NeTraverse 允许您在 Linux 中运行 Windows 95/98/ME 版本。与 VMWare 相比,这具有性能优势。Win4Lin 的成本约为 100 美元,您还需要想要运行的 Windows 版本的许可证。更多信息可以在 netraverse.com 上找到。
TransGaming 提供了一个 WINE 分支,可以实现游戏解决方案。该公司的目标是与最成功的游戏开发商合作,实现最受欢迎游戏的多平台发布,并通过在最终用户希望玩游戏的平台上提供游戏来丰富最终用户的游戏体验。这些平台包括 Linux 和 JDS。WINEX 支持诸如 Marble Blast Gold、《模拟人生》和 Kohan 等游戏。尽管 JDS 用户希望能够玩游戏,但该主题需要比我们在此处提供的更广泛的介绍。更多信息可以在 www.transgaming.com 上找到。
CrossOver Office 使用 WINE 来实现 Windows API(应用程序编程接口)。API 让平台提供应用程序(如 Microsoft Office)理解并可以在其上运行的挂钩。
CodeWeavers CrossOver Office 的优势包括:
低成本(家庭用户 39.95 美元)
原生 Linux 代码
在 Linux 网络浏览器中增加了功能
Windows 应用程序易于安装
能够从主 JDS 菜单启动应用程序
集成:应用程序在 JDS Windows 中打开,并且看起来像是 Linux 原生的
易于使用
该产品可以从 Internet 下载或在 CD-ROM 上购买。在图 3 中,您可以看到 CrossOver Office 的安装是多么简单。要安装它,我们打开了一个终端窗口,然后输入了
ls
以显示包含 CrossOver Office 的 .rpm 包的名称(在我们的例子中,它是 cxoffice-2.1.0-1.i386.rpm)
su Password: (root password typed here) rpm -i cx
然后按 Tab 键,以便我们再次想起完整的名称。
最后我们输入完整的名称并按下回车键开始安装。
一旦安装了 CrossOver Office,Windows 应用程序将直接与 JDS 上的桌面集成。在图 4 中,您可以看到 CrossOver 菜单,我们从“启动”菜单的“应用程序”>“CrossOver”中选择了它。现在,您可以通过选择“应用程序”>“CrossOver”>“Office 设置”来安装更多 Windows 应用程序。

图 4. CrossOver Office 菜单
另请注意,您的 Windows 应用程序从主菜单启动。例如,在图 4 中,“Windows 应用程序”菜单项显示在中心菜单的底部。
CrossOver Office 为 Linux 浏览器提供 Windows 插件。这些插件可在 JDS 上运行并与 Mozilla 集成。您还可以添加 Microsoft Office 查看器,以比较(例如)StarOffice 文档与 Microsoft 文档的外观,然后再将其发送出去。
CrossOver 插件还与桌面集成,让您可以使用已安装的 Microsoft Office 中的任何查看器或应用程序打开 Word、Excel 或 PowerPoint。您可以直接从您的邮件客户端打开附件。CrossOver Office 使用原生 Windows 插件。
例如,Apple 为 QuickTime 制作了一个原生 Linux 插件,但它不支持许多网站使用的电影格式。该格式称为 Sorenson 电影格式。借助 CrossOver Office 插件,您可以使用所有 QuickTime 电影格式查看材料。
安装 CrossOver Office 后,请注意安装脚本会将菜单添加到 Gnome 应用程序菜单。此时,选择“Office 设置”以首次运行配置脚本。初始配置完成后,您会看到类似于图 5 中的屏幕。

图 5. 准备安装 Windows 应用程序
当您选择“新软件”下的“安装”按钮时,您会看到类似于图 6 中的屏幕,其中列出了许多可供选择的 Windows 程序。

图 6. Windows 软件列表
如果您没有看到列出的程序,您可以选择“安装不受支持的软件”。例如,您可以尝试从 winscp.sourceforge.net/eng 下载一个名为 WinSCP 的程序。它是在 Windows 格式下开发的,在 JDS 上与 CodeWeavers 完美配合,并允许您在 JDS 发行版上拥有可视化的安全 FTP 和安全复制。
在我们选择 Internet Explorer 6 并单击“下一步”后,CodeWeavers Office 下载并打开了 DCOM 95 进行安装。我们接受了该选项,并打开了一个许可协议供我们接受或拒绝。图 7 显示了在我们选择安装 Internet Explorer 6 后得到的结果。该图显示了如果您决定遵循此示例,您将看到的协议的屏幕截图。

图 7. 安装 Internet Explorer 的第一个许可协议
CrossOver Office 安装了 DOM95 并下载了浏览器和 Internet 工具的安装程序。在图 8 中,您可以看到 Microsoft IE 浏览器的最终用户许可协议 (EULA)。CodeWeavers 程序下载并逐步完成了安装过程,无需用户干预。

图 8. Internet Explorer 的最终用户许可协议
CodeWeavers 使用的安装程序包含了非 Microsoft 代码。Internet Explorer 和各种 Internet 工具、Outlook Express 以及各种组件的检索过程与 Windows 安装期间的检索过程类似。一旦我们接受了 Microsoft EULA,CrossOver Office 就会向我们显示图 9 中所示的屏幕。我们选择了“典型”组件集,安装过程继续进行。

图 9. Internet Explorer 的选项选择屏幕
有趣的是,CodeWeavers Office 安装对于 Microsoft Windows 用户来说似乎很熟悉。如果您购买现成的 Windows 应用程序,请注意安装步骤与在 Windows 中相同,即使它发生在原生 Linux 代码中。一旦所有 Internet Explorer 代码下载完成,CrossOver Office 就会开始安装每个组件,其中仅包含原生 Windows 代码。(参见图 10。)

图 10. 模拟 Windows 重启
完成安装后,CodeWeavers 会模拟 Windows 重启,如图 11 所示。我们不必关闭 JDS;CrossOver Office 继续安装,如图 9 所示。

图 11. 重启后安装屏幕
与图 5 相比,图 12 中显示的 CrossOver Office 设置屏幕现在指示已安装了四个程序。第一个条目是 Microsoft Internet Explorer 6 SP1 和 Internet 工具。

图 12. CrossOver Office 设置状态
安装完成后,我们可以从桌面选择 Internet Explorer 并运行 Google,例如。结果如图 13 所示。

图 13. 在 WINE 中运行的 Internet Explorer
在图 14 中,您可以看到 Internet Explorer 在原生 Linux 代码中运行。然而,真正的考验仍然存在。Internet Explorer 是否可以显示像 Fox News 这样复杂的网站,并使用 Windows Media Player 提供视频和音频内容?

图 14. 运行 Windows Media Player 7.0 的 Internet Explorer
我们导航到 Fox News 网站并选择 Windows Media Player 来观看视频。该网站弹出一个屏幕,要求我们下载 Macromedia Flash 和 Windows Media Player 7 版本。我们照做了,Internet Explorer 在运行时安装了每个插件,之后开始播放视频。图 14 显示了在我们安装插件并观看视频后的屏幕。我们选择了停止按钮来截取屏幕截图。
在本章中,我们讨论了在 JDS 上使用为 Microsoft Windows 平台编写的软件。过去,人们在弥合 Linux 和 Windows 平台之间的差距方面遇到了困难。存在多种解决方案,允许您在 Linux 上运行 Windows 应用程序而无需重启。在第 10 章中,我们将讨论 JDS 应用程序,例如 Acrobat Reader、Real Player 和 GNU 图像处理程序 (GIMP)。这些应用程序为 JDS 增加了额外的功能,用于在原生 Linux 中处理便携式文档格式 (PDF)、音频和视频格式以及图像编辑,而无需仿真。
Tom Adelstein 与妻子 Yvonne 居住在德克萨斯州达拉斯,并在纽约市 Hiser+Adelstein 总部担任 Linux 和开源软件顾问。他是 《探索 JDS Linux 桌面》 和即将出版的 《Essential Linux System Administration》 的合著者,后者将由 O'Reilly and Associates 出版。自 1999 年初以来,Tom 一直在撰写关于 Linux 的文章和书籍。
Sam Hiser 是一位 GNU/Linux 顾问和迁移专家,常驻纽约市。他是 Sun Microsystems OpenOffice.org 开发项目的志愿者营销项目负责人和顾问,直到该项目达到 2000 万次下载量。Hiser 与 Adelstein 一起创立了 JDShelp.org,这是一个社区网站,为全球 Java 桌面系统用户提供支持和资源。