0. 前言
在详细分析memblock 之前先阐述下Linux 中early boot memory allocators 的发展历程。本文简单翻译《A quick history of early-boot memory allocators》,阐述下memblock 发展的过程。
In the early days, Linux didn't have an early memory allocator; in the 1.0 kernel, memory initialization was not as robust and versatile as it is today. Every subsystem initialization call, or simply any function called from start_kernel(), had access to the starting address of the single block of free memory via the global memory_start variable. If a function needed to allocate memory it just increased memory_start by the desired amount.
在