Author

Writing an OS Kernel from Scratch – Part 23: Framebuffer — Run Your OS on a Graphical Interface!

dean
Writing an OS Kernel from Scratch – Part 23: Framebuffer — Run Your OS on a Graphical Interface! “VGA text mode can only display characters; a real graphical interface requires pixel-level control. Today, we implement the Framebuffer driver, enabling your OS to draw points, lines, rectangles, and even display images!” In previous posts, our output... » read more

Writing an OS Kernel from Scratch – Part 2: Hello World Analysis

dean
Writing an OS Kernel from Scratch – Part 2: Hello World Analysis “You think ‘Hello World’ is just printing a line? In an OS kernel, it hides the secrets of boot flow, memory layout, and hardware protocols.” In the previous post, we successfully had our kernel output “Hello from the kernel!” on QEMU. Looks simple,... » read more

Writing an OS Kernel from Scratch – Part 2: Hello World Analysis

dean
Writing an OS Kernel from Scratch – Part 2: Hello World Analysis “You think ‘Hello World’ is just printing a line? In an OS kernel, it hides the secrets of boot flow, memory layout, and hardware protocols.” In the previous post, we successfully had our kernel output “Hello from the kernel!” on QEMU. Looks simple,... » read more

Writing an OS Kernel from Scratch – Part 21: Implementing a Terminal — Make Your Shell Truly Interactive!

dean
Writing an OS Kernel from Scratch – Part 21: Implementing a Terminal — Make Your Shell Truly Interactive! “Your shell can run commands, but how does the user edit commands, handle backspace, or respond to Ctrl+C? Today, we implement a full terminal (Terminal) supporting line editing, signals, and job control!” In the previous post, we... » read more

Writing an OS Kernel from Scratch 201: Storage System – VFS: Designing a Unified File Abstraction Layer

dean
Writing an OS Kernel from Scratch 201: Storage System – VFS: Designing a Unified File Abstraction Layer “In a custom OS, how do you make open/read/write work with both ext2 and procfs? This article designs a VFS abstraction layer from scratch, building four core objects, implementing path resolution and caching, providing a unified interface for... » read more

Writing an OS Kernel from Scratch – Part 19: User and Kernel Address Space — Building Secure Virtual Memory Boundaries

dean
Writing an OS Kernel from Scratch – Part 19: User and Kernel Address Space — Building Secure Virtual Memory Boundaries “All processes share kernel code, but must never peek at each other; user programs roam freely but cannot cross the boundary. Today, we design the higher-half kernel mapping, achieving perfect isolation and efficient sharing of... » read more

Writing an OS Kernel from Scratch – Part 28: Window Manager — Controlling Windows via Keyboard

dean
Writing an OS Kernel from Scratch – Part 28: Window Manager — Controlling Windows via Keyboard “No mouse? No problem! Real geeks control everything with the keyboard. Today, we implement a Window Manager (WM), moving and resizing windows via keyboard shortcuts!” In previous posts, we built a userspace Display Server, Launcher, and multiple applications, but... » read more

Writing an OS Kernel from Scratch – Part 18: Multi-core Support — Make Your OS Truly Parallel!

dean
Writing an OS Kernel from Scratch – Part 18: Multi-core Support — Make Your OS Truly Parallel! “Single-core scheduling is just pseudo-concurrency; the real performance leap is multi-core! Today, we wake up all CPU cores and implement SMP (Symmetric Multi-Processing) support!” In the previous post, we implemented a preemptive scheduler, but all tasks still switched... » read more

Writing an OS Kernel from Scratch – Part 3: Multiboot Protocol Explained — The “Universal Language” Between Kernel and Bootloader

dean
Writing an OS Kernel from Scratch – Part 3: Multiboot Protocol Explained — The “Universal Language” Between Kernel and Bootloader Your kernel is written, but how does GRUB “recognize” it? The secret lies in a protocol called Multiboot. In the first two posts, we successfully ran our kernel on QEMU and understood the linker script... » read more