Plan 9由Bell Labs开发,是Unix的后继产品。尽管由于种种原因它从未真正实现,但计划9仍进行了大量开发。
我的问题是,从Plan 9到现代Unix有什么?
Plan 9由Bell Labs开发,是Unix的后继产品。尽管由于种种原因它从未真正实现,但计划9仍进行了大量开发。
我的问题是,从Plan 9到现代Unix有什么?
Answers:
显而易见的一种可能是UTF-8。但这可能太明显了。
Al Viro对Linux VFS进行的大规模重新架构受到了Plan9的极大启发。特别是从“一切都是文件”到“…而每个文件都是挂载点”的转变。
cd /tmp; echo a > a; echo b > b; sudo mount --bind a b; cat b # => a
Linux中的/ proc文件系统是Plan 9的构想。
联合文件系统(例如unionfs和aufs)受Plan9 联合目录安装的启发。
例如,它们在实时CD上用于/usr/bin
从CD与可写文件系统合并,因此/usr/bin
即使CD是只读的,也可以对其进行更改。
例如,如果我对Plan9的理解正确,则可以执行以下操作:
bind -b /usr/bin /bin
bind -b /usr/local/bin /bin
bind -b /home/username/bin /bin
并且所有三个目录中的所有文件都将出现/bin
(如果有重复名称,则由于该-b
选项,最后指定的目录中的一个将获胜)。
我不确定这是Bruce所说的“安装/文件系统名称空间”是什么意思,还是有所不同。
在计划9中,每个“文件系统”都是由用户空间守护程序实现的。(想想FUSE。)这些守护程序都使用9P(特别是9P2000,协议的第二个版本)。9P本质上就是将系统的不同部分结合在一起的东西。
该v9fs工程实施的9P协议的Linux内核驱动程序。根据上面的Plan 9 Wiki页面,它在内核2.6.14起位于主线内核中。