我正在尝试编辑Linux内核的几个项目。
其中一个项目是编写一个系统调用函数,该函数将接收程序的名称,并且不允许该程序通过execv运行(注意,可以阻止多个程序 - 我们需要一个被阻止的程序列表)。
我已经想出了为大部分练习做些什么。例如,一个挑战是记录某个进程的所有尝试以执行任何被阻止的程序 - 我决定使用kmalloc()将其存储在进程的堆中。
但是,我正在讨论存储“被阻止程序列表”的位置 - 无论哪个进程正在运行,在execv中我们必须有权访问此列表。那么将这个列表存储在init进程的堆中是否有意义,或者是否存在一些在所有进程之间共享的“通用”内存位置(之前从未听说过,但我想知道是否有一个)。
如果答案确实在init堆中,那么如何从当前运行的任何进程中分配内存?