
AI-摘要
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
[linux内存管理] 第000篇 Linux内存管理系列开篇
iliuqi前言:
还是习惯性的以前言开篇,“深入骨髓”的程序猿思想,干啥事都想从main 开始~~
本系列分析的源码都遵循如下的约定:
- 芯片架构:ARM64
- 内存架构:UMA
- 内核版本:如无特别说明,本系列源码基于Kernel 5.15
- CONFIG_ARM64_VA_BITS=39
- CONFIG_ARM64_PAGE_SHIFT=12
- CONFIG_PGTABLE_LEVELS=3
- CONFIG_ARM64_PA_BITS=48
- CONFIG_SPARSEMEM=y
- …
本系列的源码opengrok:iliuqi的linux-5.15
1. 内存管理的一些预备知识
- [linux内存管理] 第001篇 内存与内存管理机制
- [linux内存管理] 第002篇 页表查询过程简述
- [linux内存管理] 第003篇 内存分布
- [linux内存管理] 第004篇 内存架构和内存模型
- [linux内存管理] 第012篇 zone简介
2. 物理内存初始化流程
这个阶段会详细从源码剖析,这部分主要为转载到的优秀的博文(部分博文内容会根据kernel-5.15的内核的变动做一些修改),辅以补充形式的文章。
- [linux内存管理] 第005篇 启动代码分析之汇编部分
- 本篇为了Linux内存管理系列文章的文章序号完整性,文章标题由原来的”linux内核源码解析01-启动代码分析之汇编部分”改为”[linux内存管理] 第005篇 启动代码分析之汇编部分”
- 强烈建议看完该作者写的Linux内核源码分析的文章作为知识点的补充
- linux内核源码解析02–启动代码分析之setup_arch详解
- linux内核源码解析03–启动代码分析之主内核页表创建
- linux内核源码解析04–用户进程页表创建
- linux源码解析05–ioremap原理
- linux源码解析06–常用内存分配函数kmalloc、vmalloc、malloc和mmap实现原理
- linux源码解析07–缺页异常之架构相关部分(ARM64为例)分析
- [linux内存管理] 第006篇 start_kernel全局简述
- [linux内存管理] 第007篇 fixmap映射详解
- [linux内存管理] 第008篇 memblock子系统详解
- [linux内存管理] 第009篇 reserved-memory详解
- [linux内存管理] 第010篇 paging_init详解
- [linux内存管理] 第011篇 内存模型之Sparse Memory Model
- [linux内存管理] 第012章 物理内存管理三大结构体之zone
- [linux内存管理] 第013篇 zone的初始化
- [linux内存管理] 第014篇 /proc/zoneinfo的详细解析
- [linux内存管理] 第015篇 理解Linux内核中的memblock和ioremap机制
- [linux内存管理] 第016篇 /proc/iomem的详细解析
- [linux内存管理] 第017章 zonelist的初始化
- [linux内存管理] 第018篇 buddy系统的简介以及初始化
- [linux内存管理] 第019篇 buddy分配器基础知识以及分配器api接口
3. buddy 分配器
4. percpu 分配器
5. CMA 分配器
6. slab 分配器
7. vmalloc 分配器
8.ION 分配器
9. DMA-BUF分配器
10. 缺页异常处理
11. memcg
12. PSI
13. 页面回收
14. 内存规整
15. 内存节点
16. 其他
本系列文章中涉及的专业术语:
专业名词 | 解释 |
---|---|
VIVT | Virtual Index Virtual Tag,虚拟索引虚拟标签 |
VIPT | Virtual Index Physical Tag,虚拟索引物理标签 |
PIPT | Physical Index Physical Tag,物理索引物理标签 |
TLB | Translation Look-aside Buffer,转换旁视缓存,转换旁路缓存 |
TTW | Translation Table Walk,转换表遍历 |
TWU | Table Walk Unit,页表遍历单元 |
MMU | Memory Management Unit,内存管理单元 |
EPN | Effective Page Number,有效页帧号 |
RPN | Real Page Number,实际页帧号 |
PFN | Page frame Number,页帧号 |
VPN | Virtual Page frame Number,虚拟页帧号 |
VA | Virtual Address,虚拟地址 |
PA | Physical Address,物理地址 |
SMP | Symmetric Multiple Processing,对称多处理器 |
UMA | Uniform Memory Access,统一内存访问 |
NUMA | Non-Uniform Memory Access,非统一内存访问 |
SDR | Single Data Rate,单倍数据速率 |
DDR | Double Data Rate,双倍数据速率 |
RAM | Random Access Memory,随机访问存储器,分 SRAM 和 DRAM |
SRAM | Static RAM,静态随机访问存储器 |
DRAM | Dynamic RAM,动态随机访问存储器 |
SDRAM | Synchronous Random Access Memory,同步动态随机存储器,在DRAM 基础上增加同步控制 |
LPDDR | Low Power Dual Data Rate,低功耗双倍速率存储器,是DDR 类型SDRAM 的一种 |
CMA | Contiguous Memory Allocator,连续物理内存分配器 |
DMA | Direct Memory Access,直接内存访问 |
VMA | Virtual Memory Area,虚拟内存区域,其实指的是 struct vm_area_struct,内核用该结构体管理用户空间 |
KFENCE | Kernel Electric Fence,内核电子栅栏,Linux5.12引入的内核内存错误检测机制 |
评论
匿名评论隐私政策