Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-07-17 | detect the highest used memory address, and only allocate pages above it | dzwdz | |
2021-07-17 | Revert "debug code, verifies if the memory gets set up correctly" | dzwdz | |
not meant to be in the main tree, included for completeness | |||
2021-07-17 | debug code, verifies if the memory gets set up correctly | dzwdz | |
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-17 | basic boot module support | dzwdz | |
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-17 | hacky function for logging pointers | dzwdz | |
2021-07-17 | rename _kernel_end to _bss_end | dzwdz | |
2021-07-17 | multiboot: manually address regions of the kernel | dzwdz | |
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 now | dzwdz | |
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-10 | implement a basic linter | dzwdz | |
Currently it just checks if the kernel doesn't accidentally use arch-dependent headers. | |||
2021-07-10 | abstract away logging | dzwdz | |
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-10 | fix the `make debug` target | dzwdz | |
2021-07-10 | building the .iso is now the default Make target | dzwdz | |
2021-07-10 | clean up the GDT initialization code | dzwdz | |
2021-07-10 | allocate the initial stack directly in linker.ld | dzwdz | |
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-10 | a sensible source structure | dzwdz | |
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-10 | make clangd detect the includes again | dzwdz | |
2021-07-10 | separate the source code from object files; more modular Makefile | dzwdz | |
2021-07-10 | add a basic #GP handler | dzwdz | |
2021-07-10 | update all segment registers when setting the GDT | dzwdz | |
not doing that caused interrupts to break on Bochs | |||
2021-07-09 | fix some dumb typos | dzwdz | |
2021-07-09 | Add more debug prints; move the old ones around | dzwdz | |
2021-07-09 | implement basic kernel panics | dzwdz | |
2021-07-09 | interrupt self-test | dzwdz | |
2021-07-09 | basic interrupt support | dzwdz | |
2021-07-09 | support building .iso images | dzwdz | |
2021-07-09 | fix the r0 data segment | dzwdz | |
2021-07-06 | stub page allocator | dzwdz | |
the malloc stub didn't even make sense | |||
2021-06-25 | malloc stub + processes | dzwdz | |
well, there's only one process, but shh | |||
2021-06-25 | tty_const | dzwdz | |
2021-06-25 | ring3 | dzwdz | |
2021-06-25 | clean up GDT | dzwdz | |
2021-06-25 | setting up the GDT | dzwdz | |
2021-06-24 | Hello world o/ | dzwdz | |