折腾了一下 Plan 9

2009-06-08

几年前我从《The Art of Unix Programming》上听说过 Plan 9 from Bell Labs 这个概念操作系统,当时也没有太在意这东西。最近又在组里的讨论中偶然听到了它,于是决定一试。从官方下载了 LiveCD,在 QEMU on Ubuntu 和 VMware Player on Windows 下跑起来都是顺畅的,安装过程也比较简单。

Plan 9 GUI

基本命令不用多说,只是它的 rc shell 在 GUI 下用起来挺不爽的,鼠标和光标定位烦琐。比较有趣的是它的两个文本编辑器:SamAcme,它们也是 Plan 9 的推动者 Rob Pike 大牛亲自打造的。通过 TAOUP 的介绍得知这两个工具都比较强调鼠标的使用。不看手册,凭借已知的 ed 命令,我还是基本明白了 Sam 的使用。不过这个 Acme 还是有点诡异,仅仅是保存文件就让我折腾了半天。尤其是它对鼠标中键(滚轮)的使用还真能让人练脑子。

至于 Plan 9 上的 C 开发,我满以为和一般的 *nix 系统完全一样,然而写了一个 Hello World 之后才发现找不到编译器,查了一下在线的 man,原来 cc 根据机器体系结构的不同细分为了 2c、7c、8c、kc 等,在 x86 下应该使用 8c。然后编译时 printf 函数竟然也能报错,google 了一下才找到了 Rob Pike 的这篇说明。阅读后得知目前在 Plan 9 下写程序还是有一些讲究的,语言、库和系统调用都与现行标准有一些差异。

我下一步可能会看看 Plan 9 的统一文件接口、全局资源命名机制和标准通信协议,这些可能是同我的研究方向相关的,毕竟它们都是服务于网络计算环境的。

Plan 9 目前的活跃度似乎不是很高了。已经它出现多年,但网上相关的中文文献还是凤毛麟角。正如 ESR 所说,Plan 9 作为一个产品,其革命性是不足的,因为现在的 *nix 已经“足够好”了。但 Plan 9 提出的各种思想正在被其它 *nix 所融合。在网络计算的时代,网络元素应不应该、应该如何原生地融入计算机体系结构和操作系统,这是一个值得探讨的方向。