Operating system 中断时的操作系统例程

Operating system 中断时的操作系统例程,operating-system,kernel,interrupt,interrupt-handling,Operating System,Kernel,Interrupt,Interrupt Handling,我正在阅读如何在进程映像中执行模式切换,我不明白为什么进程映像有内核堆栈而不仅仅是用户堆栈?这是在中断发生时完成的。用户堆栈和内核堆栈不是做同样的事情吗?这是为了安全。对于每个处理器模式,一个进程通常有一个堆栈。通常有一个系统范围的或进程中断堆栈,它是一个附加的内核模式堆栈 内核堆栈仅限于内核模式访问。这可以防止用户模式代码破坏内核堆栈,从而防止内核模式下发生不好的事情(例如,更改过程的返回地址)。这是为了安全。对于每个处理器模式,一个进程通常有一个堆栈。通常有一个系统范围的或进程中断堆栈,它是

我正在阅读如何在进程映像中执行模式切换,我不明白为什么进程映像有内核堆栈而不仅仅是用户堆栈?这是在中断发生时完成的。用户堆栈和内核堆栈不是做同样的事情吗?

这是为了安全。对于每个处理器模式,一个进程通常有一个堆栈。通常有一个系统范围的或进程中断堆栈,它是一个附加的内核模式堆栈


内核堆栈仅限于内核模式访问。这可以防止用户模式代码破坏内核堆栈,从而防止内核模式下发生不好的事情(例如,更改过程的返回地址)。

这是为了安全。对于每个处理器模式,一个进程通常有一个堆栈。通常有一个系统范围的或进程中断堆栈,它是一个附加的内核模式堆栈


内核堆栈仅限于内核模式访问。这可以防止用户模式代码破坏内核堆栈,从而防止内核模式下发生不好的事情(例如,更改过程的返回地址)。

感谢您的帮助!我很感激您的回答,但是如果用户需要更改返回地址,怎么办?它不能在用户模式下更改吗?用户模式代码不能更改内核堆栈上的返回地址。谢谢您的帮助!我很欣赏这个答案,但是如果用户需要更改返回地址怎么办?它不能在用户模式下执行吗?用户模式代码不能更改内核堆栈上的返回地址。