我理解系统调用如何在内部工作,即它们如何在内核中实现以及如何从用户空间调用它们(通过创建异常并在正确的寄存器中使用系统调用号)。我还不知道的是:
实现与系统调用相对应的用户空间函数的最佳做法是什么? (例如所有熟悉的功能,如open
,fork
,dup
等。因此,我想在User-Space中调用一个名为实际系统调用的函数,而不是使用syscall(number)
函数。
AFAIK可以通过unistd.h标头提供的一些宏轻松创建它们,但我真的不知道如何使用它。我已经阅读了有关__SYSCALL
和_syscall
的内容,但如果我查看来源,我真的找不到可以理解的例子。那么有谁知道如何制作一个定制的系统调用"可用"在用户空间?