Linux - 将用户空间文件系统(模仿一个:-))安装为FileSystem

时间:2010-07-02 19:32:44

标签: linux linux-kernel filesystems device-driver linux-device-driver

我有一段C代码,它有一块内存(静态数组)可以模仿文件操作(它有类似于fopen / fclose等的API)。因此,使用这个模仿FileSystem编译的任何代码都可以将这些API用作FileSystem以满足他们的所有需求:)

但是我想知道,如果它可能以某种方式用Linux系统/ mouning这个文件系统注册这些API,从而使任何客户端能够通过使用普通的FileSystem调用来使用这个FS(不需要将它与My_FileSystem静态链接) )。

在寻找解决方案时,我遇到了将my_FileSystem作为驱动程序的想法! => 是否可以将我的代码编译为设备驱动程序(驱动程序中的内存块)并安装此File_system @ say "/mnt/MyFs",并转移像USB驱动程序那样的文件系统调用? (如果可以这样做,请你解释它是如何完成的,或者指出我可以阅读的内容。)

我不想将这些作为新的系统调用添加并重新编译内核(并使ppl的生活想要使用这个困难)。

这主要适用于运行Linux的嵌入式系统......但也欢迎其他建议。 :)

谢谢,

MicroKernel:)

3 个答案:

答案 0 :(得分:6)

查看FUSE(用户空间中的文件系统),尤其是示例。它很容易......

答案 1 :(得分:1)

看看tmpfs and ramfs。这些已经随Linux一起提供,并完成了您正在尝试做的所有事情。对于嵌入式系统,我认为它们中的任何一个都不会太昂贵。

答案 2 :(得分:0)

我会考虑PlasticFS,但只有在所有内容都使用系统C库(即没有静态链接的二进制文件)时才能可靠地工作。