常规分页举例
内核给一个正在运行的进程分配的线性地址空间范围是0x20000000到0x2003ffff。
32位线性地址被分为3个域:被称为两级分页
Directory(目录)
最高10位
Table(页表)
中间10位
Offset(偏移量)
最低12位
64位系统中的分页
linux中的分页
64位采用四级分页类型
页全局目录
页上级目录
页中间目录
页表
物理内存布局
页框0由BIOS使用,存放加电自检期间检查到的系统硬件配置,
0x000a0000到0x000fffff的范围留给BIOS例程
进程页表
0x00000000到0xbfffffff 无论进程运行在用户态还是内核态都可以寻址
0xc0000000到0xffffffff的线性地址,只有内核态的进程才能寻址
内核页表
1 内核创建一个有限的地址空间,包括内核的代码段和数据段,初始页表和用于存放动态数据结构的共128KB大小的空间。这个最小限度的地址空间仅够将内核装入RAM和对其初始化的核心数据结构。
2 内核充分利用剩余的RAM并适当的建立分页表