• Y
    2022-03-09
    用户空间或用户代码:运行在CPU普通权限模式 每个空间或内核代码:运行在CPU特权模式 用户空间使用内核资源:是系统调用 请问老师:如果CPU没有特权模式,是不是也就没有内核态和用户态的区别?

    作者回复: 是的,运行在这类 CPU 上的操作系统也可能会采用比如“基于能力的安全”等策略来进行资源控制。

    共 2 条评论
    1
  • Geek_4911b5
    2022-07-27
    而在目前被广泛使用的 x86-64 体系中,通过 syscall 指令进行系统调用仍然是最高效,也最具兼容性的一种方式。syscall 指令的全称为“快速系统调用(Fast System Call)”,CPU 在执行该指令时不会产生软中断,因此也无需经历栈切换和查找中断向量表等过程,执行效率会有明显的提升。 老师,syscall指令为啥会有这些特定,原理是啥?

    作者回复: 这个讲起来比较复杂,粗略理解可以看下面这个回答: https://unix.stackexchange.com/questions/14293/difference-between-slow-system-calls-and-fast-system-calls

    共 2 条评论
    