linux - 共享内存性能和对其他进程的保护

标签 linux security shared-memory

我正在尝试实现一个 JIT 编译器(我有非常古怪的爱好)。

我希望有一个主进程保留一些持久变量,第二个进程(已实时编译)执行一些计算并可以访问和写入持久变量。

第二个进程可以更改和重新编译,但持久变量必须在第二个进程的两次执行之间保持相同。

我的第一个问题是:共享内存是适合它的工具吗? (同样在性能方面,因为我希望执行速度尽可能快。)

我的第二个问题是:如果我使用 shm_overview.7 中描述的共享内存,在我看来,具有相同 uid 的任何其他进程都可以访问它。我该如何预防?我希望只有上述两个进程能够访问此共享内存。

最佳答案

您可能会考虑的另一种架构是动态加载。您只有第一个,而不是两个过程;它使用 dlopen() 加载新编译的代码。它调用这个“库”的入口点,代码可以访问包括持久变量在内的所有空间。返回时,您卸载库,为下一次“运行”做好准备。

创建这样一个可加载的库并调用它相当简单,而且比执行一个全新的进程要快。权限没有问题,因为您的唯一进程决定加载和运行什么。

关于linux - 共享内存性能和对其他进程的保护,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30823583/

相关文章:

c++ - 导入 C++ 类的问题

Linux + 在数百台 Linux 机器上并行运行 yum update 的最佳方法是什么

javascript - 服务 worker : caching POST requests with IndexedDB - security concerns

security - MongoDB:使用文档 ID "in public"是否安全?

python - 在 Python 进程之间共享一个大的(只读的)二进制字符串?

docker - 在没有--privileged选项的情况下在Docker容器中挂载shm

linux - Git需要用户名和密码进行git push,git pull使用HTTPS方式

security - 在家中良好的安全备份开发人员

php - 在 PHP 中有没有办法像在 Java EE 中那样使用持久数据? (在 PHP 线程之间共享对象)没有 session 也没有缓存/DB

php - Linux 主机中的 Cron 作业命令