raspberry-pi-os README

The project's README from github.com/s-matyukevich/raspberry-pi-os. As one markdown file: README.md.

Learning operating system development using Linux kernel and Raspberry Pi

This repository contains a step-by-step guide that teaches how to create a simple operating system (OS) kernel from scratch. I call this OS Raspberry Pi OS or just RPi OS. The RPi OS source code is largely based on Linux kernel, but the OS has very limited functionality and supports only Raspberry PI 3.

Each lesson is designed in such a way that it first explains how some kernel feature is implemented in the RPi OS, and then it tries to demonstrate how the same functionality works in the Linux kernel. Each lesson has a corresponding folder in the src directory, which contains a snapshot of the OS source code at the time when the lesson had just been completed. This allows the introduction of new concepts gracefully and helps readers to follow the evolution of the RPi OS. Understanding this guide doesn't require any specific OS development skills.

For more information about project goals and history, please read the Introduction. The project is still under active development, if you are willing to participate - please read the Contribution guide.

Follow @RPi_OS on twitter Follow Raspberry Pi OS on facebook Join Raspberry Pi OS in slack Subscribe for updates

Table of Contents

raspberry-pi-os (s-matyukevich/raspberry-pi-os)

arm
Searching Database…

What is this?A step-by-step guide that teaches you how to create a simple operating system kernel from scratch, called RPi OS. Its code is largely based on the Linux kernel, and everything targets the Raspberry Pi 3.
Is RPi OS a real operating system I can install and use, or a learning project?It's a learning project: RPi OS has very limited functionality and supports only Raspberry Pi 3. The goal is to understand how kernels work, not to replace a production OS.
How do I work through the guide?Lesson by lesson: each lesson has a folder in the src directory with a snapshot of the OS code at that stage, and every lesson ends with exercises. You start at Lesson 1: Kernel Initialization.
Do I need OS development experience to follow it?No — the guide says understanding it doesn't require any specific OS development skills. The code itself is C plus ARM assembly, and the repo includes a Dockerfile for the build environment.
Is the guide finished, or are some lessons still missing?Lessons 1-6 are written, though the Linux half of lesson 6 is still in progress. Lessons 7-11 — signals, file systems, ELF executables, drivers, networking — are marked To be done.
Which kernel topics do the lessons cover?Kernel initialization and the startup sequence, processor initialization, interrupt handling with timers, a process scheduler with task forking, user processes and system calls, and virtual memory management.
How does the Linux kernel fit into each lesson?Every lesson first explains how a kernel feature is implemented in RPi OS, then demonstrates how the same functionality works in the real Linux kernel — a minimal version next to its production counterpart.
What does Lesson 1 actually build?A bare-metal 'Hello, world!' — the first kernel that boots on the Pi. It walks through the project structure, the kernel build system and the startup sequence, then gives you exercises.
Is the project still being developed?Yes — the README states the project is still under active development and invites participation through the contribution guide.
Size
2 MB
Stars
14K
Updated
CommitApr 16
Age
9y
Commits · 90 Days