【发布时间】:2021-07-15 03:03:55
【问题描述】:
我知道在使用例如输入系统调用后syscall, int 0x80 (x86/x86-64) 或 svc (ARM) 指令,从 Linux 内核的角度来看,我们停留在调用进程上下文中(但从用户模式切换到内核模式)。但是,从硬件的角度来看,我们跳到了 syscall/svc/... 异常处理程序中。整个系统调用代码是在 Linux 的异常处理程序中执行的吗?
【问题讨论】:
-
从某种意义上说,是的。但是我不确定将其视为“在处理程序内部”是否有用;而是使用中断/异常/系统调用处理机制作为在非特权代码和特权代码之间转换的一种方式。
标签: linux operating-system system-calls cpu-architecture