Commit graph

17 commits

Author SHA1 Message Date
fef
ebce7b8e83
mutex: fix lock race conditions 2021-11-04 05:56:40 +01:00
fef
38d9a9586d
smp: add base for SMP awareness 2021-10-30 03:34:04 +02:00
fef
c66b05216d
clist: add better debugging facilities 2021-10-24 21:55:54 +02:00
fef
2b3eaf4ff7
mm: add basic slab allocator
This still needs some work and integration into
kmalloc() but hey i've tested it and it doesn't
immediately fall apart so why not commit it
2021-10-24 05:36:46 +02:00
fef
743424d15f
mm: fix page frame allocator bugs
This also includes a minor refactor of everything,
as well as some optimizations.  The bitmap
operations have been moved into a separate file
because they are probably gonna come in handy in
other parts of the system as well.
2021-10-23 00:56:49 +02:00
fef
96378f019c
kmalloc: add shiny new buddy page frame allocator
This is still kind of a work in progress because
it will be the backend to a slab allocator, which
in turn is managed by kmalloc().
2021-10-22 06:22:38 +02:00
fef
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.
2021-10-21 05:27:42 +02:00
fef
c3847487be
config: refactor kernel address mapping names 2021-10-15 19:52:22 +02:00
fef
4679b7cee5
x86: add irq support 2021-10-07 19:16:21 +02:00
fef
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.
2021-09-29 01:10:41 +02:00
fef
3d6258a06e
mm: implement runtime page mapping 2021-09-23 20:51:12 +02:00
fef
17320f2571
boot: enable paging in boot sequence 2021-09-22 03:50:55 +02:00
fef
d436d9b203
mm: add page frame allocator 2021-09-21 18:25:54 +02:00
fef
a34fd6caaa
config: include version and git revision 2021-09-19 16:39:05 +02:00
fef
c7eb58b930
boot: add basic multiboot support
Turns out writing your own bootloader from scratch
is something you probably don't wanna be bothered
with when your main goal is writing an entire
operating system.  Blessed be the souls of the
maniacs who gave us GRUB, and punched be their
faces for writing such inconsistent documentation.
2021-09-18 16:48:46 +02:00
fef
55e5ad90f6
fix license url 2021-09-14 21:51:46 +02:00
fef
6c44a66b55
initial commit uwu 2021-09-13 18:51:51 +02:00