s-matyukevich/raspberry-pi-os
s-matyukevich/raspberry-pi-os has 13,964 GitHub stars and 1,339 forks. GitHot measured 0 stars in 24 hours and +1 in 7 days. Last checked 2026-11-09 21:49 UTC. Last push 2024-03-29.
Linux 커널과 Raspberry Pi를 사용한 운영체제 개발 학습
측정된 스타 증가
- in 24h
- 0
- in 7 days
- +1
- in 15 days
- 업데이트 지연
- in 1 month
- 업데이트 지연
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
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)
관련 프로젝트 살펴보기
sindresorhus/awesome
😎 온갖 흥미로운 주제에 관한 Awesome 목록 [참고: 기존 풀 리퀘스트를 따라잡을 여유가 생길 때까지 풀 리퀘스트가 일시적으로 비활성화되어 있습니다]
534,376 스타EbookFoundation/free-programming-books
:books: 무료로 이용할 수 있는 프로그래밍 도서
401,397 스타nilbuild/developer-roadmap
개발자의 커리어 성장을 돕는 인터랙티브 로드맵, 가이드 및 기타 교육 콘텐츠.
371,688 스타vinta/awesome-python
“Python으로 X를 하고 싶은데, 어떤 도구를 써야 할까?”에 답하는 결정판 목록.
333,651 스타