Memory 通过mmap()共享内存的特定进程

Memory 通过mmap()共享内存的特定进程,memory,linux-kernel,shared-memory,Memory,Linux Kernel,Shared Memory,我的问题很简单,如何在允许读取和写入内存的进程之间共享内存。主要问题是只有特定进程(例如特定PID)应该能够共享内存。并非所有进程都应该能够共享内存。一个选项是使用标准的Sys V IPC共享内存。调用shmget()后,使用shmctl()设置权限。仅向一个组/用户授予读写权限,并启动允许以特定用户身份访问此组/用户的进程。可以使用ipcs找到共享内存密钥和ID,您需要信任标准的基于unix用户/组的安全性来完成这项工作 另一个选择是实现共享内存驱动程序。类似于安卓ashmem的东西。在驱动程

我的问题很简单,如何在允许读取和写入内存的进程之间共享内存。主要问题是只有特定进程(例如特定PID)应该能够共享内存。并非所有进程都应该能够共享内存。

一个选项是使用标准的Sys V IPC共享内存。调用shmget()后,使用shmctl()设置权限。仅向一个组/用户授予读写权限,并启动允许以特定用户身份访问此组/用户的进程。可以使用ipcs找到共享内存密钥和ID,您需要信任标准的基于unix用户/组的安全性来完成这项工作

另一个选择是实现共享内存驱动程序。类似于安卓ashmem的东西。在驱动程序中,您可以验证试图访问内存的调用方的PID/UID,并基于过滤器允许/拒绝请求。您还可以实现一个sysfs条目来修改这些过滤器。如果过滤器需要可配置,则同样需要信任基于Unix用户/组的安全性。如果要实现驱动程序,您将有很多安全选项

请参阅。