![]() GDT control is how I would like it to be but there are some issues, namely: 1. far jumping to flush the code segment crashes the whole os(not good) 2. Segment selectors seem fine apart from the code segment thing 3. some administrative issues regarding the structure of the project which is slowly making things painful |
||
---|---|---|
iso/boot/grub | ||
scripts | ||
stl | ||
.gitignore | ||
bochsrc.conf | ||
framebuffer.c | ||
framebuffer.h | ||
gdt_seg.s | ||
gdt.c | ||
gdt.h | ||
idt.h | ||
idt.s | ||
interrupt_entry.s | ||
interrupts.c | ||
interrupts.h | ||
kernel.c | ||
kernel.h | ||
LICENSE | ||
link.ld | ||
loader.s | ||
makefile | ||
ports.h | ||
ports.s | ||
readme.md | ||
serial.c | ||
serial.h | ||
stlio.c | ||
stlio.h | ||
tests.c | ||
tests.h | ||
types.h |
JankOS
The best operating system you've ever laid eyes on. It's so good that barely does anything at all.
JankOS serves the purpose of an experiment in learning. Personally I'm unsatisfied with accepting an idea; I want to garner an intuition for the inner workings of an idea.
Todo/Roadmap
-
Segmentation(research what I might need to make either this or paging work later on)
-
Interrupt Descriptor Table
-
Memory allocator
-
If segmentation isn't being done then paging will be part of the roadmap(most likely)
Bugs
-
serial::serial_write(const char*, const u64)
doesn't always write all the required data nor does it properly deal with the FIFO queue associated with the COM1 port. -
stlio::printf
still isn't feature complete -
tests::*
could always use more tests to cover as much of the code base as possible.