【问题标题】:Reading memory in memory-protected OS在受内存保护的操作系统中读取内存
【发布时间】:2016-03-07 03:59:28
【问题描述】:

现代操作系统和 CPU 硬件提供内存保护,防止进程访问分配给进程的内存以外的内存。

考虑到这一点,如何编写像 Windows 的资源管理器这样的实用程序来报告有多少内存是可用的、正在使用的、已保留的等等;或基本的内存转储实用程序等?通过使这样的程序成为具有内核权限的操作系统的一部分,在此类系统上执行此操作的唯一方法是什么?

有些操作系统 API 可以允许访问另一个进程的内存。但即使你使用这些,你的内存读取程序仍然需要特权。通过操作系统是找出内存和 CPU 寄存器内容的唯一方法吗?

磁盘监控程序的情况是否类似?

【问题讨论】:

    标签: memory operating-system


    【解决方案1】:

    内存是一堆单独标记的内存位置,它们是 1 或 0、高或低、开或关。这些是位。 使用这些位需要一定的电流,打开或关闭它们,所以也许你可以读取内存正在使用多少电流,找到你的最小值和最大值来设置基准,并查看内存使用量电流变化。

    使用软件来完成这项任务将是一项艰巨的任务。它在内核级别甚至上游。

    使用磁盘监控系统,计算来自和去往的实际位数。

    【讨论】:

    • 这需要在计算机硬件中内置精细的监控硬件。不过,这个想法很有趣。
    【解决方案2】:

    鉴于此,如何编写像 Windows 的资源管理器这样的实用程序来报告有多少内存是可用的、正在使用的、已保留的等等;或基本的内存转储实用程序等?

    此类应用程序调用操作系统中的系统服务来获取此类数据。这些可能是记录在案的,也可能是无证的。

    【讨论】:

      猜你喜欢
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 2013-02-09
      • 1970-01-01
      • 2010-11-17
      • 2010-10-10
      • 1970-01-01
      相关资源
      最近更新 更多