立即运行 Windows 应用程序
在 Linux 下使用 Microsoft (MS) Windows 应用程序有三种方法。它们是:
Wine,可从 ftp://tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/ 获取;DOSEMU,可从 ftp://tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/ 获取;DESQview/X (DV/X),可从 QuarterDeck 软件获取
Wine 相当出名,优秀的 DOSEMU 也是如此。然而,在研究这些方法时,我发现 Usenet 读者对它们当前的功能和状态存在广泛的误解。我当然支持 Wine 和 DOSEMU 团队将 MS Windows 应用程序带到 Linux 的努力,但认为其中任何一个“已准备好投入实际应用”的印象只会阻碍他们的努力。恼怒的用户抱怨这些产品,正如其开发者自己指出的那样,非常不完整。
例如,文件 dosemu-0.60.2/dos/README.Windows 在标题 Windows 3.1 保护模式 下包含此警告:警告!!!警告!!!警告!!!警告!!!警告!!!危险,威尔·罗宾逊!!!这尚未完全支持,并且存在许多已知错误!大型程序几乎肯定无法工作!!!如果您尝试这样做,请准备好系统崩溃!!!
该文档继续列出了一些问题;简而言之,它尚未准备好用于严肃用途,例如大多数工作环境。花点时间完整阅读该 README,然后再进行实验。我发现它是准确的。
Wine 的状态也类似:发行说明声明 Wine 目前仅供开发人员使用,您不应期望您的应用程序能够工作。因此,Linux 用户只剩下两种选择:使用 DOS 重启系统或使用速度较慢的 DV/X。与网络隔离的 Linux 用户倾向于认为使用 DOS 重启系统还可以,但那些需要网络服务或 Linux 的强大功能的用户应定期考虑使用 DV/X。
DV/X 可能对大多数 LJ 读者来说是陌生的,本文的重点是向您介绍它。以上三种可能性按速度顺序列出——Wine 在完成时肯定是最快的。它们按“成功”的反向顺序列出——DV/X 现在能够运行几乎所有大型 MS Windows 应用程序。因为我愿意为访问其他 Linux 服务(同时运行 MS Word 或 MS Excel)而付出速度代价,所以我已经愉快地使用 DV/X 几个月了。我期待着 Wine(或 DOSEMU)允许我运行 MS Word 而无需速度代价的那一天。
DV/X 是 QuarterDeck 为将 DOS 带入网络计算而提供的解决方案(请参阅 ftp.qdeck.com:/pub 或 www.qdeck.com)。QuarterDeck 的 DOS 软件系列包括著名的 QEMM 内存管理器和 DESQview,最好的 DOS 多任务处理程序。DESQview 几年前扩展为一个网络程序,即 DESQview/X。这款软件产品通过 X Window 界面将 Unix 程序带到 DOS,并为联网的 Unix 主机提供带有 X 的 DOS 程序。DV/X 最有趣的功能之一是它能够为联网的 X boxes 提供 MS Windows 应用程序。该软件的上市有所延迟,可能是由于创建用于翻译 MS Windows 和 X 的程序存在困难。它现在以 2.0 版本提供,并且有了很大的改进。
要使用 DV/X 运行 MS Windows 应用程序(例如 Word 6.0、Excel 5.0 和 PowerPoint),除了您的 Linux 机器之外,还需要一台专用 DOS 计算机。我在家中使用旧系统,一台配备 12 兆字节 RAM 的 386DX,在工作中使用一台备用的 486DX2 机器。网络连接是必要的;我使用了成对的 SMC Ultra 和 3COM 3C503 以太网卡。DOS 系统不需要快速或强大的显卡,因为 Linux 机器上的 X 显示将是您控制 MS Windows 的地方。DOS 机器至少需要 8 MB 的 RAM,因为 DV/X 很容易占用 5 MB,而 MS Windows 需要更多。QuarterDeck 在 DV/X 的基本成本中提供了网络软件,但它不是基于 TCP/IP 的。Novell TCP/IP 堆栈需要额外付费,并且曾多次免费提供作为购买诱因。
启动并运行您的 Linux 系统,并激活网络连接(请参阅 NET-2 HOWTO 文档)。在 DOS 机器上安装 TCP/IP 堆栈后安装 DV/X(您需要在 DOS 端安装 ODI 驱动程序以用于 TCP/IP 堆栈)。只需按照提示(和 DV/X 手册)进行操作,并根据您的网络进行调整。在隔离的网络上,您可能希望允许无密码访问,以便于使用。一旦 Linux 运行网络并且安装了 DV/X,请运行一些 ping 检查以确保通信正常工作。在专用双计算机网络或拥挤的 10-BaseT 集线器上,我获得了 1 到 2 毫秒的 ping 时间。尝试一些大型 FTP 传输来准确测试网络;配置正确后,隔离的网络应以每秒数百千字节的速度运行。
一旦您认为您的“网络计算机”已准备就绪,请在 DOS 机器上启动 DV/X,并在 Linux 端启动 Xterm。您需要在 Linux 端使用 root 以外的用户名才能简化登录。任何用户名都可以通过将 UID 和 GID 设置为 0 来拥有 root 的“权力”——这对于在文件传输期间覆盖保护可能很方便。显然,如果您的网络以任何方式连接到外部世界,请不要考虑这样做。此外,如果您这样做,您将丢弃所有文件系统和内存保护,这些保护可以保护您免受程序错误、病毒(Linux 下未记录存在病毒)和简单错误造成的损害。
在 Linux Xterm 中,键入
$ xhost +dosboxname $ rsh dosboxname fileman
其中 dosboxname 是 DV/X DOS 计算机的 IP 地址别名(您需要在 Linux 计算机上的 /etc/hosts 中设置它)。片刻之后,您应该会得到一个新的 X-Window,其中包含非常有用的 DV/X 文件管理器。它类似于旧的 Norton Commander,这是一个外观和感觉已被无数次复制的界面。使用 DV/X 文件管理器,您可以登录到联网主机、启动多个文件传输或执行例行的磁盘整理任务。如果文件管理器不起作用,请查看显示的任何消息,并查看手册、Usenet、朋友、支持热线,甚至可能是作者...
从文件管理器(在“导航”单选按钮下)以 root 以外的用户身份登录到 Linux 计算机。在文件系统中工作,直到找到 X 服务器字体路径中的目录之一(我使用了 /usr/X386/lib/X11/fonts/misc)。请注意,文件管理器不显示符号链接,因此您需要实际的路径名。在 DV/X 端,操作到 DVX 目录下的 BDF 子目录。使用二进制传输将所有字体文件复制到 Linux 端(除非您永远不想远程运行 DOS)。检查文件管理器对话框两侧的文件大小是否完全相同。完成后,您需要在您选择的 Linux 字体目录中运行 mkfontdir 并重启 X 服务器。
现在您可以使用以下命令运行远程 DOS
$ rsh dosboxname dos
您可能需要再次设置 xhost 访问列表。如果没有传输的字体,远程 DOS 进程可能会使您的 X 服务器崩溃。现在您已经完成了这些初步步骤,您就知道您的“网络计算机”正在工作。是时候使用 MS Windows 了。DV/X 有许多有趣的功能,例如远程程序启动器;花一些时间探索它们。
最初,您应该从配置为仅使用简单 VGA 显示驱动程序的 MS Windows 开始。如果您遇到困难,让 MS Windows 运行起来完全是他们产品支持人员的问题。当然,如果 MS Windows 在 DOS 计算机上无法运行,则它在 DV/X 下也无法工作。在联网的 MS Windows 运行起来后,如果您的 X 显示器有空间,您可以获得 1024x768 的屏幕尺寸。由于 DV/X 正在转换视频命令,因此您不需要实际的显卡驱动程序。相反,您可以使用 Windows “Super VGA 1024x768 256 色大字体”驱动程序。阅读 DV/X 文档,了解有关设置 WinX 以获得最佳效果的信息。要在 Linux X 下运行 MS Windows,您可以在 xterm 中键入以下内容
$ rsh dosboxname winx
片刻之后,您应该能够从 MS Windows 启动 Solitaire 以外的应用程序。您甚至可以启动另一个 MS Windows 进程(如果您有足够的内存),该进程与第一个进程完全独立(请小心)。您仅限于标准模式,但到目前为止,我还没有遇到任何我需要的真正需要增强模式的应用程序。您需要做的第一件事之一是使用控制面板颜色工具(在“主”窗口中)更改 MS Windows 颜色方案。否则,您可能会有看不见的字体!我建议从“亚利桑那”颜色方案开始,而不是默认方案。
TANSTAAFL:天下没有免费的午餐。如上所述,使用 DV/X 在 Linux 下获取 MS Windows 应用程序会产生速度损失。这是相关计算机之间网络连接的直接结果(这可能是管道中最慢的部分)。但是,对于许多用途来说,速度损失可能可以忽略不计。与 ISA 总线速度相比,10 Mbit/s 以太网速度并不快:ISA 比原始以太网快 5 倍。正在出现 100 Mbit 以太网卡,其成本约为 10 Mbit 卡的 2 倍。100 Mbit 卡应使 DV/X MS Windows 性能相当于 ISA 显卡,这对于许多用户来说是完全可以接受的。这是最严重的缺点,但需要在权衡替代方案后才能确定——简而言之,您的里程可能会有所不同。
正如我所提到的,速度差异可能可以忽略不计——您甚至可能不会注意到它。我仍然无法以千分之一的以太网速度打字。我发现 DV/X MS Windows 的主要用途是键入大量文本,而无需考虑文本布局或格式问题。另一个主要用途是执行 30 分钟以下的任务;在这两种情况下,速度损失都不明显,或者可以通过更换操作系统的时间来抵消。其余的问题都比较小。
DOS ODI 驱动程序可能存在一些问题。我注意到 16 位 Ultra 卡的性能不如 8 位 3C503 卡。我认为 Ultra ODI 驱动程序可能是原因。您在 DOS 计算机上使用的网络堆栈也可能会有所不同——我从 Novell TCP 堆栈中看到了最好的结果。现在是 RTFM 时间。
您可能会看到一些颜色变化。我使用 fvwm 作为 X Window 管理器,有时 MS Windows 窗口在页面之间切换时会拾取 fvwm 寻呼器的颜色。通常,下一个对话框会清除颜色。为了在更高的分辨率下容纳 MS Windows,也可能会重新排列您的 X 工作区。Alt-F4 快捷键将不再关闭 MS Windows 应用程序。相反,在标准 fvwm 设置下,它会将窗口图标化。双击菜单栏的角落仍然可以很好地终止应用程序。在文件传输期间,DOS 文件名限制和 Unix 文件名之间通常存在问题。
经过几个月的实验后,我经常使用 DV/X——事实上,我上个月启动了 DOS,才意识到我已经 6 周没有运行 DOS 了。DV/X 与 MS Windows 一样稳定(实际上,更好一点,因为 DESQview 以类似于 Linux 的方式隔离任务)。速度慢的云层中也有一些亮点。DV/X 文件管理器是一个非常有用的工具;我们有一台 Apollo 工作站经常使用它。DV/X 可以提供远程打印服务,使 Linux 端易于配置。哦,是的,我使用了我的网络来协助准备这篇文章。见图 1。
我已经使用 DV/X 和 Linux 设置了两个网络;其中大部分“开箱即用”。我已经工作中使用 Linux 10 个月了,并且很少被迫返回 DOS。事实上,在几个场合,Linux 应用程序为任务提供了比不太稳定的 DOS 等效程序更好的答案。源代码的可用性和团队编程自然会产生更优秀的程序!
Ron Bardarson (ronb@lenin.svl.trw.com) 现在玩 Linux;十一年前,他正在破解 ZCPR3(他编写了它的 Make 实用程序,MAKE.RCP)。网络计算和研究有趣的数字应用分散了他对工作、孩子和跳舞的注意力。