引用自https://www.kernel.org/doc/Documentation/process/adding-syscalls.rst:
至少在 64 位 x86 上,从 v4.17 开始,不调用内核中的系统调用函数将成为硬性要求。它对系统调用使用不同的调用约定,
struct pt_regs
在系统调用包装器中即时解码,然后将处理交给实际的系统调用函数。这意味着在系统调用入口期间仅传递特定系统调用实际需要的参数,而不是始终用随机用户空间内容填充六个 CPU 寄存器(这可能会导致调用链出现严重问题)。
最后一个带括号的子句指的是调用链中的什么严重问题?
对我来说,不将六个寄存器加载到系统调用的通用引导中似乎很愚蠢。强制每个系统调用包装器这样做会使它们变得更大,并且系统调用函数成为一种新的特殊情况,所以我想知道在未使用的参数寄存器中存在无意的用户内容的“严重问题”是什么。