Linux 内核是否支持 PARTIAL exec

Linux 内核是否支持 PARTIAL exec

我正在看另一个问题(https://stackoverflow.com/q/47845/537980),并看到了一个答案,关于每个进程创建时另一个操作系统必须做多少设置。

我想知道。是否可以进行设置(一次,然后 fork),然后进行部分的exec 加载变量部分?那只是过程的一部分应该被替换。

部分的一个具体例子是。我们想要加载一些执行环境,然后用 exec 来替换加载器,但不是环境。所以这是控制被替换的内容(我知道 exec 不会替换所有内容(例如,它保留文件描述符表的 COW))。

我意识到这可能没有任何实际用途,因为forkexec在许多 Unix 上相对便宜。

答案1

未经测试的想法的部分答案。

按名称打开文件,exec您仍然拥有文件的句柄,因此mmap它们。

答案2

当然你可以做一个“部分执行”;你mmap(PROT_EXEC)从另一个文件中分页到你的地址空间,跳进它们,雅皮士! “部分执行”。我不知道你是否可以复制 exec 在用户空间中所做的一切 - 但你当然可以复制其中的大部分。

——摘自@pizdelect 的评论

相关内容