先说一个自己以前碰到的问题吧,我的pc有8G的内存,我装了32bit的操作系统,当然,只能查看到不到4G的内存。
对我们的应用程序来说,操作系统会给每个进程分配内存等资源。
假如说,我们在32位机器上定义了一个 int *pi; 指针,它的访存范围是4G-1G { linux系统下},也就是说32位linux系统的虚拟地址空间为:4G-1G。
问题也就随之而来,这里的内存和虚拟地址空间究竟是什么关系呢???
这里收录《程序员的自我修养笔记》的解释:
先说一个自己以前碰到的问题吧,我的pc有8G的内存,我装了32bit的操作系统,当然,只能查看到不到4G的内存。
对我们的应用程序来说,操作系统会给每个进程分配内存等资源。
假如说,我们在32位机器上定义了一个 int *pi; 指针,它的访存范围是4G-1G { linux系统下},也就是说32位linux系统的虚拟地址空间为:4G-1G。
问题也就随之而来,这里的内存和虚拟地址空间究竟是什么关系呢???
这里收录《程序员的自我修养笔记》的解释: