内核如何处理系统调用?
How systemcalls are handled by the kernel?
我以前认为系统调用是黑盒,后来我发现它向内核发送一个中断(0x80),内核调用适当的中断处理程序。但是我仍然无法理解引擎盖下到底发生了什么,中断处理程序究竟是什么以及如何工作?中断处理程序是内核的一部分吗?
它与函数调用有何不同?函数调用有一组规则。在这种情况下,调用包含一组规则、输入、输出。调用它的方式略有不同。出于充分的理由,您可以跨越保护边界。软件中断允许逻辑从您的应用程序转到内核代码,读取输入,做出反应,然后 return.
这里几乎没有魔法。
我以前认为系统调用是黑盒,后来我发现它向内核发送一个中断(0x80),内核调用适当的中断处理程序。但是我仍然无法理解引擎盖下到底发生了什么,中断处理程序究竟是什么以及如何工作?中断处理程序是内核的一部分吗?
它与函数调用有何不同?函数调用有一组规则。在这种情况下,调用包含一组规则、输入、输出。调用它的方式略有不同。出于充分的理由,您可以跨越保护边界。软件中断允许逻辑从您的应用程序转到内核代码,读取输入,做出反应,然后 return.
这里几乎没有魔法。