10 releases (4 breaking)

Uses new Rust 2024

0.17.0 Dec 13, 2025
0.16.2 Dec 9, 2025
0.16.1 Sep 24, 2025
0.16.0 Aug 5, 2025
0.13.0 Mar 14, 2025

#387 in Memory management

MPL-2.0 license

1.5MB
25K SLoC

An implementation of the global physical memory frame allocator for OSTD based kernels.

Background

OSTD has provided a page allocator interface, namely GlobalFrameAllocator and global_frame_allocator procedure macro, allowing users to plug in their own frame allocator into the kernel safely. You can refer to the ostd::mm::frame::allocator module for detailed introduction.

Introduction

This crate is an implementation of a scalable and efficient global frame allocator based on the buddy system. It is by default shipped with OSDK for users that don't have special requirements on the frame allocator.


osdk-frame-allocator

This is the default buddy system frame allocator shipped with OSDK. It relies on the physical frame metadata system in OSTD to provide a heap-free implementation of a buddy system allocator for OS kernels. It also features per-CPU caches and pools for scalable allocations.

This crate is part of the Asterinas project.

Dependencies

~7MB
~148K SLoC