【问题标题】:Linux file system without kernel没有内核的Linux文件系统
【发布时间】:2016-06-09 06:46:53
【问题描述】:

我知道如何使用内核模块注册和挂载文件系统。现在我想从一个普通的 c/c++ 程序做同样的事情。仅覆盖单个文件夹的文件和 inode 操作会更好。我知道有像 FUSE 这样的库,但我认为他们所做的只是添加一个内核,它以某种方式与普通程序通信。有没有办法做到这一点?

【问题讨论】:

    标签: c++ c linux linux-kernel filesystems


    【解决方案1】:

    是的,ext2/3/4 文件系统的代码也可用作库。

    并不是真的有必要。如果你只是在玩玩,ext2 很简单,可以自己实现。在 Linux 上,您只需卸载一个文件系统,然后像访问一个大文件一样访问该分区。 (当然,必须为此扎根)。不过,我建议为此买一个 USB 记忆棒。

    “覆盖一个文件夹的文件和 inode 操作”的想法表明您希望与操作系统共享访问权限。那是行不通的。有一方在控制,要么是你的程序,要么是操作系统,而不是两者兼而有之。

    不过,您可以通过将一个文件夹替换为指向您自己的文件系统的符号链接来稍微接近一点,但这必须是一个 FUSE 文件系统。 (假设您想坚持用户模式 ​​- FUSE 是内核与用户模式文件系统对话的方式)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-13
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多