A custom x86 bootloader and mini-kernel built from scratch.
A minimalist 16-bit x86 bootloader written in NASM Assembly that transitions into a 32-bit Protected Mode C kernel. The project currently boots from a simulated floppy disk, loads the kernel from disk to memory, sets up the Global Descriptor Table (GDT), and executes C code capable of direct VGA memory manipulation.
- Bootloader: Functional. Boots from MBR, loads kernel from disk, switches to 32-bit Protected Mode.
- Kernel: Minimal C kernel entry point established.
- Build System: Automated
Makepipeline with QEMU emulation and GDB debugging support.
- Boot from disk, raise from 16-bit to 32-bit mode
- Load C Kernel into memory
- Basic screen printing, scrolling
- Basic kernel utils (
memcpy,memset, etc)
- VGA Driver:
- Full
printfstyle support for the kernel
- Full
- Input Driver:
- Write PS/2 Keyboard driver (scancode handling)
- Create a keyboard buffer/queue
- Interrupts:
- Set up the Interrupt Descriptor Table (IDT)
- Remap the PIC (Programmable Interrupt Controller)
- Proficiency with Assembly and Low-level Architecture
- Simple text editor + filesystem
- Number 1 most used kernel in the world
- Solve world hunger
- Found intergalatic empire focusing on human supremacy
https://github.com/lukearend/x86-bootloaderhttps://github.com/aayush598/basic-bootloader-assemblyhttps://mikeos.sourceforge.net/write-your-own-os.html
https://wiki.osdev.org/Babystep1https://wiki.osdev.org/Creating_A_Shell
https://www.ctyme.com/intr/int.htmhttps://pastraiser.com/cpu/i8086/i8086_opcodes.html