与 Linux 共舞 - $HOME 的虚拟街道

作者 Marcel Gagné

François,你在 Freshmeat 上找什么? Quoi? 一个将你数字化的程序,这样你就可以进入电脑内部? 是的,我知道电影里看起来是那样的,但虚拟现实还没有达到那个程度。 我以为几个月前我们讨论光循环时你就明白了。 不,François,我不认为人们很快就会住在电脑里。 我没有嘲笑你,mon ami。 我只是觉得好笑,仅此而已。 不,我很抱歉让你失望了,但我不认为你的 Linux 系统里有城市或人。 我们稍后再讨论这个。 我们的客人马上就要到了,我们必须做好准备。

你说什么,mon ami? 他们已经到了? 快,François,帮我们的客人入座。 欢迎大家来到 Chez Marcel,这里有美酒、非凡的 Linux 美食和最棒的顾客。 François,当你安排好客人入座后,下到酒窖,把 2002 年的 Ctôes du Roussillon Villages 拿上来。

François 和我刚才在讨论电脑内部虚拟世界的可能性,这是一个非常惊人的前景,但仍然是幻想。 确实,在我使用电脑的这段时间里,发生了很多令人惊奇的事情。 你的 Linux 系统就是其中之一,其开放的性质意味着一种在其他地方根本不存在的探索自由。 然而,我一直在想,总的来说,计算模型仍处于起步阶段。 也许是因为我看太多科幻小说了,结果我的期望有点高。 回想一下电影 Tron,例如。 在开场片段中,节目英雄弗林将一个名为 CLU 的程序发送到系统中,以查找一些丢失的文件。 程序 CLU 看起来像弗林,在一个 3D 坦克中移动,而一个助手位提供是或否的建议。 当他驾驶坦克在数字街道上行驶时,周围都是高耸的摩天大楼般的建筑。 那就是我年轻时想要体验的虚拟计算机世界。

啊,François,你带着葡萄酒回来了。 请为我们的客人倒酒。 我想建议,mes amis,你们可以品尝一下这款优质红酒中蕴含的许多隐藏风味。

虽然系统内部可能没有隐藏的世界,但很多东西在其他方面是隐藏的。 例如,虚拟控制台滚动显示的信息在图形桌面启动后就会被隐藏起来。 当然,你可以使用 Ctrl-Alt-F1 跳出图形会话,看看外面发生了什么,但有一种更好的方法。 要查看该虚拟控制台的隐藏内容,请在 shell 提示符下键入以下命令(你需要 root 权限):

cat /dev/vcs1

你看,你可能不知道的是,你的系统会将那些虚拟控制台 (1-6) 的内容记录在一个特殊的设备文件中,/dev/sdaX,其中 X 是你的虚拟控制台的编号。 例如,这是我的 Ubuntu 测试系统上第一个 VT 的输出示例

* Starting OpenBSD Secure Shell server...
[ ok ]  * Starting Bluetooth services...  hcid sdpd
[ ok ]  * Starting RAID monitoring services...
[ ok ]  * Starting anac(h)ronistic cron: anacron
[ ok ]  * Starting deferred execution scheduler...
[ ok ]  * Starting periodic command scheduler...
[ ok ]  * Checking battery state...
[ ok ]  * Starting TiMidity++ ALSA midi emulation...
[ ok ]
Ubuntu 6.04 "Dapper Drake" Development Branch francois tty1

这些东西很有趣,但很难称得上是一个隐藏的世界,而且它也没有我的谦卑服务员正在寻找的 Wow! 因素。 然而,尽管我对 François 说了那些话,但还是有办法看到 Linux 系统内部的城市的。 这有点牵强,但存在一些引人入胜的可视化程序——本质上是实验性的——它们试图创建一个真实世界的视图,来展示进程、内存以及当然还有程序的虚拟世界。 其中之一是 Rudolf Hersen 的 ps3(参见在线资源),要充分利用 ps3,你需要一张带有加速功能的 3D 显卡。

编译程序非常简单,但确实需要你拥有 SDL 开发库

