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而设计的传输协定
- 分散式档案系统
参考文献
[编辑]外部链接
[编辑]- 9P资源(页面存档备份,存于互联网档案馆) cat-v.org网站上的页面
- 9P使用者手册(页面存档备份,存于互联网档案馆)
- 用于分散式系统的Styx架构(页面存档备份,存于互联网档案馆) 由 罗勃·派克(Rob Pike) 与 Dennis Ritchie 所撰写
- 九号计画内部的网路组织(页面存档备份,存于互联网档案馆) 由 Dave Presotto 与 Phil Winterbottom 所撰写