12 unstable releases (4 breaking)

Uses new Rust 2024

new 0.17.2 May 9, 2026
0.17.1 Mar 12, 2026
0.17.0 Dec 13, 2025
0.16.1 Sep 24, 2025
0.14.1 Mar 22, 2025

#220 in Memory management

29 downloads per month

MPL-2.0 license

1.5MB
27K 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

~8MB
~157K SLoC