什么是文件系统协议?它是如何工作的?

时间:2011-01-12 22:40:53

标签: filesystems terminology protocols

就像我将采用Plan9的文件系统协议9P(a.k.a Styx)一样。 正如维基百科中的文章所述:

  

9P是开发的网络协议(...),作为连接组件的手段   计划9系统

从编程的角度来看,我想知道应该使用哪些技术来构建这样的模块通信系统。对于支持该协议的操作系统(读取Unix衍生产品)有哪些要求。

根据我的理解,整个网络的每个组件( id est ,应用程序,模块)必须有一个私有控制器(或者该控制器是否应该在整个系统中共享?),以发送请求和接收响应,能够在单个应用程序的内部逻辑和通信协议本身之间执行转换任务(可能是某种特定语言,如XML?,数据库,甚至某种文件系统反映信息?)。从这个(我的)观点来看,所描述的系统可以被定义为客户端 - 服务器体系结构的变体,但是被投射到本地或受限制的网络范围,并且强调直接数据访问和效率。这就是我看到文件系统协议的设计......

我刚刚开始研究操作系统的流程/应用程序通信技术,并希望开发一个迷你文件系统协议来查看这些概念的实际应用。由于理论基础的泄漏,我没有任何实际和具体的工作计划,所以欢迎任何解释,文献建议,例子和评论!

1 个答案:

答案 0 :(得分:2)

您可以在/sys/doc部分(或在线htmlpspdf)阅读有关Plan9网络的所有信息。

这种方法的高级方式与您的理解相似,系统有17条协议消息(opencreatewalkremove等内容。有RPC机制负责从服务器发送和接收消息。以下是论文的引用:

  

内核数据结构 channel 是文件服务器的句柄。通道上的操作会生成以下9P消息。 sessionattach消息对通过9P外部建立的连接进行身份验证,并验证其用户。结果是引用服务器根的经过身份验证的通道。 clone消息使新频道与现有频道相同,就像dup系统调用一样。可以使用walk消息将通道移动到服务器上的文件,以降低层次结构中的每个级别。 statwstat消息读取和写入通道引用的文件的属性。 open消息为后续readwrite消息准备通道以访问文件的内容。 Createremove执行其名称隐含在通道引用的文件上的操作。 clunk消息会丢弃频道而不会影响文件。

Plan9的优点在于该界面在操作系统中无处不在。很多东西都存在这个界面(文件服务器)。