2016-06-09 128 views
1

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

回答

5

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

这不是真的有必要。如果你只是在附近玩耍,ext2很简单,可以实现你自己。在Linux上,您可以卸载文件系统,然后像访问一个大文件一样访问该分区。 (当然,这是根源)。尽管如此,我建议为此获得USB记忆棒。

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

虽然可以通过用符号链接替换一个文件夹到自己的文件系统来获得某种程度的接近,但这必须是FUSE文件系统。 (假设你想坚持用户模式--FUSE是内核与用户模式文件系统的对话)