It's finally time to introduce some RUST in this kernel, memory safety, i mean slow down, even in this part we will start by implement the most critical part in C and helpers in rust.
read: osdev section: Memory and Resource Management
The task of fulfilling an allocation request consists of locating a block of
unused memory of sufficient size. Memory requests are satisfied by allocating
portions from a large pool of memory called the heap or free store. At any
given time, some parts of the heap are in use, while some are "free" (unused)
and thus available for future allocations.