s-matyukevich/raspberry-pi-os
s-matyukevich/raspberry-pi-os has 13,964 GitHub stars and 1,339 forks. GitHot measured +1 in 7 days. Last checked 2026-11-09 21:49 UTC. Last push 2024-03-29.
Aprendizaje del desarrollo de sistemas operativos con el kernel de Linux y Raspberry Pi
Crecimiento de estrellas medido
- in 24h
- Actualización retrasada
- in 7 days
- +1
- in 15 days
- Actualización retrasada
- in 1 month
- Actualización retrasada
Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.
README.md
OriginalLearning 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.
Table of Contents
- Introduction
- Contribution guide
- Prerequisites
- Lesson 1: Kernel Initialization
- 1.1 Introducing RPi OS, or bare metal "Hello, world!"
- Linux
- 1.2 Project structure
- 1.3 Kernel build system
- 1.4 Startup sequence
- 1.5 Exercises
- Lesson 2: Processor initialization
- Lesson 3: Interrupt handling
- 3.1 RPi OS
- Linux
- 3.2 Low level exception handling
- 3.3 Interrupt controllers
- 3.4 Timers
- 3.5 Exercises
- Lesson 4: Process scheduler
- 4.1 RPi OS
- Linux
- 4.2 Scheduler basic structures
- 4.3 Forking a task
- 4.4 Scheduler
- 4.5 Exercises
- Lesson 5: User processes and system calls
- Lesson 6: Virtual memory management
- Lesson 7: Signals and interrupt waiting (To be done)
- Lesson 8: File systems (To be done)
- Lesson 9: Executable files (ELF) (To be done)
- Lesson 10: Drivers (To be done)
- Lesson 11: Networking (To be done)
Explorar proyectos relacionados
sindresorhus/awesome
😎 Listas Awesome sobre todo tipo de temas interesantes [NOTA: Las pull requests están temporalmente desactivadas hasta que tenga ocasión de ponerme al día con las existentes]
535,156 estrellasEbookFoundation/free-programming-books
:books: Libros de programación disponibles de forma gratuita
401,491 estrellasnilbuild/developer-roadmap
Hojas de ruta interactivas, guías y otros contenidos educativos para ayudar a los desarrolladores a crecer en su carrera.
371,800 estrellasvinta/awesome-python
La lista definitiva que responde a «Quiero hacer X en Python, ¿qué herramienta debería usar?».
333,985 estrellas