9P

科技工作者之家 2020-11-17

9P是贝尔实验室分布式操作系统为Plan 9开发的网络协议,作为连接Plan 9系统组件的手段。 文件是Plan 9中的关键对象。它们表示窗口,网络连接,进程以及操作系统中几乎所有可用的东西。

9P以9P2000的名称修订了第9版Plan 9,其中包含各种[基本的改进。 最新版本的Inferno操作系统也使用9P2000。 Inferno文件协议最初称为Styx,但从技术上讲,它始终是9P的一种变体。

Plan 9发行版中包含一个名为u9fs的用于Unix的9P服务器实现。 Mac9P提供了9P OS X客户端内核扩展。[1] Linux的内核客户端驱动程序是v9fs项目的一部分。 9P及其衍生产品在嵌入式环境中也有应用,例如Brick项目上的Styx。

服务器应用Plan 9的许多应用程序都采用9P文件服务器的形式1。 例子包括:

1.acme:文本编辑器/开发环境;

2.rio:Plan 9窗口系统;

3.plumber:进程间通信;

4.ftpfs:一个FTP客户端,它在本地命名空间中的远程FTP服务器上显示文件和目录;

5.wikifs:一种维基编辑工具,它将一个远程维基呈现为本地命名空间中的文件;

6.webfs:一个文件服务器,用于从URL中检索数据,并将响应的内容和详细信息显示为本地名称空间中的文件;

7.NixOS:一个纯粹功能性和声明性的Linux发行版可以在虚拟机内重建自己,客户机使用9P来挂载h的存储目录。

应用9P在客户端和服务器之间发送以下消息。这些消息对应于任何9P服务器必须实现的Plan 9 vfs层中的入口点。

1.版本:协商协议版本;

2.错误:返回错误;

3.发红:中止消息;

4.认证,附加:建立连接;

5.步行:下载目录层次结构;

6.创建,打开:在现有文件或新文件上为I / O准备一个fid ;

7.读,写:将数据传输到文件;

8.闷响:忘掉一个fid ;

9.移除:从服务器中删除文件;

10.stat,wstat:查询或更改文件属性。

本词条内容贡献者为:

李嘉骞 - 博士 - 同济大学

科技工作者之家

科技工作者之家APP是专注科技人才,知识分享与人才交流的服务平台。