[英]What is a filesystem protocol and how does it work?
作为示例,我将选择Plan9的文件系统协议9P(又名Styx)。 正如Wikipedia中的文章所述:
9P是开发为(...)作为连接Plan 9系统组件的方式的网络协议
从编程的角度来看,我想知道构建此类模块通信系统应使用哪些技术。 支持该协议的操作系统(阅读Unix派生产品)有哪些要求?
以我的理解,整个网络的每个组件( id est ,应用程序,模块)都必须具有一个专用控制器(或者该控制器是否应在整个系统中共享?),以便能够发送请求和接收响应,并具有执行翻译的能力单个应用程序的内部逻辑和通信协议本身之间的任务(可能是特定语言,例如XML ?、数据库,甚至某种文件系统的信息反射?)。 从这个角度(我的观点),可以将所描述的系统定义为客户端-服务器体系结构的一种变体,但是可以将其投影到本地或受限制的网络范围,并着重于直接数据访问和效率。 这就是我如何看待文件系统协议的设计...
我刚刚开始研究操作系统的过程/应用程序通信技术,并想开发一个小型文件系统协议以了解该概念的实际作用。 由于理论基础的泄漏,我没有任何实际而具体的工作计划,因此,欢迎您提供任何解释,文献建议,示例和评论!
您可以在/sys/doc
部分(或在线html , ps , pdf )中阅读有关Plan9网络的所有信息。
这种工作的高级方式类似于您的理解,系统具有17条协议消息(诸如open
, create
, walk
和remove
类的东西)。 有一个RPC机制,负责从服务器发送和接收消息。 这是这篇论文的引文:
内核数据结构channel是文件服务器的句柄。 通道上的操作会产生以下9P消息。
session
和attach
消息对通过9P外部方式建立的连接进行身份验证,并验证其用户。 结果是引用服务器根目录的经过身份验证的通道。clone
消息使新通道与现有通道相同,非常类似于dup
系统调用。 可以使用walk
消息将频道移至服务器上的文件,以降低层次结构中的每个级别。stat
和wstat
消息读取和写入通道引用的文件的属性。 的open
消息准备用于随后的信道read
和write
的消息,以访问该文件的内容。Create
并remove
在通道引用的文件上执行其名称所隐含的操作。 该clunk
消息丢弃一个信道,而不会影响该文件。
Plan9的巧妙之处在于该接口在操作系统中无处不在。 该接口(文件服务器)提供了很多东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.