没有内核的Linux文件系统

oel*_*rld 1 c c++ linux filesystems linux-kernel

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

MSa*_*ers 5

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

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

"覆盖一个文件夹的文件和inode操作"的想法表明您希望与操作系统共享访问权限.这不起作用.有一方控制,这是你的程序或操作系统,而不是两者.

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