Linux为每个要使用的程序创建虚拟内存页面,操作系统处理将虚拟地址映射到真正的硬件地址,对吗?
但Windows如何做到这一点?Windows程序实际上是否具有转换为真实硬件地址的内存?我也知道当RAM过度使用时,windows可以使用硬盘内存,而这个过程又被称为虚拟内存,但我相信这是一个完全不同的概念?
Windows和Linux(至少在Intel 32/64位系统上)都使用相同的机制实现虚拟内存:硬件支持的页表.OS和硬件协同工作以进行地址映射.
将程序使用的逻辑地址与物理地址分离的整个概念就是所谓的虚拟内存.将硬盘用作后备存储是虚拟内存的实现,该虚拟内存使用交换文件将虚拟内存量增加到大于系统中安装的物理内存的量.
虚拟内存是一个非常深入和广泛的主题.也许从这篇维基文章的内存管理开始,然后点击谷歌以获得更深入的理解.