【问题标题】:Virtual memory usage虚拟内存使用
【发布时间】:2018-11-12 07:02:17
【问题描述】:

我想知道是否有人可以告诉我虚拟内存的低端通常用于什么。我一直在尝试搜索很多,但找不到答案。我还浏览了“计算机系统:程序员视角”,但找不到答案。

在线模型通常如下所示:

他们似乎总是忽略了底部。 所以我想知道,这里有没有人能告诉我这部分虚拟内存空间是用来做什么的?

编辑:

我发现了这个: https://gist.github.com/CMCDragonkai/10ab53654b2aa6ce55c11cfc5b2432a4

其中还引用了这些 SO 答案:

http://stackoverflow.com/questions/7187981/whats-the-memory-before-0x08048000-used-for-in-32-bit-machine

http://stackoverflow.com/questions/12488010/why-the-entry-point-address-in-my-executable-is-0x8048330-0x330-being-offset-of

http://stackoverflow.com/questions/14314021/why-linux-gnu-linker-chose-address-0x400000

【问题讨论】:

    标签: virtual-memory


    【解决方案1】:

    首先请记住,您发布的图表本质上是教学性的,而不是事实。

    所有的虚拟内存系统都将逻辑地址范围划分为用户空间和系统空间。这是图中完全正确的描述。在这些区域内放置的东西可以有很大的不同。

    您专门询问的是低端产品。加载程序通常会设置虚拟地址空间,以便第一页(或前几页)不映射到地址空间。默认情况下,从零开始的逻辑地址将不可访问。这样做是为了捕获空点引用。

    【讨论】:

    • 啊,有道理!
    猜你喜欢
    • 2013-10-21
    • 2018-07-09
    • 2014-12-16
    • 2012-02-07
    • 2014-08-06
    • 2013-12-03
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    相关资源
    最近更新 更多