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)

Searching Database…

Что это такое?Пошаговое руководство, которое учит создавать с нуля простое ядро операционной системы под названием RPi OS. Его код во многом основан на ядре Linux, и всё ориентировано на Raspberry Pi 3.
RPi OS — это настоящая операционная система, которую можно установить и использовать, или учебный проект?Это учебный проект: у RPi OS очень ограниченная функциональность, и она поддерживает только Raspberry Pi 3. Цель — понять, как устроены ядра, а не заменить production-ОС.
Как проходить руководство?Урок за уроком: у каждого урока есть папка в каталоге src со снимком кода ОС на том этапе, и каждый урок заканчивается упражнениями. Вы начинаете с урока 1: Kernel Initialization.
Нужен ли опыт разработки ОС, чтобы пройти руководство?Нет — в руководстве сказано, что для его понимания не требуются какие-либо особые навыки разработки ОС. Сам код — это C плюс ассемблер ARM, а в репозитории есть Dockerfile для среды сборки.
Руководство завершено, или некоторые уроки ещё не написаны?Написаны уроки 1-6, хотя Linux-часть урока 6 всё ещё в работе. Уроки 7-11 — сигналы, файловые системы, ELF-исполняемые файлы, драйверы, сеть — помечены как «To be done» (будет сделано).
Какие темы, связанные с ядром, разбираются в уроках?Инициализация ядра и последовательность запуска, инициализация процессора, обработка прерываний с таймерами, планировщик процессов с форкингом задач, пользовательские процессы и системные вызовы, а также управление виртуальной памятью.
Как ядро Linux вписывается в каждый урок?Каждый урок сначала объясняет, как некая возможность ядра реализована в RPi OS, а затем показывает, как та же функциональность работает в настоящем ядре Linux — минимальная версия рядом с её production-аналогом.
Что именно собирается в уроке 1?Bare-metal 'Hello, world!' — первое ядро, которое загружается на Pi. Урок разбирает структуру проекта, систему сборки ядра и последовательность запуска, а в конце предлагает упражнения.
Проект всё ещё развивается?Да — в README сказано, что проект всё ещё находится в активной разработке, и приглашают принять участие через руководство для контрибьюторов.
Size
2 MB
Stars
14K
Updated
CommitApr 16
Age
9y
Commits · 90 Days