Commit graph

14 commits

Author SHA1 Message Date
fef
f8a85a1541
happy new year 2022 uwu
May it be slightly less exhausting than 2021.
2022-01-01 03:49:33 +01:00
fef
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.
2021-11-17 05:13:23 +01:00
fef
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.
2021-11-15 19:23:22 +01:00
fef
f0706b802b
boot: ignore unaddressable RAM areas on i386
We don't support PAE or any other fancy hack to
get past the 4 GB limit on 32-bit, so we have to
clip areas that would fall outside that range
2021-10-21 23:21:56 +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
65899b35f1
x86: minor page management refactor
Even Uranium-223 ages better than my code
2021-10-13 20:55:35 +02:00
fef
d475429639
kprintf: implement "full" format sequence support
So this was painful.  kprintf() supports most of
the format specifiers from BSD now, except for the
$ sequence.  It has gotten a general overhaul and
is significantly more sophisticated, bloated and
slower now.  There is also some minor stuff i
forgot about, like the 't' length modifier, but
that isn't so important right now and will be
fixed later(TM).
2021-10-03 04:31:28 +02:00
fef
613c28a965
x86: add basic interrupt support
This commit also fixes the fun little size bug in
segment.S where i subtracted the end from the
start address of the GDT instead of the other way
round which resulted in a gigantic overflow :)
2021-10-02 00:08:54 +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
2a0ed8121a
util: refactor misc utility stuff 2021-09-21 17:34:27 +02:00
fef
25e00354ec
x86/boot: move multiboot code to arch 2021-09-20 17:59:15 +02:00
Renamed from boot/boot.c (Browse further)