summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2021-07-20per-process virtual memorydzwdz
VGA is only mapped into the virtual memory because there are no other ways of interacting with the OS.
2021-07-20rename pagedir_use() to pagedir_switch()dzwdz
imo "use" was slightly misleading
2021-07-20only enable paging when jumping into ring 0dzwdz
The kernel can't use the limited paging tables of user processes. Alternatively, sysenter could accept a parameter with a new cr3. That would allow/require using paging in the kernel - so I'll switch to it later, but I want to get other stuff done first.
2021-07-20global PAGE_MASK definedzwdz
it's pretty useful, so it makes sense to define it alongside PAGE_SIZE
2021-07-19fix some style inconsistentiesdzwdz
2021-07-19remove the unused r3_test functiondzwdz
2021-07-19very basic pagingdzwdz
2021-07-19add a page fault handlerdzwdz
2021-07-18basic executable loadingdzwdz
2021-07-18clean up the linker script, remove duplicate labelsdzwdz
2021-07-18fix most current compiler warningsdzwdz
stack_top got changed into a char, because `extern void` isn't even valid. others are self-explanatory
2021-07-18move the kernel linker script to src/kernel/dzwdz
2021-07-18move all kernel sources to src/kernel/dzwdz
2021-07-17detect the highest used memory address, and only allocate pages above itdzwdz
2021-07-17Revert "debug code, verifies if the memory gets set up correctly"dzwdz
not meant to be in the main tree, included for completeness
2021-07-17debug code, verifies if the memory gets set up correctlydzwdz
i guess that i can include this for completeness. if not for the awful pointer printing thingy this could probably get into the main version. TODO?
2021-07-17basic boot module supportdzwdz
This loads a file from the boot disk into memory. Currently it just gets printed, but it's going to become a real executable soon.
2021-07-17hacky function for logging pointersdzwdz
2021-07-17rename _kernel_end to _bss_enddzwdz
2021-07-17multiboot: manually address regions of the kerneldzwdz
thanks to this, i can specify the region where the bss is - so GRUB won't place any boot modules there
2021-07-10abstract away loggingdzwdz
Now, the kernel only interfaces with the architecture dependent stuff via functions declared in generic.h. I'll write a linter enforcing this soon.
2021-07-10clean up the GDT initialization codedzwdz
2021-07-10allocate the initial stack directly in linker.lddzwdz
IMO it's cleaner this way. I wanted to put it just under 1M, but it turns out that it isn't accessible at boot in QEMU.
2021-07-10a sensible source structuredzwdz
The idea is that src/kernel/ is only allowed to interface with the hardware using whatever's defined in src/arch/generic.h. I'll probably write a small script for checking this later on. This is a giant commit so I've probably fucked something up. It boots fine on Bochs and QEMU, so at least there's that.
2021-07-10separate the source code from object files; more modular Makefiledzwdz