Motif(s) for Linux
Usenet Linux 新闻组中最常被问到的问题之一是“Linux 的 Motif?”。为什么?为了回答这个问题,我应该首先解释一下 Motif 是什么,以及为什么 Linux 社区对它有如此大的需求。
Motif 是一组由开放软件基金会 (OSF) 拥有版权的编程库和头文件,它允许程序员使用 Motif 的“外观和感觉”创建 X 程序。与 Athena 工具包 (libXaw) 类似,Motif 工具包 (libXm) 也基于 Xt 工具包(X “Intrinsics”),但 Motif 工具包具有独特的 3D 外观,使其看起来更加赏心悦目。Motif 还包括一个名为 Mwm 的窗口管理器,从 2.0 版本开始,它允许虚拟桌面,这是早期版本的 Motif 用户长期以来一直想要的功能。许多人认为 Motif 和 Mwm 是同一件事,但 Mwm 实际上只是 Motif 的一小部分。Motif 被 IBM 和 HP 等主要 Unix 供应商接受为标准的 X 工具包,因此 Linux 用户也希望在 Linux 平台上使用 Motif 似乎是很自然的。
即使您从不打算开发 Motif 应用程序,在您的系统上安装 Motif 也会很有用。访问 Linux Motif 发行版附带的 Motif 共享库,将允许您编译许多免费提供的、支持共享 Motif 库的 Motif 应用程序,从而生成比您可以从 Internet 检索或从 CD-ROM 复制的静态链接二进制文件小得多的二进制文件,并占用更少的内存。
这是 Linux 用户经常问的另一个问题。此处评测了两个更流行的 Linux 版 Motif 发行版:GUI Corporation 的 SWiM Motif 2.0 和 Metro Link Inc. 的 Motif 2.0。
Metro Link 的 Linux 版 Motif 2.0 包括五个 3.5 英寸磁盘、快速安装指南和 OSF Motif 2.0 用户指南手册。用户需要预先安装 XFree86 3.1.1 库,并且至少需要 8 MB RAM 才能正常工作。磁盘中包含 Motif 手册页、OSF/Motif 演示程序的源代码、预编译的二进制文件、Mwm、共享库和静态库、头文件、Uil 编译器、Mrm、一些额外的实用程序(例如像素图编辑器、xbm 浏览器实用程序)以及大量彩色像素图。Metro Link 还包括 OSF 构建 Motif 2.0 应用程序所需的 Xpm 像素图库。
只要您按照快速安装指南操作,安装就非常简单。只需从磁盘中提取文件,解压它们,您就可以开始使用了。该产品占用 20 到 30 MB 的磁盘空间,具体取决于您是否希望安装手册页的源代码。我选择不安装,因为也提供了预格式化的 cat 页面,这样可以节省一些磁盘空间。
安装完所有内容后,我开始编译 Mosaic、xmcd 以及网上提供的一堆其他免费的 Motif 应用程序。一切都很顺利,xmkmf 与 Metro Link 新的 Imake.rules、Motif.rules 和 Motif.tmpl 文件完美配合。没有出现任何问题。我还决定构建包含的 OSF/Motif 演示程序,这也进行得很顺利。我非常高兴。我实际上预计会出问题,但从未发生过。Mwm,窗口管理器,也运行流畅,尽管在 8 MB 内存的机器上可能并非如此。在 8 MB 内存的机器上编译 Motif 应用程序可能也会非常慢,但在我的 16 MB 内存的机器(推荐的 RAM 容量)上,一切都运行良好。Metro Link 通过电话、传真和电子邮件为 Motif 2.0 提供免费技术支持,但我无法告诉您支持有多好,因为我从未需要使用它。我从未遇到过他们产品的任何问题。
接下来是 GUI Corporation 的 SWiM Motif 2.0。主要分销商是 ACC Corp.(美国)和 Lasermoon Ltd(欧洲)。SWiM Motif 2.0 通过 CD 发货。还包括 OSF Motif 2.0 用户指南手册和安装指南。与 Metro Link 的发行版类似,SWiM 也包括 Mwm、共享库和静态库、头文件、Uil 编译器、Mrm、手册页以及 OSF/Motif 演示程序的源代码。此外,SWiM CD 还包括所有 OSF Motif 2.0 文档的源代码,包括 Motif 2.0 程序员手册、X11R5 和 ELF 共享库(以及 X11R6 共享库)、完整的 XFree86 3.1.1 发行版、XFree86 3.1.1 和 SWiM Motif 2.0 的实时文件系统,以及从不同地方收集的超过 300 MB 的 Motif 程序存档。该发行版占用的磁盘空间与 Metro Link 的大致相同,内存要求也相同。
安装 CD 后,我开始安装 SWiM。我拥有的安装指南是针对软盘安装的,这是基于 SWiM 之前的非 CD 发行版。CD 顶层目录中的 README 文件实际上没有给出任何安装说明,但在浏览子目录后,我设法找到了主发行版所在的目录。一路上,我遇到了包含 X11R5 和 ELF 库的目录,因此我假设默认安装使用的是 X11R6 (XFree 3.1.1) 库。我是对的。然后我运行了 Install 脚本,一切都很顺利,直到脚本因尝试将某些内容解压到当前目录而失败,因为该目录是只读的,因为它位于 CD 上。作为安装的最后一步,SWiM 应该解压一个文件 (mwm_make.tar),然后使用它之前安装的共享 Motif 库,从该文件的内容编译 mwm。由于我位于只读文件系统上,因此自然会失败。我查看了 Install 脚本,然后在 /tmp 中解压了 mwm_make.tar 文件,并在那里构建了 mwm。这奏效了,然后我完成了安装。
然后我启动了 X 和 Mwm,并开始编译一些程序。一切都完美而顺利地运行。SWiM 附带一个 mxmkmf 程序(以及适用于 X11R5 用户的 mx5mkmf),它在使用 Imake 文件编译 Motif 程序时取代了 xmkmf。为了与 mxmkmf 一起使用,SWiM 还在 /usr/lib/X11/config 中安装了新的 Imake.tmpl、Motif.tmpl 和 Motif.rules 文件,默认情况下,这些文件用于基于 X11R6 的发行版。X11R5 替换文件也安装在单独的子目录中。我没有运行 xmkmf,而是运行了 mxmkmf 来编译演示程序。一切都按计划进行。
后来,当我尝试使用 uil 编译器生成一些演示程序所需的 uid 文件时,我确实遇到了一些问题。似乎 SWiM 在安装过程中安装了一个基于 X11R5 的 uil 二进制文件,即使该发行版是为基于 X11R6 的系统设置的。由于我找不到基于 X11R6 的 uil 二进制文件,我不得不获取一些 X11R5 共享库才能运行 uil 编译器——这不是什么大问题,但我更希望拥有一个 X11R6 二进制文件。除此之外,以及一些安装问题,SWiM 运行良好。Lasermoon Ltd 在欧洲也为 SWiM 提供免费技术支持。
SWiM 和 Metro Link Motif 2.0 之间的一个主要区别是,虽然 Metro Link 的共享 Xm 库需要与 Xpm 库链接,但 SWiM 的则不需要,因为 Xpm 库已编译到 SWiM 的 Xm 库中。我提到这个区别是因为使用 SWiM 编译的共享二进制文件在 Metro Link 系统上无法工作,反之亦然,这是由于共享 Xm 库之间的差异造成的。
在撰写本文时,Linux 社区正从当前的 a.out 格式转向 ELF 共享库支持。SWiM CD 包括 ELF 共享库,但 Metro Link 发行版不包括;由于 ELF 库仍在开发中并且变化非常快,Metro Link 已决定等到 ELF 稳定并在更广泛地使用后再发布带有其 Motif 2.0 软件包的 ELF 库。在您阅读本文时,此更改可能已经发生。
[InfoMagic 刚刚发布了 Moo-Tiff,它将在未来一期的 Linux Journal 中进行评测——编者注]
Metro Link Motif 2.0 Metro Link Incorporated,电话:(305) 938-0283,或发送电子邮件至 sales@metrolink.com
SWiM Motif 2.0 美国 - ACC Corporation Inc.,电话:(800) 546-7274,或发送电子邮件至 info@acc-corp.com
欧洲 - Lasermoon Ltd,电话:+44 (0) 329 826444,或发送电子邮件至 info@lasermoon.co.uk
Bogdan Urma 在康奈尔大学学习物理学和计算机科学,并希望明年获得理学学士学位。他自 1993 年以来一直在使用 Linux,并且花费了太多时间在上面。他欢迎您通过电子邮件发送评论至 burma@newton.ruph.cornell.edu,或通过普通邮件发送至 Linux Journal。