与我互操作
是的,弗朗索瓦?看起来确实像 1980 年代的东西。那是因为它就是。你说得对,我的朋友。没错,我仍然在我的 Linux 系统上运行,但效果非常怀旧,不是吗?是的,今晚的菜单上有几个例子,我想我们的朋友们会很高兴的。你说什么,弗朗索瓦?啊,他们已经来了!
朋友们,你们好。欢迎来到 马赛尔餐厅,这里是 Linux 世界最伟大的酒窖和最精致的 Linux 烹饪的所在地。你们的味蕾在 anticipation 中颤动,不是吗?那么请允许我忠实的侍者带您到您的座位,我们将立即查看菜单。弗朗索瓦,请到酒窖去。把 1989 年的佩萨克-雷奥良葡萄酒拿上来——它将与即将到来的美食完美搭配。
根据定义,互操作性意味着某种技术能够轻松地与其他技术或某个软件与另一个软件协同工作。我现在告诉你们,我的朋友们,对机器方面的这种关注让我想要沉浸在浓郁的焦糖布丁中来缓解我的悲伤。想起来,无论结果如何,我都可能会这样做,不是吗?
我刚才说到哪里了,我的朋友们?啊,是的。软件与他们所说的“湿件”——与机器打交道的人——协同工作又如何呢?Linux 如此出色地工作的原因在于,它为我们提供了其他环境无法提供的选择。这些选择是如此非凡,以至于我们甚至可以选择以我们熟悉和感到舒适的早期操作系统的友好面孔和风格来运行我们的 Linux 系统。毕竟,重要的是内在,不是吗?
您可能正在运行一个华丽的新 GNOME 或 KDE 桌面环境,但您仍然渴望涉足您年轻时的桌面,无论是 Amiga、旧 Macintosh 还是甚至是 1995 年左右的那个无处不在的桌面。在任何情况下,您都不希望放弃 Linux 桌面的强大功能,但外观是另一回事。
当您启动 GNOME 或 KDE 桌面时,您正在 X Window System 图形管理器(或简称 X)之上运行窗口管理器。在大多数 Linux 系统上,这是 XFree86 服务器。如果您的系统启动时是文本登录,并且您使用 startx 启动 X,那么您就可以开始实验了。如果您的桌面以图形登录启动,您可能希望切换回文本登录以体验这些方法。从您的桌面注销,切换到您的虚拟控制台之一(使用 Ctrl-Alt-Fn,其中 Fn 是从 2 到 6 的功能键),并以 root 身份登录。现在输入 init 3,图形登录管理器将退出。有很多方法可以做到这一点。您的图形登录屏幕甚至可能有一个选项可以切换到控制台模式。
启动所有桌面的主程序是 xinit。startx 程序只是一个调用 xinit 的脚本(带有一些标志和参数)。不过,您可以像这样重启您的 KDE 窗口管理器
xinit /usr/bin/startkde
如果您以这种方式进行操作,请确保始终指定窗口管理器的完整路径。您可以做的另一件事是在您的主目录中创建一个 .xinitrc 文件,其中包含一行
exec startkde通过这种方式,您可以使用经典的 startx 命令启动您的窗口管理器。事实上,经典正是我们正在谈论的,我的朋友们——这款 1989 年的红葡萄酒绝对是经典之作。弗朗索瓦,请为我们的客人倒酒。在您享用饮品的同时,让我向您展示我们的第一款经典桌面,Takashi Hasegawa 的 MLVWM,它是 Macintosh-Like Virtual Window Manager 的缩写。首先访问他的网站,获取最新的源代码并构建它
tar -xzvf mlvwm091.tar.gz cd mlvwm091 xmkmf -a make make install当您在那里时,您可能还想下载迷你图标集(实际上来自 FVWM 桌面)并解压它们
cd /home/natika/pixmaps tar -xzvf mini-icons.tar.gz在您启动新的(或旧的)Macintosh 风格桌面之前,您必须首先创建一个 .mlvwmrc 文件。在发行目录(您构建 mlvwm 的位置)中,您将看到一个 sample_rc 目录。只需将所有这些文件复制到用户目录,然后重命名 mlvwmrc 文件。让我们继续我们的友好用户 natika
cd /home/natika cp /pathto/mlvwm091/sample_rc/* . mv Mlvwmrc .mlvwmrc我们快完成了。默认配置文件是一个很好的起点,但您需要编辑这些 pixmap 的路径。查找以下行并将其更改为反映您的系统图标(或您刚刚安装的迷你图标)的路径
IconPath /usr/local/include/X11/pixmaps:/home2/tak /bin/pixmap现在,使用 xinit /usr/bin/X11/mlvwm 启动它。图 1 显示了 MLVWM 的运行情况。现在一切都回来了,是吗,我的朋友们?
对于那些迫切需要更友好的东西的人来说,总是会有 Amiga。我说“会有”?不,不是的,即使不是 Amiga 本身,精神也肯定存在于 Marcus Comstedt 的 AMIWM 中。首先访问他的网站并下载源代码。然后,像过去一样,我们像这样构建
tar -xzvf amiwm0.20pl48.tar.gz cd amiwm0.20pl48 ./configure make make install
查看包含的 README 文件以获取配置文件选项。这些运行时选项来自本地 .amiwmrc 文件或全局 system.amiwmrc。默认情况下,您将在 /usr/local/lib/amiwm 目录中找到全局文件。查看图 2 以查看 AMIWM 桌面。
这些桌面替代方案提供了一种体验过去品味的方式。KDE 和 GNOME 是现在。但是未来-未来-未来呢?你们有人听到回声吗?无论如何,Niklas Elmqvist、Robert Karlsson、Steve Houston、Antony Suter 和其他人正在努力为我们提供未来的惊鸿一瞥。进入 3Dwm,一个三维桌面,它将我们带出窗口管理器的平面世界,并将我们带入一个具有深度的世界。事实上,3Dwm 团队希望我们忘记名称中的 wm 部分,并将 3Dwm 视为一个用于开发三维用户界面而不是窗口管理器的环境。
查看图 3 以了解即将到来的示例。您准备好进入第三维度了吗?那就走吧。

图 3. 桌面通过 3Dwm 进入第三维度
由于这是一个 3-D 应用程序,您需要 Mesa 或 OpenGL 库。您需要 expat 库来处理项目的 XML 部分,并且还需要 SDL 库。注意 SDL 软件包的版本号(您可以从 www.libsdl.org 获取)。它必须是 1.2 或更高版本才能正常工作。这看起来像是刚开始的很多东西,但幸运的是,大多数现代 Linux 发行版都已安装了所有这些东西。
为了构建 3Dwm,您需要一些其他的东西。其中最大的是来自 AT&T UK Labs 的 OmniORB 软件包,也是 VNC(一个出色的远程控制软件包)的开发者。我在这里要提出一个奇怪的建议。在大多数情况下,我很少推荐用于安装的源代码包,但这是一个可能更有意义的地方,即获取二进制软件包之一。由于依赖项肯定是一个问题,因此运行基于 RPM 的系统的用户可能还会考虑获取源 RPM 并为您的发行版和架构重建它。这就是我所做的。然后,我通过这种方式重建了一个新的二进制 RPM 软件包
rpm --rebuild omniORB-3.0.4-0.src.rpm
这将持续相当长一段时间。完成后,您应该在构建目录中(因系统而异)同时拥有完整的 omniORB 和 omniORB-devel 软件包。在我的 Red Hat 测试系统上,完成的 RPM 位于 /usr/src/redhat/RPMS/i386 中。Debian 用户也会找到预构建的软件包。
您现在可以继续进行 3Dwm 构建,稍后执行此过程,但让我们现在开始,以免我们忘记。修改您的 /etc/profile 以包含以下行
OMNIORB_CONFIG=/etc/onmiORB.cfg OMNIORB_LOGDIR=/var/omninames
omniORB.cfg 文件尚不存在,因此您现在必须创建它。这是您需要的内容
ORBInitialHost localhost ORBInitialPort 8088请注意,“localhost”指定可能无法工作,具体取决于您的主机名配置。因为我将我的桌面作为我的域中的主机启动,所以我必须在此处使用完全限定域名。您可能也需要这样做。现在,像这样启动 omniNames 服务器
omniNames --start 8088 &在 3Dwm 的下载页面上,您还会找到 meshio 的源代码,meshio 是一个用于加载 3-D 模型文件的库。是的,这个方法涉及多个部分,但我向您保证,结果将是值得的。现在是编译 meshio 的时候了。您会很高兴知道这是一个快速的过程
tar -xzvf meshio-0.2.0.tar.gz cd meshio-0.2.0 make make install现在,是时候构建 3Dwm 本身了。在撰写本文时,发布级别为 0.3.1,从技术上讲,它仍然属于 alpha 软件,但我们 Linux 类型的人,我们喜欢走在前端,不是吗?为了使编译顺利进行,您需要设置 PYTHONPATH 变量
export PYTHONPATH=/usr/lib/python2-1/site-packages现在,我们构建
tar -xzvf 3dwm-0.3.1.tar.gz cd 3dwm-0.3.1 ./configure make当这一切都完成后,将配置文件 tdwmrc(您可以在构建目录的 /etc 下找到它)复制到 ~/.tdwmrc。使用您喜欢的文本编辑器打开它,并确保 default.zorn 的路径正确。请记住,这将因您的安装目录路径而异。现在,启动显示服务器
cd server ./tdwm-server如果一切顺利,您应该会在屏幕上看到一个黑色显示框。那就是成功。这听起来可能没什么意思,但 3Dwm 是一个客户端-服务器应用程序,3-D 客户端将在这个窗口中运行。要进入您的 3-D 世界,您现在必须运行客户端。3Dwm 站点有一个 3dwm-data.tar.gz 文件,您应该下载它。它包含一些示例 3-D 模型和纹理。您所要做的就是解压文件;这里无需编译
cd clients/geoclient ./geoclient office.3ds办公室的三维表示(包括桌子、显示器、键盘和鼠标)将出现在 3Dwm 服务器窗口中。如果它看起来有点奇怪,请尝试像这样导航它。
移动包括键盘 Ctrl 键和鼠标按钮的某些组合。顺便说一句,这些组合在我在前面提到的 default.zorn 文件中定义。如果您按住 Ctrl 键并单击鼠标左键(同时移动鼠标),您将更改围绕焦点的轨道。按 Ctrl 键和鼠标右键可放大或缩小焦点。Ctrl 键和鼠标中键可平移您的焦点。Ctrl、Shift 和鼠标左键向左和向右旋转,而 Ctrl、Shift 和鼠标右键更改您的视野。
除了 geoclient 之外,还有其他客户端,但我将把探索留给您。您的 3Dwm 软件包中包含一个 3-D 虚拟时钟,正如您从我们的 3Dwm 虚拟时钟中看到的那样,关闭时间再次临近,不是吗?弗朗索瓦,如果您能好心最后一次为我们的客人斟满酒杯。谢谢你,我的朋友。
无论您是在过去、现在甚至未来的桌面中找到理想的工作环境,请放心,当您使用 Linux 进行烹饪时,互操作性不是一个花哨的技术流行语——它是我们每天工作的方式。
祝您健康! 祝您胃口好!
Marcel Gagné (mggagne@salmar.com) 是 Salmar Consulting Inc. 的总裁,这是一家系统集成和网络咨询公司,也是 Addison-Wesley 出版的《Linux 系统管理:用户指南》的作者。