Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux-将用户空间文件系统(模仿:-)装载为文件系统_Linux_Linux Kernel_Filesystems_Device Driver_Linux Device Driver - Fatal编程技术网

Linux-将用户空间文件系统(模仿:-)装载为文件系统

Linux-将用户空间文件系统(模仿:-)装载为文件系统,linux,linux-kernel,filesystems,device-driver,linux-device-driver,Linux,Linux Kernel,Filesystems,Device Driver,Linux Device Driver,我有一段C代码,它有一块内存(静态数组)可以模拟文件操作(它有类似于fopen/fclose等的API)。因此,使用这个模拟文件系统编译的任何代码都可以将这些API用作满足其所有需要的文件系统:) 但我想知道,是否有可能以某种方式将这些API注册到Linux系统/安装此文件系统,从而使任何客户机都能够通过使用正常的文件系统调用来使用此FS(无需将其与My_文件系统静态链接) 在寻找解决方案的过程中,我突然想到将我的_文件系统作为驱动程序!!!=> 是否可以将我的代码编译为设备驱动程序(驱动程序中

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

但我想知道,是否有可能以某种方式将这些API注册到Linux系统/安装此文件系统,从而使任何客户机都能够通过使用正常的文件系统调用来使用此FS(无需将其与My_文件系统静态链接)

在寻找解决方案的过程中,我突然想到将我的_文件系统作为驱动程序!!!=> 是否可以将我的代码编译为设备驱动程序(驱动程序中有内存块)并挂载此文件\u system@say
“/mnt/MyFs”
,并像USB驱动程序那样转移文件系统调用?(如果这可以做到,请你解释一下是怎么做到的,或者给我指一个我能读到的地方)

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

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

谢谢,


MicroKernel:)

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

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

看一看。这些已经随Linux一起提供,并且可以完成您想要做的所有事情,甚至更多。我不认为它们中的任何一个对于嵌入式系统来说都太贵。

看一看。这些已经随Linux一起提供,并且可以完成您想要做的所有事情,甚至更多。我不认为其中任何一个对于嵌入式系统来说都太贵了。

< P>我会考虑,但是只有当所有东西都使用系统C库(即没有静态链接的二进制文件)时,这才是可靠的。

< P>我会考虑,但是只有当所有的东西都使用系统C库(即没有静态链接的二进制文件)时,这才是可靠的。谢谢你的回复。FUSE看起来真的很有趣。但我主要关注的是运行Linux的嵌入式设备,所以我不太确定FUSE是否可以在那里使用。无论如何,我会尝试一下:)很抱歉没有提到运行Linux作为主要焦点的嵌入式系统。对于嵌入式系统的这种特殊情况,您是否愿意添加其他内容作为主要关注点。“嵌入式”体现了当今各种各样的硬件,甚至“运行Linux的嵌入式系统”也涵盖了巨大的范围。FUSE可以用于许多嵌入式系统(高端ARM系统,如智能手机),但对于其他系统(低内存uC系统,因此它们缺少MMU)。也许你可以进一步扩展你的限制。@Microkernel:我不太记得FUSE是什么时候击中主线的,但我几乎可以肯定它不是在2.4时代。许多“嵌入式”系统仍然使用2.4内核。这里我们真正需要知道的是您使用的Linux内核的版本。您好,谢谢您的回复。FUSE看起来真的很有趣。但我主要关注的是运行Linux的嵌入式设备,所以我不太确定FUSE是否可以在那里使用。无论如何,我会尝试一下:)很抱歉没有提到运行Linux作为主要焦点的嵌入式系统。对于嵌入式系统的这种特殊情况,您是否愿意添加其他内容作为主要关注点。“嵌入式”体现了当今各种各样的硬件,甚至“运行Linux的嵌入式系统”也涵盖了巨大的范围。FUSE可以用于许多嵌入式系统(高端ARM系统,如智能手机),但对于其他系统(低内存uC系统,因此它们缺少MMU)。也许你可以进一步扩展你的限制。@Microkernel:我不太记得FUSE是什么时候击中主线的,但我几乎可以肯定它不是在2.4时代。许多“嵌入式”系统仍然使用2.4内核。这里我们真正需要知道的是您正在使用的Linux内核的版本。这里最有用的是您正在使用的内核版本。。e、 g 2.4.xx或2.6.xx,这将有助于缩小建议的范围。”“嵌入式”可能意味着很多事情,特别是在处理Linux时。这里最有用的是您正在使用的内核版本。。e、 g 2.4.xx或2.6.xx,这将有助于缩小建议的范围。”“嵌入式”可能意味着很多事情,尤其是在处理Linux时。