"It works on my machine" (No actually, everything I upload here has been tested on my vm and it works, so i wont be reading yalls issues unless its a feature request)
- GDT/IDT ✅
- PIT timer ✅
- Paging ✅
- Kernel heap memory allocator ✅
- ACPI table parsing ✅
- VESA mode (using LFB provided by grub) ✅
- Text rendering with custom font support (using ssfn.h) ✅
- Simple ATA driver with sector I/O ✅
- Custom block based filesystem (skbd-fs) ✅
- Keyboard and mouse drivers ❌
- Usermode and system calls ❌
- Userspace memory allocator ❌
- Multitasking and ELF loader ❌
- GUI and userspace utility programs ❌
- The LFB is originally placed at
0xFD000000
and is mapped at VA =0xD0000000
, mapping it with PA = VA causes issues which I may resolve in the future. - The PIT timer is inaccurate, an IRQ is fired every 0.999847 ms, resulting in a 153 ns error every second. (i.e. calling
pit_sleep(10000)
will finish 1530 ns earlier) - The ATA driver is currently implemented using programmed I/O which is significantly slower than direct memory access (DMA).
- Notes related to the filesystem
While this operating system uses its own native tools, in also relies on Scalable Screen Font 2.0 for font rendering.