2024-11-20
linux内核源码解析03–启动代码分析之主内核页表创建
Linux内核初始化过程中,会依次建立多种页表映射,以支持不同的内存访问需求。这些映射包括恒等映射、粗粒度内核镜像映射、fixmap映射、细粒度内核镜像映射、线性映射以及用户空间页表映射。文章详细解析了细粒度内核镜像映射和线性映射的创建过程,以及内核主页表的建立。此外,还介绍了伙伴系统的初始化,包括bootmem分配器的初始化、sparse内存模型初始化、zone数据结构初始化等。通过这些初始化过程,Linux内核为后续的内存管理和进程调度等操作奠定了基础。
2024-11-20
linux内核源码解析02–启动代码分析之setup_arch详解
文章深入解析了 Linux 内核初始化过程中 fixmap 映射的原理与实现,阐述了为什么在内存管理子系统尚未建立时,必须通过固定虚拟地址访问如 dtb 和 IO 设备等关键资源。通过剖析 early_fixmap_init 函数及相关数据结构,揭示了页表分级、地址计算与内核早期资源访问的详细机制,