AI智能摘要
系列深入剖析Linux内存管理在ARM64架构下的原理与实现,覆盖物理内存初始化流程、核心分配器机制(如buddy、slab、vmalloc、CMA等)、缺页异常处理、页面回收、内存节点解析等关键环节,结合Kernel 5.15源码与丰富补充资料,帮助读者系统理解底层架构与内存管理优化要点
此摘要由AI分析文章内容生成,仅供参考。

前言:

本系列分析的源码都遵循如下的约定:

1. 芯片架构:ARM64

2. 内存架构:UMA

3. 内核版本:如无特别说明,本系列源码基于Kernel 5.15

4. CONFIG_ARM64_VA_BITS=39

5. CONFIG_ARM64_PAGE_SHIFT=12

6. CONFIG_PGTABLE_LEVELS=3

7. CONFIG_ARM64_PA_BITS=48

8. CONFIG_SPARSEMEM=y

9. ...

本系列的源码opengrok:iliuqi的linux-5.15

第一部分:内存管理基础架构

第二部分:内核启动阶段的内存初始化

这个阶段会详细从源码剖析,这部分会转载一些优秀的博文(部分博文内容会根据kernel-5.15的内核的变动做一些修改),辅以补充形式的文章。

第三部分:物理内存模型与组织

第四部分:物理内存分配器 - Buddy系统

第五部分:细粒度内存分配器 - slab/kmalloc/cma

第六部分:虚拟内存对象与缺页

第七部分:页缓存与回写

第八部分:内存回收

LRU/vmscan/kswapd/direct reclaim

第九部分:内存交换与内存压缩

Swap/zram/zswap

第十部分:内存碎片与内存规整

第十一部分:大页体系

第十二部分:内存节点

第十三部分:内存调试

第十四部分:其他

本系列文章中涉及的专业术语: