1 .. include:: ../disclaimer-zh_CN.rst 2 3 :Original: Documentation/core-api/boot-time-mm.rst 4 5 :翻译: 6 7 司延腾 Yanteng Si <siyanteng@loongson.cn> 8 9 :校译: 10 11 时奎亮 <alexs@kernel.org> 12 13 .. _cn_core-api_boot-time-mm: 14 15 ================ 16 启动时的内存管理 17 ================ 18 19 系统初始化早期“正常”的内存管理由于没有设置完毕无法使用。但是内核仍然需要 20 为各种数据结构分配内存,例如物理页分配器。 21 22 一个叫做 ``memblock`` 的专用分配器执行启动时的内存管理。特定架构的初始化 23 必须在setup_arch()中设置它,并在mem_init()函数中移除它。 24 25 一旦早期的内存管理可用,它就为内存分配提供了各种函数和宏。分配请求可以指向 26 第一个(也可能是唯一的)节点或NUMA系统中的某个特定节点。有一些API变体在分 27 配失败时panic,也有一些不会panic的。 28 29 Memblock还提供了各种控制其自身行为的API。 30 31 Memblock概述 32 ============ 33 34 该API在以下内核代码中: 35 36 mm/memblock.c 37 38 39 函数和结构体 40 ============ 41 42 下面是关于memblock数据结构、函数和宏的描述。其中一些实际上是内部的,但由于 43 它们被记录下来,漏掉它们是很愚蠢的。此外,阅读内部函数的注释可以帮助理解引 44 擎盖下真正发生的事情。 45 46 该API在以下内核代码中: 47 48 include/linux/memblock.h 49 mm/memblock.c
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.