我正在尝试从当前运行的c程序启动一个新程序(进程)。我没有使用fork()和exec()函数,而是想使用linux内核函数,如switch_mm()/ activate_mm()或copy_mm()等。
我想到的是首先在内存中创建一个新的地址空间并将新的可执行文件(ELF)加载到内存中。然后使用switch_mm()或activate_mm()等命令从当前地址空间切换到新的地址空间,让新程序开始执行。我不确定这是否是正确的方法。但是,我认为有Linux内核函数可用于执行这些任务。我不知道如何在当前进程中创建新的地址空间并加载ELF。我也不确定是否可以使用单个流程完成此任务(不为新程序创建新流程)。任何帮助将不胜感激。