tar -xjvf ps3-0.3.0.tar.bz2
cd ps3-0.3.0
make

要运行该程序,请键入./ps3从同一目录下,你应该会看到进程表的 3D 表示。 当它启动时,你可能会得到一些不理想的视图,但这正是 ps3 的重点。 你可以在所有三个轴上旋转视图,并从上方或下方查看进程表。 如果进程一开始太高,只需将它们缩小到更合理的程度即可。 每个进程都通过其程序名称和进程 ID 来标识。

Cooking with Linux - The Virtual Streets of $HOME

图 1. 使用 ps3 导航系统进程就像飞入一座虚拟城市。

ps3 显示的导航完全通过鼠标完成。 单击鼠标左键并拖动以旋转和调整水平旋转的高度和速度。 单击并拖动鼠标右键以水平和垂直旋转视图。 鼠标滚轮可让你放大和缩小。 要退出 ps3 查看器,请按键盘上的字母 Q。

ps3 绝不是一种科学上精确的查看系统进程的方法,但它具有启发性和娱乐性。 因此,现在我们在你的系统内部的某个地方有了虚拟建筑和虚拟城市的雏形。 我们现在缺少的只是坦克。 好吧,我也许对这个问题也有答案。 它叫做 BZFlag,这当然需要 François 再次为我们添酒。 Mon ami,请来一下。

注意

如果你发现自己想念光循环,请查看我们网站上 Marcel 的“电脑内部的战斗”:/article/6638

BZFlag 是一款多人 3D 坦克对战游戏,你可以与互联网上的其他人一起玩(Tim Riker 是 BZFlag 的当前维护者,但最初的作者是 Chris Schoeneman)。 BZFlag 这个名字实际上是 Battle Zone capture Flag 的缩写。 从本质上讲,它是一款夺旗游戏。 要参与其中,只需查看你发行版的 CD。 BZFlag 的受欢迎程度意味着它通常包含在发行版中。 但是,如果你想运行最新和最棒的版本,请访问 BZFlag 站点(参见资源)。 你会找到二进制文件、源代码,甚至其他操作系统的软件包。 这样,你就可以让所有人参与进来。

除非你另行指定,否则 BZFlag 以全屏模式启动,但你可以通过使用 -window 选项启动程序来覆盖此设置。 游戏从“加入游戏”屏幕开始。 在查找服务器(屏幕上的第一个选项)之前,你可能需要更改你的呼号(或昵称)。 在我们选择服务器后,我们将研究其他一些选项。 现在,将你的光标移动到“查找服务器”标签,然后按 Enter 键。

你不会在寻找一起玩的人方面遇到任何麻烦——你将获得当前正在托管游戏的数十个服务器的列表(图 2)。 向下滚动名称列表,找到适合你的服务器。 你的标准可能是玩家数量、服务器的繁忙程度或涉及的团队数量。 当你查看服务器列表时,请务必注意服务器上托管的游戏类型。 有些具有面向团队的夺旗游戏,另一些则托管自由式动作游戏。 你也可能受到你可支配的射击次数的限制,因此请仔细瞄准。

Cooking with Linux - The Virtual Streets of $HOME

图 2. 在任何给定时间,全球都有数十个 BZFlag 服务器在运行,数百人正在玩。

当你做出选择后,按 Enter 键,你将回到“加入”屏幕(图 3),其中已选择服务器。 你可以简单地开始游戏,但你可能需要在启动坦克之前微调更多内容。 将光标向下移动到“团队”标签,然后按左或右箭头键。 默认情况下,你将被自动分配到一个团队,但如果你愿意,可以在此处更改。 你可以扮演的角色之一是观察员,而不是加入团队。 如果你是游戏新手,这不是一个坏主意,因为它让你观察其他人是如何操作的。

Cooking with Linux - The Virtual Streets of $HOME

图 3. “加入”屏幕允许你定义你的呼号以及你的团队。

“加入”屏幕还允许你手动输入服务器名称,而不是搜索它。 这对于在本地 LAN 上托管私人游戏很有用。 说到托管游戏,我相信你注意到了列表底部的“启动服务器”选项。 让我们继续加入游戏。 向上滚动到“连接”,然后按 Enter 键。

