Linux内存寻址——分页

常规分页举例

内核给一个正在运行的进程分配的线性地址空间范围是0x20000000到0x2003ffff。

32位线性地址被分为3个域:被称为两级分页

Directory(目录)
	最高10位
Table(页表)
	中间10Offset(偏移量)
	最低12

Linux内存寻址——分页_第1张图片

Linux内存寻址——分页_第2张图片
64位系统中的分页
Linux内存寻址——分页_第3张图片

linux中的分页

64位采用四级分页类型

页全局目录
页上级目录
页中间目录
页表

Linux内存寻址——分页_第4张图片

物理内存布局

页框0由BIOS使用,存放加电自检期间检查到的系统硬件配置,
0x000a0000到0x000fffff的范围留给BIOS例程

进程页表

0x00000000到0xbfffffff 无论进程运行在用户态还是内核态都可以寻址
0xc0000000到0xffffffff的线性地址,只有内核态的进程才能寻址

内核页表

1 内核创建一个有限的地址空间,包括内核的代码段和数据段,初始页表和用于存放动态数据结构的共128KB大小的空间。这个最小限度的地址空间仅够将内核装入RAM和对其初始化的核心数据结构。
2 内核充分利用剩余的RAM并适当的建立分页表

你可能感兴趣的:(linux内核学习,linux)