3

当使用 ltrace 跟踪具有 fork、vfork ... 的程序的系统调用时,它显示调用 SYS_Clone 系统调用。那么SYS_fork、SYS_vfork系统调用在内核中的重要性是什么。他们是出于历史目的吗?

4

1 回答 1

4

它们必须在内核中维护,因为旧的用户空间程序(旧版本libc或旧的静态链接二进制文件)调用这些系统调用,而不是较新的clone. Linux 内核在 ABI 中保持向后兼容性。

如果将新架构添加到 Linux 内核中,它就不必支持那些过时的系统调用,因为该架构不可能有旧的用户空间。例如,您会发现ia64架构没有SYS_fork调用。

于 2013-08-17T13:43:17.457 回答