就像我将采用Plan9的文件系统协议9P(a.k.a Styx)一样.
正如维基百科上的文章所述:
9P is a network protocol developed (…) as the means of connecting the components
of a Plan 9 system
从编程的角度来看,我想知道应该使用哪些技术来构建这样的模块通信系统.对于支持该协议的操作系统(读取Unix衍生产品)有哪些要求.
根据我的理解,整个网络的每个组件(id est,应用程序,模块)必须有一个私有控制器(或者该控制器是否应该在整个系统中共享?),发送请求和接收响应,并能够执行转换单个应用程序的内部逻辑与通信协议本身之间的任务(可能是特定的语言,如XML?,数据库,甚至某种文件系统反映信息?).从这个(我的)观点来看,所描述的系统可以被定义为客户端 – 服务器体系结构的变体,但是被投射到本地或受限制的网络范围,并且强调直接数据访问和效率.这就是我看到文件系统协议设计的方式……
我刚开始研究操作系统的过程/应用程序通信技术,并希望开发一个迷你文件系统协议来查看这些概念的实际应用.由于理论基础的泄漏,我没有任何实际和具体的工作计划,所以任何解释,文献建议,例子和评论都将受到欢迎!
最佳答案 您可以在/ sys / doc部分(或在线
html,
ps,
pdf)中阅读有关Plan9网络的所有信息.
这种工作的高级方式与您的理解类似,系统有17条协议消息(如open,create,walk和remove).有一种RPC机制负责从服务器发送和接收消息.以下是该报的引用:
A kernel data structure, the channel, is a handle to a file server. Operations on a channel generate the following 9P messages. The
session
andattach
messages authenticate a connection, established by means external to 9P, and validate its user. The result is an authenticated channel referencing the root of the server. Theclone
message makes a new channel identical to an existing channel, much like thedup
system call. A channel may be moved to a file on the server using awalk
message to descend each level in the hierarchy. Thestat
andwstat
messages read and write the attributes of the file referenced by a channel. Theopen
message prepares a channel for subsequentread
andwrite
messages to access the contents of the file.Create
andremove
perform the actions implied by their names on the file referenced by the channel. Theclunk
message discards a channel without affecting the file.
Plan9的优点在于该界面在操作系统中无处不在.这个界面(文件服务器)有很多东西.