无分叉的重复进程

问题描述 投票:0回答:1

在linux嵌入式系统中,我可以看到在 ps 同一二进制的2个进程(pid1=X, pid2=Y),这些进程没有线程(/proc/X/task/proc/Y/task 不存在)

当我看着 /proc/Y/status 我可以看到父节点的pid(PPID)是X。

我在Ida的二进制文件上看了一下,那个动态二进制,并没有看到 fork 函数的导入表。

当我用PTRACE改变pid X或pid Y的一些指令时,会影响到另一个pid,所以它们似乎共享同一个代码区。

如果Y是X的线程,我应该看到它在 /proc/X/task 而不在 ps 不显示线程标志。

哪个函数可以复制共享相同代码区的进程,但属于 fork ?

c linux process fork ps
1个回答
0
投票

哪个函数可以复制共享同一代码区的进程?

据我所知,我可以列出系统调用。

  • fork
  • vfork - fork 有一些限制和更快
  • clone - fork 但linux特有的微调一切。
  • clone3 - 新版 clone()
  • clone2 - clone 只有在IA-64上才可使用的IA-64专用设备。
© www.soinside.com 2019 - 2024. All rights reserved.