C 我可以使用文件描述符创建自定义文件系统吗?

C 我可以使用文件描述符创建自定义文件系统吗?,c,linux,linux-kernel,filesystems,linux-device-driver,C,Linux,Linux Kernel,Filesystems,Linux Device Driver,在我参加的一门课程中,我的任务是创建一个具有一些自定义特性的文件系统。我只是使用dd创建了一个零的映像,并通过为它创建superblock、inode、stat文件等创建了我的文件系统。它可以读取/写入文件、导入和导出文件和目录,并具有适当的目录层次结构。 现在我想用一个实际的物理分区来实现这一点。我查看了很多地方,发现文件描述符可以作为普通文件读取。但我想知道它是否依赖于分区中现有的文件系统。我能绕过一切,简单地获得一个按块读/写接口,并且能够查找字节或块吗?这方面的开销是多少? 此外,我想将

在我参加的一门课程中,我的任务是创建一个具有一些自定义特性的文件系统。我只是使用dd创建了一个零的映像,并通过为它创建superblock、inode、stat文件等创建了我的文件系统。它可以读取/写入文件、导入和导出文件和目录,并具有适当的目录层次结构。

现在我想用一个实际的物理分区来实现这一点。我查看了很多地方,发现文件描述符可以作为普通文件读取。但我想知道它是否依赖于分区中现有的文件系统。我能绕过一切,简单地获得一个按块读/写接口,并且能够查找字节或块吗?这方面的开销是多少?

此外,我想将其转换为linux模块,以便我的文件系统可以与文件管理器一起工作。我需要实现什么样的标准API接口才能实现它?

请把我引向正确的方向。

你有很多选择;集成到内核相对比较困难,而与用户空间文件系统框架(github上的libfuse)集成是一个很好的中间步骤。最后,您将拥有一个可用的文件系统。

我感谢您推荐FUSE,但我真的很想学习完整实现它的直接方法。我还是个学生。我希望你能理解。单问题帖子里的问题太多了。堆栈溢出对于“从哪里开始”之类的问题来说是一个不好的地方。如果您想在Linux内核中实现toy文件系统,您可以在google上搜索“Linux内核文件系统示例”,并遵循其中一个示例。