计算机科学

首页 > 计算机科学

9P


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

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

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

目录

  • 1 服务器端应用程序
  • 2 实现
  • 3 参见
  • 4 参考文献
  • 5 外部链接

服务器端应用程序

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

  • acme (text editor)英语acme (text editor): 供程序员使用的用户界面
  • rio window manager英语rio window manager: 第九项目的窗口管理器
  • plumber (Plan 9)英语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英语v9fs - u9fs: 9P为类UNIX操作系统所提供的实现
  • IL Protocol英语IL Protocol - 为了在局域网中使用9P而设计的传输协议
  • 分布式文件系统

参考文献

  1. ^ 9P协议

外部链接

  • 9P资源 cat-v.org网站上的页面
  • 9P用户手册
  • 用于分布式系统的Styx架构 由 罗勃·派克(Rob Pike) 与 Dennis Ritchie 所撰写
  • 九号项目内部的网络组织 由 Dave Presotto 与 Phil Winterbottom 所撰写

下一篇:Observium
相关推荐