了解概况请先搜索4G平坦内存模型的含义。
在保护模式下,段的意义被弱化了,可以理解为所有段地址都是重叠的,指向一个相同(32位下4G)的地址空间。
每个进程的线性地址空间都是一样大小的,并且在主流的操作系统(Windows,Linux)中,内核部分是重叠的,甚至很多共享库(so,dll库)在用户态也是重叠的。这个重叠指的是物理地址重叠、虚拟地址重叠,这样做的好处是节约物理内存。
线性地址实际上不存在分配一说,线性地址并不需要分配。线性地址指向的物理地址才需要分配,这个分配的过程一般都是动态加载的,当然也可以一次性分配,看操作系统的策略,不同操作系统的处理方式不一定相同。
页表是在进程地址空间创建的过程中由操作系统一次性分配完成的,但页表中并不是所有条目都指向实际的物理内存。