我正在开发一个具有两个CPU和一个共享内存的测量设备:
=>[ CPU:0 RTOS/Measurements ] [ CPU: 1 Linux/User]
\ / |
\[ Shared Memory ]/ |
struct HotData /measure
{ int x; -> /x
char[20] y; -> /y
long z; }; -> /z目前,我有一个共享内存,其中CPU-0测量一些数据,并周期性地更新结构"HotData“。由于实时性的限制,我不想触及CPU-0上的代码.另一方面,Linux内核可以访问这个共享空间并读取最新的数据。
接下来,我想在Linux上创建一个“超级轻量级”虚拟文件系统,将这些数据字段映射到一个文件中。因此,任何用户应用程序/脚本都可以轻松地访问“/测量/x”,并获得最新的测量结果。
发布于 2021-01-05 16:20:26
您可能希望查看熔断器 (用户空间中的文件系统)。它是一个文件系统驱动程序(默认情况下随许多Linux发行版一起提供),它允许您对普通非特权应用程序/进程提供的虚拟文件系统进行mount。
(想想NFS,但它是本地的,而且它并不局限于NFS协议。有一些现有的FUSE解决方案可用于安装远程SFTP服务器,甚至还有一种将Wikipedia表示为文件/目录结构的解决方案,如果我还记得.)
有很多语言的绑定和库--有一个Python中的示例,它展示了用它实现虚拟文件系统是多么容易。
听起来您可能在C/C++中工作,在这种情况下,您可能需要libfuse (官方示例代码链接)。这似乎是一个简单的介质上的C教程。
https://stackoverflow.com/questions/65582364
复制相似问题