exi*_*lit 3 c c++ assembly kernel low-level
上下文: 根据此描述,用户空间程序不能执行处理器提供的所有操作.上面链接中的描述说cpu中有不同的操作级别.
问题: 如何防止用户空间代码被cpu在特权级别执行?在不使用系统调用的情况下使用汇编语言切换到更高级别是不是可能?
我很确定它不是,但我不明白为什么.任何人都可以指出这一点或指向一些处理这个主题的资源?
R..*_*R.. 10
当cpu到达一条指令时,由于要执行的指令的标识,要访问的存储器地址或某些其他条件,在当前权限级别不允许,会引发cpu异常.这基本上保存了当前的cpu状态(寄存器内容等),并将执行转移到以内核权限级别运行的预设内核地址,该内核地址可以检查要执行的操作并决定如何继续.实际上,如果不允许执行操作,它通常会以内核终止进程结束.
归档时间:
11 年,9 月 前
查看次数:
126 次
最近记录: