Oli*_*Oli 3 linux security shared-memory
我正在尝试实现一个JIT编译器(我有非常讨厌的爱好).
我想有一个主进程保留一些持久变量,第二个进程(刚刚编译)进行一些计算,可以访问和写入持久变量.
第二个进程可以更改并重新编译,但持久变量必须在第二个进程的两次执行之间保持相同.
我的第一个问题是:共享内存是否适合它?(另外在性能方面,因为我希望执行尽可能快.)
我的第二个问题是:如果我使用shm_overview.7中描述的共享内存,在我看来,任何其他具有相同uid的进程都可以访问它.我该怎样预防呢?我希望只有上述两个进程才能访问此共享内存.
您可能考虑的另一种架构是动态加载.而不是2个过程,你只有第一个过程; 它用于dlopen()加载新编译的代码.它调用此"库"的入口点,并且代码可以访问包括持久变量在内的所有空间.返回时,您卸载库,准备下一次"运行".
创建这样一个可加载的库并调用它非常简单,并且比执行整个新进程更快.权限没有问题,因为您的唯一进程决定加载和运行的内容.