本章总结
本章我们首先引入了地址空间的概念,设计了内核在早期引导过程中的地址空间布局。然后按照布局要求,建立了最初的页表,并基于 RiscV64 硬件机制启用分页,进入到虚拟地址空间,为后面各种功能组件的初始化和运行建立了基础。为了让后面的内核开发过程可以使用 Rust 提供的高级类型,我们建立了早期的内存分配器,虽然它的最大分配能力只有 1M,但是已经足以支撑内核的早期启动工作。等我们能够通过解析 fdt 信息获取实际的物理内存大小之后,将会构建并切换到正式的内存分配器。最后,我们引入了 axruntime 和 axstd 这两个组件,形成了典型的四层系统架构,现在内核的主干框架已经齐备,后面我们将基于这个框架不断扩展功能组件,逐步接近设计目标。