今天学习了一下linux的内存管理子系统。这里总结一下。
linux系统的结构图如下所示:
它有好几个部分组成:硬件架构部分(ARCH)、设备驱动、内存管理、网络栈、进程管理、VFS、系统调用接口。今天简单介绍一下内存管理子系统——memory managementa。
内存管理子系统主要有这几个工作:
(1)虚拟地址空间分布
(1)负责虚拟地址与物理地址的映射
(2)物理地址的分配管理
先简单介绍虚拟地址空间分布,如下图所示:
右边红框是linux的虚拟地址空间分布。一些芯片的数据手册中介绍的某些寄存器的地址是物理地址,用汇编语言直接操作寄存器的时候会用到物理地址。在linux系统中,或者在软件编程中,使用的往往是虚拟地址。虚拟地址空间范围有CPU决定,地址总线为32位的CPU,它的虚拟地址空间容量有2^32=4GB的空间。
如上图,linux虚拟地址空