9P

9P(又名九号计划文件系统协定Styx),是贝尔实验室九号计划分布式操作系统所开发的网络协定,作用在于链接九号计划系统内的组件。本计划中的文件是其运作的内核,这些文件代表了窗口电脑网络连接、行程,以及其他存在于操作系统中的任何东西。不同于NFS,9P是将数据缓存,并提供仿真文件(synthetic file)的机制(例如/proc用以表示行程)。

在九号计划第四版中,9P被更名为“9P2000”,增加了一些基础上的改进。最新版的Inferno操作系统也采用9P2000,之前的版本采用的文件格式称为Styx,但其实也是9P的衍生。

另一个叫9p2000.u的衍生版本,则对UNIX提供了更良好的支持。为UNIX而实作的9P服务器则称为u9fs,在第九计划的发行版中有提供。供Linux使用的内核客户端驱动程序则包含在v9fs的项目中。9P及其衍生分支也被发现使用在嵌入式环境的应用软件中,像是Styx on a Brick project。

服务器端应用程序

许多第九计划的应用程序以9P服务器的形式存在。值得注意的例子有:

  • acme (text editor): 供程序员使用的用户接口
  • rio window manager: 第九计划的窗口管理员
  • plumber (Plan 9): 行程间通信
  • wikifs: Wiki

实作

9P在客户端及服务器端间送出如下的消息[1]。这些消息对应到第九计划虚拟文件系统层的进入点,所有的9P服务器都必须实作这些消息。

  •  ; version:交涉协定的版本
  •  ; error:回报错误
  •  ; flush:终止消息
  •  ; auth, attach:打开连接
  •  ; walk:走访目录阶层
  •  ; create, open:准备一个用来写入/读取既有或添加文件的fid
  •  ; read, write:发送数据给文件或从文件接收数据
  •  ; clunk:抛弃fid
  •  ; remove:从服务器移除文件
  •  ; stat, wstat:查找或变更文件属性

参见

  • v9fs - u9fs: 9P为类UNIX操作系统所提供的实作
  • IL Protocol - 为了在局域网路中使用9P而设计的传输协定
  • 分布式文件系统

参考文献

  1. . [2010-04-04]. (原始内容存档于2015-02-05).

外部链接

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.