📄️ 00 - Rust
We will use the Rust programming language for the labs.
📄️ 01 - A Freestanding Rust Binary
The first step in creating our own operating system kernel is to create a Rust
📄️ 02 - A Minimal Rust Kernel
Our target is to build a minimal 64-bit Rust kernel for the x86 architecture.
📄️ 03 - VGA Text Mode
The VGA text mode is a
📄️ 04 - Testing
This post explores testing in no_std executables. We will use Rust's support for custom test frameworks to execute test functions inside our kernel.
📄️ 05 - CPU Exceptions
CPU exceptions occur in various erroneous situations, for example, when
📄️ 06 - Double Faults
We will explore the double fault exception in detail, which occurs when the CPU
📄️ 07 - Printing to the Console
To see the test output on the console, we need to send the data from our kernel
📄️ 08 - Hardware Interrupts
In this post, we set up the programmable interrupt controller to correctly forward hardware interrupts to the CPU. To handle these interrupts, we add new entries to our interrupt descriptor table, just like we did for our exception handlers. We will learn how to get periodic timer interrupts and how to get input from the keyboard.
📄️ 09 - Introduction to Paging
Memory Protection
📄️ 10
10 - Introduction