gpt4 book ai didi

memory-management - 内存保护的最新技术是什么?

转载 作者:行者123 更新时间:2023-12-04 07:49:56 25 4
gpt4 key购买 nike

我对 C 和指针和内存管理等低级语言的了解越多,我就越想知道现代操作系统和内存保护的最新技术。例如,有哪些检查可以防止某些流氓程序随机尝试读取尽可能多的地址空间而无视操作系统设置的规则?

一般来说,这些内存保护方案是如何工作的?他们的优势和劣势是什么?换句话说,在现代操作系统中运行已编译的程序时,即使您拥有 C 语言并且您拥有自己的编译器并进行了任何您想要的调整,是否有一些事情根本无法完成?

最佳答案

保护由硬件(即 CPU)强制执行。应用程序只能将地址表示为虚拟地址,CPU 使用 lookaside buffers 解析虚拟地址到物理地址的映射。 .每当 CPU 需要解析未知地址时,它都会产生“页面错误”,中断当前正在运行的应用程序并将控制权切换到操作系统。操作系统负责查找其内部结构(page tables),并找到应用程序所触及的虚拟地址与实际物理地址之间的映射。一旦找到映射,CPU 就可以恢复应用程序。

加载物理地址和虚拟地址之间的映射所需的 CPU 指令受到保护,因此只能由 protected 组件(即操作系统内核)执行。

总体而言,该方案有效,因为:

  • 应用程序无法寻址物理内存
  • 解决从虚拟到物理的映射需要 protected 操作
  • 仅允许操作系统内核执行 protected 操作

如果恶意模块被加载到内核中,该方案会失败,因为在该保护级别它可以读取和写入任何物理地址。

应用程序可以读取和写入其他进程的内存,但只能通过要求内核为它们执行此操作(例如在 Win32 ReadProcessMemory 中),并且此类 API 受访问控制保护(调用者需要某些特权)。

关于memory-management - 内存保护的最新技术是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1488869/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com