【问题标题】:Implementing a 9p server实现 9p 服务器
【发布时间】:2015-10-03 19:24:58
【问题描述】:

我希望在 Linux 机器上开发 9p 文件服务器的 C 实现。互联网上没有足够的关于 9p 的文档,而且我对实现服务器也不是很有经验。我的总体设计如下:

  1. 使用 UNIX 套接字侦听传入的 9p 消息。
  2. 解码 9p 消息并生成一个新线程来执行所需的任务。
  3. 使用适当的 9p 回复消息回复客户。

服务器只存在于用户空间中,它将 9p 消息转换为 UNIX 调用。

您是否发现任何问题或对提议的设计有任何建议?是否有任何文件可以让我参考以帮助我?你认为我应该如何调试我的服务器并确保它正常工作。

【问题讨论】:

  • 请检查我的重新标记和网址;您可能会找到替代和更好的 URL。当我在 Google 上搜索“9p 协议”时,我找到了许多信息来源——你发现了什么?一般来说,您的设计大致正确。短期内您最大的问题可能是文件的权限处理。对于调试,请确保您有一个日志文件,并且您的文件服务器在易于解析的消息中记录它正在执行的操作(尤其是它记录文件操作失败的错误消息)。确保它优雅地处理日志截断或删除。
  • Plan 9 已经附带u9fs,这是一个 9P 服务器,适用于 Linux 等 Unix 系统。

标签: c filesystems server storage plan-9


【解决方案1】:

考虑libixp(MIT 许可证)。

我玩过wmii 并在日常工作中使用它。 libixpwmii 的一部分(在最早的版本中),现在它是一个独立的项目。查看wmii 的早期版本以获得良好的起点或直接进入libixp

要调试您的服务器,只需使用带有参数−D9PFUSE(4) 挂载它以打印每个FUSE 和9P 消息。

【讨论】:

    猜你喜欢
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    相关资源
    最近更新 更多