【发布时间】:2017-04-26 03:55:46
【问题描述】:
我知道操作系统提供的用于保护程序不访问其他程序内存的系统调用。但这只有在我使用了 OS 提供的系统调用库时才有帮助。如果我自己编写一个汇编代码,为内核模式设置 CPU 位并执行特权指令(假设修改操作系统在内存中的程序段)怎么办。操作系统可以防止这种情况吗? 附言出于好奇的问题。如果可以提供任何好的博客或书籍参考,那将很有帮助,因为我想尽可能详细地研究操作系统。
【问题讨论】:
-
操作系统将标准进程置于这样的指令将导致异常的模式。内存也受到保护,包括禁用从数据区域运行代码的能力。但是,调试器类型的进程可以覆盖所有这些。
-
操作系统如何设置这种指令会导致异常的模式?一旦操作系统将 CPU 交给一个进程,那么该进程就可以做任何事情。所以进程不能为特权模式设置CPU标志并执行任何指令
-
这取决于处理器,但通常程序在受限模式下运行,以防止它们脱离受限模式。
标签: memory-management operating-system system-calls kernel-mode memory-safety