我和我的同事有一个项目,要制作一个驱动程序,该驱动程序将提供对远程驱动器的访问,就像本地驱动器一样(使用SSH/SCP)。该驱动器通常应视为驱动器,并且操作可以限于简单的文件操作(复制,移动,删除),而无需列出文件等。该驱动器应为linux内核模块(可能不完全是..)。

我们设法收集了一些信息和想法,也许有人可以验证它们,或者将我们推向正确的方向?

我们考虑过将其分为两个部分:

  • 一个实现虚拟驱动器的内核模块
  • 一个负责SSH/SCP通信的用户空间守护程序

  • 因为我们无法想象在内核模块中实现SSH通信(是的,它可能是可能的,但是..)。

    对于SSH/SCP通讯,我们认为可以使用libssh
    关于在内核模块中实现虚拟驱动器,我们找到了tutorial

    另一种情况是内核与用户空间之间的通信。我们还找到了article来讨论此问题,其中包括UDP套接字或NETLINK的许多可能性。

    使用此解决方案,我们可以忘记内核模块中所有与SSH/SCP相关的东西-它对内核是透明的。

    我们的想法好吗?也许有一些我们没有预见到的警告?这是正确的方法,还是有更好/更简单的方法(但仍与linux内核有关,因为那是项目的主要 Realm ;))?我们应该使用哪些想法?链接非常感谢:)

    编辑:这是我们必须为大学类(class)做的一个项目-因此,找到一个已经实现的解决方案不是问题,而是自己动手做。

    最佳答案

    您可能想看看FUSE,尤其是SSHFS。这基本上就是您所描述的,已经实现。

    关于linux - SSH/SCP驱动器的内核模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8027712/

    10-15 06:11