x86 Bootable Kernel
Overview
A bootable x86 kernel written from scratch in C and Assembly, no operating system, no libraries, just raw hardware. Boots via GRUB using the Multiboot specification and renders text by writing directly to VGA video memory.
Key Technical Details
- Direct memory-mapped I/O — writes to VGA memory at
0xb8000without any operating system abstraction layer - Multiboot-compliant binary built using NASM assembler and GCC with a custom linker script positioning code at physical address
0x100000for GRUB bootloader compatibility - Hardware initialization including interrupt disabling via
CLIinstruction and 8KB stack allocation in BSS section for bare-metal execution - VGA text mode interface writing 2-byte character-attribute pairs directly to video memory, demonstrating hardware-level display protocol understanding
What I Learned
This project was about understanding what happens between pressing the power button and seeing text on screen: the boot process, memory layout, segmentation, and how software communicates with hardware when there’s nothing else running.
