打开任务管理器时,你可能会看到一个很反直觉的现象:每个进程都像在用一大片“自己的内存”,有的进程地址还长得差不多,但它们并不会互相踩坏。浏览器、IDE、数据库同时跑,大家都以为自己拿到的是连续、干净、独占的一块空间。
为什么能这样呢?难道是因为程序之间互相信任?
这其实是操作系统在中间加了一层翻译。程序看到的是虚拟地址,真正落到内存条上的位置由内核和硬件一起决定。
虚拟内存要解决的,就是这层翻译怎么做、为什么能隔离进程、内存不够时又怎么把一部分数据暂时挪到磁盘上。
没有虚拟内存会怎样?
先看一个最直白的反例。
2026/6/10大约 23 分钟
