12 Commits (f8a85a154130b2c4007f11766d247fc44aafabbd)

Author SHA1 Message Date
anna f8a85a1541
happy new year 2022 uwu
May it be slightly less exhausting than 2021.
2 years ago
anna d19e665d47
mm: generalize boot allocator
The boot page frame allocator is now architecture
independent.
This is part 2 of the mm subsystem refactor.
3 years ago
anna 7285c2e076
mm: refactor entire mm subsystem, part 1
Another one of those larger endeavours that take
multiple commits.  This first one introduces the
basic vm_page data structure, as well as the x86
bootstrap code for initializing it.
3 years ago
anna 5a5135f416
update license terms
As of now, everything except the code imported
from FreeBSD is proprietary.  Of course, it won't
be like this for long, only until we have decided
which license we like to use.  The rationale is
that releasing everything under a copyleft license
later is always easier than doing so immediately
and then changing it afterwards.
Naturally, any changes made before this commit are
still subject to the terms of the CNPL.
3 years ago
anna 3fee893f21
x86: begin preparations for amd64 support
This is a huge commit, but it mainly just moves
some files around and doesn't change their
contents much.
A lot of stuff works the same on amd64 as it does
on i386, so i'm moving the parts that are specific
to the latter into separate subdirectories while
the rest can be shared with the amd64 codebase.
3 years ago
anna c911ff9009
x86/mm: add huge page support
This is part of a series of commits where i
completely rewrite kmalloc() because it needs to
be able to return physically contiguous memory for
DMA operations.
Yes, i know the build isn't working right now.
3 years ago
anna 14e673b8dd
x86: fix page allocator once and for all 3 years ago
anna 65899b35f1
x86: minor page management refactor
Even Uranium-223 ages better than my code
3 years ago
anna 89f3393b8b
x86: move page fault handler to where it belongs 3 years ago
anna 5c0fa715a4
kmalloc: add actual memory allocator
Now that memory allocation finally kind of works,
we can finally start focusing on the core system
architecture.  This commit also fixes some bugs in
get_page() and friends, as well as performance
improvements because the page map is addressed as
unsigned longs rather than individual bytes.
3 years ago
anna 3d6258a06e
mm: implement runtime page mapping 3 years ago
anna d436d9b203
mm: add page frame allocator 3 years ago