编辑评论:真是的……谢谢你啊,汤姆!你又给我添了个没用的爱好。——raindog308

几乎每个人都知道Unix是在贝尔实验室开发的, Linux和许多其他现代操作系统都源自 Unix。
但是,您了解 Plan 9 吗? Plan 9 是贝尔实验室开发的分布式操作系统,由贝尔实验室的 Unix 团队创建,作为 Unix 的继任者。
Plan 9 的流行程度远不及 Unix。然而, Plan 9 的维基百科页面显示,与 Unix 不同,Plan 9 的代码在 2000 年成为自由开源软件,并且 Plan 9 的第四版于 2002 年发布。开源许可证、Plan 9 发行版的开放获取以及 Plan 9 社区的友好氛围,促使我当时开始使用它。
如今,对很多人来说,运行 Plan 9 内核已经没有什么意义了。然而,仍然有人在 Linux 和其他现代操作系统上运行 Plan 9 用户空间。我已经记不清具体是什么时候开始的了,但曾经有一位非常活跃的 Plan 9 开发者将许多 Plan 9 用户空间的组件移植到了 BSD 和 Linux 上。这个移植项目被命名为 Plan 9 from Userspace,也就是 plan9port。
Plan9port 拥有主页、 Github 代码库和活跃的 Google Groups 开发讨论列表。
我听说最初 Unix 和 Plan 9 团队的几位成员都去了谷歌,并在谷歌使用了 plan9port。
对于那些想要使用 plan9port 诸多功能的用户,这里有一些启动配置文件。就我个人而言,我喜欢使用 plan9port 版本的一些老式 Unix 命令行工具,例如ed 编辑器。将 Unix 和 Plan 9 工具的源代码与其他同类工具的实现进行比较也很有意思。通常,Unix 和 Plan 9 版本会出奇地简洁明了。
好了,介绍就到这里。让我们开始安装plan9port吧!安装过程简单易上手,这都要感谢plan9port开发者们的辛勤付出!
安装
安装说明请参阅 plan9port 的install(1) 手册页。使用 git 进行初始安装的命令可在plan9port 主页上找到。
启用还原
我们将把程序安装在 /usr/local 目录下。让我们先备份 /usr/local 目录,以便在出现问题时可以恢复。
root@darkstar:/usr# tar cvzf local-revert.tgz local
[ . . . ]
root@darkstar:/usr#
克隆源文件
接下来,我们将从他们的 Github 存储库克隆 plan9port 源代码。
root@darkstar:/usr# cd local
root@darkstar:/usr/local# git clone https://github.com/9fans/plan9port plan9
Cloning into 'plan9'...
remote: Enumerating objects: 36924, done.
remote: Counting objects: 100% (151/151), done.
remote: Compressing objects: 100% (98/98), done.
remote: Total 36924 (delta 69), reused 103 (delta 53), pack-reused 36773
Receiving objects: 100% (36924/36924), 25.79 MiB | 19.45 MiB/s, done.
Resolving deltas: 100% (25786/25786), done.
root@darkstar:/usr/local#
让我们来看看新克隆的 plan9 目录里有什么。
root@darkstar:/usr/local# cd plan9/
root@darkstar:/usr/local/plan9# ls
CHANGES Makefile dict/ install.txt man/ proto/ troff/
CONTRIBUTING.md README.md dist/ lib/ ndb/ rcmain unix/
CONTRIBUTORS acid/ face/ lp/ news/ sky/
INSTALL* bin/ font/ mac/ plumb/ src/
LICENSE configure* include/ mail/ postscript/ tmac/
root@darkstar:/usr/local/plan9#
建造
现在我们将运行 INSTALL 脚本,该脚本将构建并安装 plan9port。
root@darkstar:/usr/local/plan9# ./INSTALL
[...]
[...]
* 清理……
* 重命名硬编码的 /usr/local/plan9 路径…
* 网站建设手册…
* 完毕。
* 将这些添加到您的配置文件环境中。
PLAN9=/usr/local/plan9 导出 PLAN9
PATH=$PATH:$PLAN9/bin export PATH
root@darkstar:/usr/local/plan9#
哇!好像成功了!让我们看看现在有什么!
root@darkstar:/usr/local/plan9# ls
CHANGES Makefile configure* include/ lp/ news/ sky/
CONTRIBUTING.md README.md dict/ install.log mac/ plumb/ src/
CONTRIBUTORS acid/ dist/ install.sum mail/ postscript/ tmac/
INSTALL* bin/ face/ install.txt man/ proto/ troff/
LICENSE config font/ lib/ ndb/ rcmain unix/
root@darkstar:/usr/local/plan9#
嗯!让我们来看看源头吧!
root@darkstar:/usr/local/plan9# cd src/cmd
root@darkstar:/usr/local/plan9/src/cmd# wc ed.c
1639 3665 23093 ed.c
root@darkstar:/usr/local/plan9/src/cmd#
是的!艾德在那儿!:)
测试
但是,它真的有效吗? :)
root@darkstar:/usr/local/plan9# cd
root@darkstar:~# PLAN9=/usr/local/plan9 export PLAN9
root@darkstar:~# PATH=$PATH:$PLAN9/bin export PATH
root@darkstar:~# ls foo
/bin/ls: cannot access 'foo': No such file or directory
root@darkstar:~# 9 ed foo
?foo
a
bar
.
wq
4
root@darkstar:~# cat foo
bar
root@darkstar:~#
耶!成功了!:)