一.内存管理子系统
1.1子系统简介
注:linux是使用虚拟地址,32位机有4G内存空间,被划分位四个部分,第一个是用户程序占3G,
然后是内核部分占一G,其中又分为三个部分,一个是直接映射区3G-3G+896M,然后是 VMALLOC区,接着是永久映射区和固定映射线性区。
直接映射区和物理地址是直接的关系,虚拟地址减去3G就是物理地址。
vnllac可以访问高端内存也可以访问低端内存。
永久映射区是访问高端内存的。
固定线性映射区就是和寄存器相关。
二.虚拟地址到物理地址的转化
三.物理内存分配
物理内存分配,在使用mallco等函数时分配的都是虚拟地址,只有在访问这些虚拟地址时才会分配物理地址,缺页异常分配方式都是先分配虚拟地址。
注意:kmalloc函数是直接访问物理地址,slab机制决定。、
四.linux进程管理