【发布时间】:2018-09-08 12:04:45
【问题描述】:
我正在练习在虚拟机上构建一个新的 linux 内核。我对其中的模块的步骤导入参数中的 2 个文件 syscall_32.tbl 和 syscall_64.tbl 有一些疑问。
我知道文件syscall_32.tbl 有5 个参数[number] [abi] [name], [entry point], [compat entry point],而文件syscall_64.tbl 有4 个没有[compat entry point]。
我有一些问题我找不到答案。
[number]:该列的范围值是多少。我发现这些数字是联合和递增序列。如果现在我导入新的大数字(比如 10^6),可以吗?[abi]:我知道在文件syscall_64.tbl中,列的值可能是common,64,x32。每个值的含义是什么?为什么他们之间不一样?以及为什么机器 64 位在此列中有值x32?[name]:我知道[entry point]和[compat entry point]用于运行系统调用的函数。而当用户调用系统调用时,我们不需要调用name,我们只使用[number],内核空间使用[entry point]运行。这个专栏的原因是什么([name])?
感谢您的意见和回答。对不起我的英语不好。
【问题讨论】:
标签: linux linux-kernel kernel system-calls kernel-module