【发布时间】:2016-05-11 19:05:34
【问题描述】:
Linux 中虚拟内存的大小是如何决定和计算的? 32bit/64bit 系统的虚拟内存大小是多少?
【问题讨论】:
标签: linux memory-management linux-kernel virtual-memory
Linux 中虚拟内存的大小是如何决定和计算的? 32bit/64bit 系统的虚拟内存大小是多少?
【问题讨论】:
标签: linux memory-management linux-kernel virtual-memory
虚拟地址空间的大小取决于操作系统。
硬件设置逻辑地址空间的底层大小(2^32 或 2^64 字节)。虚拟内存的大小通常会小于以下限制:
【讨论】:
虚拟内存可以是任意大小,如果需要,它可以大于可用的物理内存。如果你不明白为什么会这样,那么你需要了解更多关于虚拟内存的知识。但是,虚拟地址空间通常将与物理地址空间大小相同。这意味着在 32 位系统上,虚拟和物理内存都将是 4GiB 大。区别在于每个程序都可以访问自己的4GiB虚拟内存,并且会通过分页+交换来保证一个用户程序的内存不能被其他用户程序访问。
要更详细地了解 Linux 中如何实现分页,您可以阅读Paging section on OSDev。
【讨论】:
虚拟内存的大小也取决于处理器,处理器可以寻址多少地址空间,很简单,32位是4gb,64位是2^64。
【讨论】: