使用ltrace跟踪带有fork,vfork的程序的系统调用...它显示调用SYS_Clone系统调用。那么内核中SYS_fork,SYS_vfork系统调用的重要性是什么。它们是出于历史目的吗?
答案 0 :(得分:3)
它们必须在内核中维护,因为旧的用户空间程序(旧版本的libc
或旧的静态链接二进制文件)会调用这些系统调用而不是较新的clone
。 Linux内核在ABI中保持向后兼容性。
如果在Linux内核中添加了新的体系结构,则它不必支持那些过时的系统调用,因为该体系结构不能有旧的用户空间。例如,您会发现ia64
架构没有SYS_fork
电话。