我希望你准备好了,mes amis,因为行动立即开始,而且其中一些玩家,嗯,经验丰富。 使用鼠标移动你的坦克,然后单击鼠标左键进行射击。 这些坦克非常灵活,甚至可以在某些游戏中跳跃(你可以通过按 Tab 键来完成)。 顺便说一句,要了解所有按键操作,请随时按 Esc 键,然后选择“帮助”。 在游戏中,BZFlag 提供了一个扩展的抬头显示器,其中包含有关玩家、击杀、个人得分、团队得分等的统计信息(图 4)。 密切关注你左下角的地图,因为它会提醒你敌方坦克。 如果你可以同时驾驶、射击和打字,请按 N 向群组发送聊天消息,或按 M 仅向你的队友发送消息。 如果你看到老板来了,请按 F12 快速退出游戏。 只是一个小玩笑,mes amis。 我永远不会建议你在工作时玩这个。

Cooking with Linux - The Virtual Streets of $HOME

图 4. 动作快速而紧张,坦克在你转弯的任何地方爆炸。 小心不要成为其中之一。

时间不早了,mes amis,但我不想给你留下这样的印象:我们系统中可能存在的所有虚拟世界都完全建立在破坏和混乱之上。 事实上,你可以建立一个完整的文明,包括一个城市、它的农场、工厂、市场以及现代(或前现代)文明的所有其他特征。 下载 Lincity(或查看你的发行版 CD)并开始建设。 这款高度令人上瘾且耗时的游戏的想法是让你建造一座城市,并在过程中养活和穿上你的人民,并创造就业机会,以便你可以建立和维持经济。 投资可再生能源,努力建设公民乌托邦(图 5)。

Cooking with Linux - The Virtual Streets of $HOME

图 5. Lincity 是一款计算机化的城市模拟游戏,它让你想知道为什么创建一个乌托邦如此艰难。

随着事情越来越好,你可以保存你的游戏,然后回到创建你理想的世界。 好的,你说得对,这并不像听起来那么容易。 时钟在滴答作响,时间飞逝。 如果不小心,你的世界可能会在自身的毒害中枯萎。 我应该警告你,从头开始可能会有点打击信心。 为什么不在情况良好时开始呢? 游戏开始时,单击左上角的“菜单”按钮。 然后主窗口为你提供了一些选择,包括加载已保存的游戏。 游戏附带两个:一个叫做“美好时光”,另一个(你猜对了)叫做“糟糕时光”。 我建议你从“美好时光”开始,让你虚拟地湿湿脚。 当你变得非常擅长,以至于你觉得你可以修复任何东西时,那就选择“糟糕时光”,看看你是否可以将你的城市从 2500 万美元的债务中拉回来。

时钟,mes amis,它在告诉我们关门时间到了。 听到你们工作站传来所有这些火炮和爆炸的声音,很明显我们必须稍微晚点关门了。 François 会很乐意最后一次为你们斟满酒杯,然后我们说“Au revoir”。 游戏可能是虚拟的,但酒是真实的。 这也是一件好事,但我不想每次有人开枪时都把它洒出来。 基于此,请举起你们的酒杯,mes amis,让我们大家为彼此的健康干杯。 A votre santé Bon appétit!

本文资源: /article/8882

Marcel Gagné 是一位屡获殊荣的作家,居住在安大略省密西沙加市。 他是全新著作 Moving to Ubuntu Linux 的作者,这是他在 Addison-Wesley 出版的第五本书。 他还定期在电视节目中露面,担任 Call for Help 的 Linux 专家。 Marcel 还是一位飞行员,一位前 40 强唱片骑师,创作科幻小说和幻想小说,并能折出精美的折纸霸王龙。 你可以通过电子邮件 mggagne@salmar.com 与他联系。 你可以从他的网站 www.marcelgagne.com 上发现许多其他东西(包括很棒的 Wine 链接)。

加载 Disqus 评论