因为内核在内存管理完全初始化之前就需要使用内存. 在系统启动过程期间, 使用了额外的简化内存管理模块, 然后在初始化完成后, 将旧的模块丢弃掉.
因此我们可以把linux内核的内存管理分三个阶段。...= 1标记此阶段的结束
第三阶段 buddy初始化完成 系统停止运行 可以用cache和buddy分配内存
系统启动过程中的内存管理
首先我们来看看start_kernel是如何初始化系统的, start_kerne...CPU高速缓存行, 为pagesets的第一个数组元素分配内存, 换句话说, 其实就是第一个系统处理器分由于在分页情况下,每次存储器访问都要存取多级页表,这就大大降低了访问速度。...所以,为了提高速度,在CPU中设置一个最近存取页面的高速缓存硬件机制,当进行存储器访问时,先检查要访问的页面是否在高速缓存中.
2 第一阶段(启动过程中的内存管理)
内存管理是操作系统资源管理的重点,...分配器)或者memblock, 用于在启动阶段早期分配内存, 而在系统初始化完成后, 该分配器被内核抛弃, 然后初始化了一套新的更加完善的内存分配器.
2.1 引导内存分配器bootmem
在启动过程期间