

BIOS TO KERNEL
What actually happens between powering on a machine and running your own code?
In this live session, we build a minimal operating system from scratch — starting from a custom bootloader and ending with a kernel that directly interacts with hardware.
What We Will Build
A 16-bit bootloader loaded at 0x7C00
A disk loader that reads raw sectors
Transition from real mode to protected mode
A 32-bit kernel written in C
Direct screen output via VGA memory (0xB8000)
A keyboard driver using interrupts
A simple memory allocator
What You Will Learn
How machines boot from firmware to your code
How to run programs without any runtime
How CPUs switch execution modes
How to communicate directly with hardware
The core building blocks of operating systems
Key Concepts
Boot sector and memory layout
Real Mode vs Protected Mode
Global Descriptor Table (GDT)
Interrupt Descriptor Table (IDT)
Hardware interrupts (IRQ)
Memory-mapped I/O
Basic memory management
Technologies Used
x86 Assembly (NASM)
C (freestanding, no standard library)
BIOS interrupts (int 0x10, int 0x13)
QEMU (emulation)
GCC and LD
Live Demo Highlights
Booting from a raw disk image
Switching CPU modes live
Printing text via direct memory access
Keyboard input handled by interrupts
Building a memory allocator from scratch
Who Should Attend
Systems programmers
Low-level developers
Kernel enthusiasts
Compiler builders
Anyone curious about how computers work
Prerequisites
Basic programming knowledge
Curiosity about how machines work
Closing Hook
We start with a blank disk.
We end with a working kernel.