ARM64 Operating System Handbook
A beginner-friendly textbook that teaches how operating systems work by guiding you through building one from scratch for the ARM64 architecture.
About This Book
This book is written for students and developers who want to learn how a modern operating system works by building one step by step. Every chapter starts with the fundamentals, explains concepts using simple language and practical examples, and then shows how those ideas can be applied to your own kernel.
The goal is not just to build an operating system, but to understand why every part exists and how it works. By the end of this book, you will have a working kernel and a deep understanding of how computers operate at the lowest level.
Who Is This For?
- Developers who want to understand what happens beneath their applications
- Anyone curious about how CPUs, memory, and kernels really work
What You Will Build
| Component | Chapter |
|---|---|
| Development environment and first kernel | 1 |
| Bootloader that loads our kernel | 7-9 |
| Exception and interrupt handling | 11-12 |
| Memory management with paging | 15-21 |
| Process scheduler and context switching | 13, 22-24 |
| System calls for user-space programs | 14 |
| Device drivers (UART, framebuffer, storage) | 32-35 |
| File system and storage | 30-31 |
| Shell and user-space applications | 37-39 |
Target Platform
Our operating system targets the ARMv8-A architecture in 64-bit mode (AArch64). We develop using QEMU, which emulates the target hardware, and will later port to Raspberry Pi 4 and Raspberry Pi 5.
How to Read This Book
Chapters are arranged so that each one builds on the previous. Start with Chapter 1 and work your way forward. Each chapter includes exercises to test your understanding. Try them before moving on.
When you are ready, begin with Chapter 1: What is an Operating System?