我有兴趣研究 9P FS,目前正在阅读这些实现的可用源:http: //9p.cat-v.org/implementations
9P过时了吗?您是否将其用于某些应用程序?
(我也发现了这一点,9P 和 NFS 之间的一些性能测试:http: //graverobbers.blogspot.com/2007/08/v9fs-performance-versus-nfs.html)
我有兴趣研究 9P FS,目前正在阅读这些实现的可用源:http: //9p.cat-v.org/implementations
9P过时了吗?您是否将其用于某些应用程序?
(我也发现了这一点,9P 和 NFS 之间的一些性能测试:http: //graverobbers.blogspot.com/2007/08/v9fs-performance-versus-nfs.html)
不,9P 并没有过时;我不知道有一个协议能做什么,并且干净且定义明确,几乎可以在任何存在的语言中正确实现。
9P 用于多种系统。最近在arm-js(一个 ARM 仿真器)和9webdraw(一个实现 Plan 9 /dev/draw 的 GSoC 项目)中的一些用途。两者都是 HTML5 Javascript 实现。
只是补充一点,Linux 客户端实现和几个服务器都在积极开发中,所以我认为这是一个非常明显的迹象,人们仍然可以使用它。它最近被大量使用的领域之一是 virtio-9P(又名 virtfs),它是 qemu/kvm 的一部分,可用于直接来宾到主机的文件访问。它还被用于多个实验性操作系统项目(Libra、PROSE、FusedOS),并被整合到其他操作系统(BSD、MacOSX、Windows、Linux)和管理程序中(除了上面的 KVM 实例,它还以各种方式被整合成 Xen)。9P 实际上用于超级计算部署(对于 Plan 9 和 Linux,请参阅 Sourceforge 上的 diod 项目)。
我认为原因是协议非常简单,因此实现也往往非常简单并且易于在其他地方集成(Plan 9 世界内外有几个应用程序使用 9P 作为应用程序的接口,在很多情况下)与一些 Web 开发人员使用 RESTful 接口的方式相同)。
该协议有几个不同的变体,包括专门为更好地匹配 Linux VFS API 而开发的 9P.L 变体。它在添加操作时给协议增加了一点复杂性,但消除了映射 Linux VFS API -> 9P 的一些复杂性,反之亦然。
它在 Erlang-on-Xen 中用作 goofs http://erlangonxen.org/blog/goofs-simple-filesystem的存储协议
这也是 erlang 在 xen 实例上的其他方式,请参见此处:
http://erlangonxen.org/more/9p2000e
此外,它还被带有 QEMU 的 libvirt 使用。
http://wiki.qemu.org/Documentation/9psetup
9p,对我来说,就像网络协议的方案。在大多数情况下,它非常简单,但人们认为需要对其进行扩展以适应他们的环境。幸运的是,这是以通常向后兼容的方式完成的。
除了其他答案中提到的所有内容之外,微软还使用 9P作为其 Windows 子系统的一部分。
他们为每个作为来宾运行的 Linux 发行版添加了一个 9P 服务器,以便 Windows 可以通过 9P 挂载 Linux 文件系统,并且 Windows 进程可以透明地访问 Linux ext4 分区上的文件。