buddy_system_allocator

buddy_system_allocator 是第三方 crate,用于实现基本伙伴系统分配器。同时,也可将其用于 LockedHeap 以实现 GlobalAlloc,这样便可以使用标准的 alloc crate(正如在 之前部分 中所示),或者用于分配其他地址空间。例如,我们可能需要为 PCI BAR 分配 MMIO 空间:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

  • PCI BAR 的对齐方式始终与其大小相等。
  • 使用 src/bare-metal/useful-crates/allocator-example/ 目录下的 cargo run 运行该示例。(由于存在 crate 依赖项,无法在 Playground 中运行该示例。)