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

4
举例来说,我将选择Plan9的文件系统协议称为9P(又名Styx)。 正如维基百科中所述:
9P是一种网络协议,开发出来作为连接Plan 9系统组件的手段。
从编程角度来看,我想知道构建这样的模块通信系统应该使用哪些技术。以及操作系统(读取Unix派生版)支持此协议的要求。
在我的理解中,整个网络的每个组件(即应用程序、模块)都必须有一个私有控制器(或者这个控制器应该在整个系统中共享?),以发送请求和接收响应,并具有在单个应用程序的内部逻辑和通信协议之间执行翻译任务的能力(可能是特定语言,如XML?数据库,甚至是某种反映信息的文件系统?)。从这个(我的)角度来看,所描述的系统可以被定义为客户端-服务器架构的变体,但被设计为本地或受限网络范围内,并强调直接数据访问和效率。这就是我对文件系统协议设计的看法...
我刚刚开始研究操作系统的进程/应用程序通信技术,并希望开发一个小型文件系统协议,以了解这些概念的实际应用。由于缺乏理论基础,我没有任何真正和具体的工作计划,因此欢迎任何解释、文献建议、示例和评论!
1个回答

3
您可以在/sys/doc部分(或在线htmlpspdf)中了解有关Plan9网络的所有信息。
高层次的工作方式与您的理解类似,系统具有17个协议消息(例如opencreatewalkremove)。有一个RPC机制负责从服务器发送和接收消息。以下是论文中的一句引用:
引用:

内核数据结构——通道,是文件服务器的句柄。对通道的操作生成以下9P消息。 sessionattach消息通过外部手段建立连接并验证其用户,结果是引用服务器根目录的经过身份验证的通道。 clone消息创建一个与现有通道完全相同的新通道,类似于dup系统调用。使用walk消息将通道移动到服务器上的文件上,以在层次结构中下降每个级别。 statwstat消息读取和写入通道引用的文件的属性。 open消息准备通道以便随后的readwrite消息访问文件的内容。 Createremove对通道引用的文件执行其名称所暗示的操作。 clunk消息丢弃通道而不影响文件。

Plan9的有趣之处在于,此接口在操作系统中是普遍存在的。许多东西都呈现出这个接口(文件服务器)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接