buddy_system_allocator

buddy_system_allocator はサードパーティのクレートで、基本的なバディシステムアローケータを実装しています。このクレートはGlobalAlloc を実装する LockedHeap により( 以前見たように)標準のalloc クレートを利用可能にするために使えますし、別のアドレス空間をアロケートするためにも使えます。例えば、PCI BARに対するMMIO領域をアロケートしたい場合には以下のようにできます:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

  • PCI BARは常にサイズと同じアラインになります。
  • この例をsrc/bare-metal/useful-crates/allocator-example/において cargo runとすることで実行してみましょう。(Playgroundではこの例が依存するクレートを利用できないため実行できません)