Linux内存管理
地址类型
用户虚拟地址
用户空间程序所能看到的常规地址每个进程都有自己的虚拟地址空间
物理地址
CPU使用的是物理地址,在CPU的地址信号线上产生的就是物理地址。
总线地址
总线地址,顾名思义,是与总线相关的,就是总线的地址线或在地址周期上产生的信号。外设使用的是总线地址。基于DMA的硬件使用总线地址而非物理地址。
该地址在外围总线和内存之间使用它实现总线和主内存之间的重新映射通常它们与处理器使用的物理地址相同
Linux采用虚拟内存管理技术,使得每个进程都有独立的进程地址空间,该空间大小为3G,用户看到的和接触到的都是虚拟地址,无法使用实际的物理地址。Linux将4G的虚拟地址空间划分为两个部分:内核空间和用户空间。
内核空间:
运行在处理器最高级别的超级用户模式下的代码或数据从0xC0000000到0xFFFFFFFF的1GB线性地址空间只有运行在内核态的进程才能