当使用ltrace跟踪fork,vfork等程序的系统调用时,它显示调用SYS_Clone系统调用。 那么SYS_fork,SYS_vfork系统调用在内核中的重要性如何? 他们是为了历史的目的?
什么“Syscall()”意味着去包“系统调用”?
Linux系统调用:getaddrinfo返回-2
在Linux中添加系统调用0.01使用C ++的“信号量”
Unix / Linux系统是否调用POSIX库函数的一部分?
所有的系统调用都是非实时安全的吗?
它们必须在内核中维护,因为旧的用户空间程序(旧版本的libc或旧的静态链接的二进制文件)会调用这些系统调用而不是新的clone 。 Linux内核在ABI中保持向后兼容性。
如果新的架构添加到Linux内核中,则不必支持那些过时的系统调用,因为该架构不会有旧的用户空间。 所以你会发现,例如, ia64架构没有SYS_fork调用。