linux - 软件中断例程和用户态函数的区别

标签 linux process operating-system linux-kernel context-switch

嗯,我的问题在标题中

众所周知,异常处理程序负责将用户模式切换到内核模式
这涉及到某些汇编指令

据称这样做是为了防止应用程序使用高权限指令和访问受限的内存区域

用户模式应用程序不能自行执行此用户内核切换吗?即在应用程序本身的常用函数例程中使用这些汇编指令?

如果是这样,那么我无法理解软件中断的意义以及与用户内核切换相关的所有安全考虑因素

我们只需在程序中实现该开关即可,瞧!我们现在处于内核模式

WTH

最佳答案

你犯了一个错误:用户唯一能做的就是调用一个可以执行特权指令的例程。这是通过软件中断来完成的。之所以称为中断,是因为在处理调用时原始用户模式程序被停止。这样,用户态程序完全无法执行特殊权限,但可以调用内核中可以执行的中断例程。程序本身永远不会处于内核模式。

关于linux - 软件中断例程和用户态函数的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12862071/

相关文章:

linux - shell脚本确实使用cat读取了文件

linux - 使用curl上传图片

c - 访问 C linux 中 fork 之前创建的子进程中的字符串数组

linux - 如何在另一个 linux 终端中结束一个进程

c++ - 在另一个平台上构建?

assembly - 操作系统 不同架构的汇编语言

python - 通过 ssh 从远程 Linux 机器运行本地 python 脚本

linux - 在 vim Linux 中向上删除行

multithreading - 进程和线程有什么区别?

c - 当您调用克隆系统调用时,谁设置了 RIP 寄存器?