步骤 1 / 9
为什么不让程序直接用真实地址
直接用物理地址,程序之间就能互相读写内存。
如果程序直接访问物理内存,一个写错的地址就可能破坏别的程序,甚至内核。 虚拟内存给每个进程一套自己的地址空间,它只看得见自己那份。 就像每个网站有独立的 localStorage,看不到别的网站的数据。
操作系统
每个程序都以为自己独占一大片内存,其实背后有一层翻译。
以 Linux 上一个程序读取自己内存中的一个变量为例,只讲概念。
步骤 1 / 9
直接用物理地址,程序之间就能互相读写内存。
如果程序直接访问物理内存,一个写错的地址就可能破坏别的程序,甚至内核。 虚拟内存给每个进程一套自己的地址空间,它只看得见自己那份。 就像每个网站有独立的 localStorage,看不到别的网站的数据。
| 当前状态 | 发生了什么 |
|---|---|
| 用户态 | 程序想读取一个变量 |