summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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-16`make boot` uses boot.iso / GRUB nowdzwdz
I'm going to implement the "initrd" soon, and it'll use multiboot modules - I have no idea how to use them with the qemu -kernel thing, and I have to support GRUB anyways, so I'm just going to use it instead.
2021-07-10implement a basic linterdzwdz
Currently it just checks if the kernel doesn't accidentally use arch-dependent headers.
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-10fix the `make debug` targetdzwdz
2021-07-10building the .iso is now the default Make targetdzwdz
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-10make clangd detect the includes againdzwdz
2021-07-10separate the source code from object files; more modular Makefiledzwdz
2021-07-10add a basic #GP handlerdzwdz
2021-07-10update all segment registers when setting the GDTdzwdz
not doing that caused interrupts to break on Bochs
2021-07-09fix some dumb typosdzwdz
2021-07-09Add more debug prints; move the old ones arounddzwdz
2021-07-09implement basic kernel panicsdzwdz
2021-07-09interrupt self-testdzwdz
2021-07-09basic interrupt supportdzwdz
2021-07-09support building .iso imagesdzwdz
2021-07-09fix the r0 data segmentdzwdz
2021-07-06stub page allocatordzwdz
the malloc stub didn't even make sense
2021-06-25malloc stub + processesdzwdz
well, there's only one process, but shh
2021-06-25tty_constdzwdz
2021-06-25ring3dzwdz
2021-06-25clean up GDTdzwdz
2021-06-25setting up the GDTdzwdz
2021-06-24Hello world o/dzwdz