没有内核的Linux文件系统

时间:2016-06-09 06:46:54

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

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

1 个答案:

答案 0 :(得分:5)

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

并非真的有必要。如果您只是在玩弄,ext2很容易实现自己。在Linux上,您可以卸载文件系统,然后访问该分区,就像它是一个大文件一样。 (当然,这必须是根)。不过,我建议购买USB记忆棒。

"覆盖一个文件夹的文件和inode操作的想法"但是,建议您要与操作系统共享访问权限。这不起作用。有一方控制,这可能是你的程序或操作系统,而不是两者。

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