c - 什么是system - 系统调用过程




系统调用的历史是否已添加到Linux? (3)

有什么地方我可以获得每个系统调用所需的Linux最低版本的完整列表吗? 我正在寻找表格问题的一般答案“如果我使用系统调用X,那么我的代码可以运行的Linux的最低版本是什么?”


Linus长期以来一直批评用户空间检查特定内核版本以了解功能是否可用 - 建议的方法是测试您想要的功能(未实现的系统调用确实返回ENOSYS )。

其中一个原因是版本号的含义并不像它们看起来那么多 - 大多数用户实际运行的分发器内核通常具有从较新的内核版本向后移植的功能。 在这方面,他们中的一些人是真正的科学怪人的怪物。


您可以在“版本”部分的API调用页面底部附近使用http://linux.die.net/等网站找到此信息。 例如,在Linux 2.6.13中添加了inotify。

对于posix调用,这不适用,因为它们是在Posix规范下收集的,例如,read具有提及POSIX.1-2001的“符合”部分。


此信息可在syscalls(2)手册页中找到。 对于那些没有指示内核版本的系统调用,系统调用出现在内核1.0或更早版本中。





system-calls