2024-12-21
[linux内存管理] 第013篇 zone的初始化
深入剖析Linux内核在物理内存初始化阶段对zone区域的配置过程,围绕zone_sizes_init和free_area_init两个关键函数,系统展示内存分区边界的确立与结构初始化流程。通过追踪start_kernel的调用链,详细讲解zone_sizes_init如何依据DRAM最小与最大页帧号、系统体系结构特性动态计算ZONE_DMA、ZONE_DMA32、ZONE_NORMAL等区域的PFN界限,并最终通过free_area_init设置各zone边界,同时针对NUMA架构完成节点内存的分区与struct page的初始化。
2024-12-12
[linux内存管理] 第012章 物理内存管理三大结构体之zone
本文探讨了Linux内存管理中的内存域(Zone)概念。内存域是内核内存管理机制的重要组成部分,它根据内存区域的特点对物理内存进行划分,以满足不同类型的内存分配需求。本文详细介绍了Zone的类型、数据结构以及其在内存管理中的作用,并解释了Zone的统计信息、冷热页与Per-CPU上的页面高速缓存等相关概念。最后,通过关系结构图和架构层次图,直观展示了Zone与其他内存管理结构之间的关系。