![在 32 位操作系统上使用 4 GB 进行交换是否有意义?](https://linux22.com/image/652915/%E5%9C%A8%2032%20%E4%BD%8D%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B8%8A%E4%BD%BF%E7%94%A8%204%20GB%20%E8%BF%9B%E8%A1%8C%E4%BA%A4%E6%8D%A2%E6%98%AF%E5%90%A6%E6%9C%89%E6%84%8F%E4%B9%89%EF%BC%9F.png)
如果我已经有 32 位操作系统(Linux)和 4 GB RAM,那么拥有交换空间是否有意义?
因为它必须用 32 位地址来寻址,而这些地址已经被 RAM 全部“用完”,所以操作系统是否可以访问交换?
答案1
当然。为什么不呢?我认为更相关的问题是现在使用 32 位操作系统是否有意义,但我离题了。
首先,您误以为 32 位操作系统只能寻址 4 GB 内存,但事实并非如此。 32 位系统可以通过使用物理地址扩展 (PAE) 来寻址超过 4 GB 的内存,而在 Linux 中,从内核版本 2.3.23 开始就支持此功能,允许寻址高达 64 GB 的内存。因此,实际上,拥有 4 GB 的 RAM 并不是特别重要。
此外,当您考虑交换是什么时,几乎总是有交换的。交换只是虚拟内存,虚拟内存的出现是因为 RAM 历来比磁盘存储更昂贵。本质上,它是一种解决方案,通过限制软件所需的相对昂贵的 RAM 数量,让一些相对便宜的磁盘空间用于存储内存内容,而不是要求所有内容都保存在 RAM 中,从而使计算更具成本效益。从高层次上讲,所有交换或虚拟内存都是比 RAM 慢但比从磁盘的随机部分读取速度更快的内存位置,就像您使用临时文件一样。因此,操作系统使用虚拟内存来存储它们不需要或不认为“很快”需要的内存内容。它基本上就像一个内存内容的等候室。
由于此解决方案效果很好,通用计算操作系统(“Linux”)都希望虚拟内存可用,尽管通常可以禁用它,但几乎没有理由这样做。即使您的操作系统拥有比其所需更多的内存,让它将不常访问的数据存储在虚拟内存中也基本上没有坏处,而且在绝大多数情况下,禁用虚拟内存没有任何好处,这在操作系统中已经是标准做法了 - 如果您无法从更改中得到任何好处,为什么要更改某些东西呢?
因此,总而言之,拥有交换几乎总是“有意义的”,因为 32 位操作系统可以而且确实可以寻址超过 4 GB 的内存,而且交换的用途是 - 一个用于存储不常访问的数据的位置,它比 RAM 慢,但比随机磁盘快。