Linux内存从0到1学习笔记(6.8,物理内存初始化之buddy伙伴系统)
Posted 高桐@BILL
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux内存从0到1学习笔记(6.8,物理内存初始化之buddy伙伴系统)相关的知识,希望对你有一定的参考价值。
写在前面
在linux启动的那一刻,内存管理就已经开始了。在内核中,实现物理内存管理的allocator包括:
-
初始化阶段物理内存管理memblock
-
连续物理内存管理buddy
-
非连续物理内存管理vmalloc allocator
-
小块物理内存管理slab allocator
在系统初始化阶段会先启用一个bootmem分配器和memblock分配器,bootmem分配器管理着一个node结点的所有内存,包括numa架构中多个node有多个bootmem,它们被链入bdata_list链表中保存。而伙伴系统的初始化就是将bootmem管理的所有物理页框释放到伙伴系统中去。
接下来我们来简单梳理下,内存分配器的初始化流程(红色部分);
以上是关于Linux内存从0到1学习笔记(6.8,物理内存初始化之buddy伙伴系统)的主要内容,如果未能解决你的问题,请参考以下文章
Linux内存从0到1学习笔记(6.4,物理内存初始化之预留内存)
Linux内存从0到1学习笔记(六,物理内存初始化之四 --- 内存分配器)---持续更新
Linux内存从0到1学习笔记(六,物理内存初始化) --- 更新中
Linux内存从0到1学习笔记(6.10 物理内存初始化之vmalloc分配器)