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。它的目标是让你理解内核是如何工作的,而不是取代正式的生产环境操作系统。
我该怎么学这份教程?一课一课地学:src 目录里每一课都有一个文件夹,保存着该阶段的操作系统代码快照,而且每课最后都配有练习。你从 Lesson 1: Kernel Initialization(第 1 课:内核初始化)开始。
我需要有操作系统开发的经验才能看懂吗?不需要——教程说明理解它不需要任何专门的操作系统开发技能。代码本身由 C 语言加 ARM 汇编组成,仓库里还包含一个用于搭建构建环境的 Dockerfile。
这份教程写完了吗,还是有些课程还没写?第 1 到第 6 课已经写好,不过第 6 课的 Linux 部分仍在编写中。第 7 到 11 课——信号、文件系统、ELF 可执行文件、驱动程序、网络——都标注为'To be done'(待完成)。
这些课程涵盖了哪些内核主题?内核初始化和启动流程、处理器初始化、基于定时器的中断处理、带任务派生(fork)的进程调度器、用户进程和系统调用,以及虚拟内存管理。
Linux 内核在每课中扮演什么角色?每节课先讲清某个内核功能在 RPi OS 里是如何实现的,然后再演示同样的功能在真正的 Linux 内核中是如何工作的——用最小版本对照正式版本。
第 1 课到底会构建出什么?一个裸机的 'Hello, world!'——第一个能在树莓派上启动的内核。它会带你了解项目结构、内核构建系统和启动流程,最后还留有练习。
这个项目还在继续开发吗?是的——README 中说明项目仍在积极开发中,并欢迎通过贡献指南参与进来。
Size
2 MB
Stars
14K
Updated
CommitApr 16
Age
9y
Commits · 90 Days