Linux 内存管理全栈知识图谱
Linux内存管理本质上可以概括为三个核心层次:首先是对物理内存的管理,内核将物理内存划分为固定大小的页,并按照Zone、NUMA等架构进行组织,通过page跟踪每个物理页的状态、引用关系和生命周期,从而建立完整的物理内存管理体系。
其次是虚拟内存与地址映射机制。Linux并不让进程直接访问物理内存,而是为每个进程提供独立的虚拟地址空间,通过页表和MMU完成虚拟地址到物理地址的映射。内核同时维护线性映射、动态映射以及设备地址映射,使用户空间、内核空间和硬件设备能够高效且安全地共享内存资源。
最后是内存的动态分配与回收机制。Linux通过伙伴系统解决页级内存分配,通过Slab优化小对象分配效率;当系统内存不足时,则依靠 LRU回收、Swap换出和OOM机制释放内存,以减少碎片、提高利用率并保障系统稳定运行。