[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6143":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":40,"readmeContent":41,"aiSummary":42,"trendingCount":16,"starSnapshotCount":16,"syncStatus":43,"lastSyncTime":44,"discoverSource":45},6143,"raspberry-pi-os","s-matyukevich\u002Fraspberry-pi-os","s-matyukevich","Learning operating system development using Linux kernel and Raspberry Pi","",null,"C",13842,1343,502,60,0,6,29,4,75.29,"MIT License",false,"master",true,[26,27,28,29,30,31,32,33,34,35,36,37,5,38,39],"arm","armv8","assembler","c","education","kernel","learn","linux-kernel","operating-system","osdev","raspberry-pi","raspberry-pi-3","resource","tutorial","2026-06-12 04:00:27","# Learning operating system development using Linux kernel and Raspberry Pi\n\nThis 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](https:\u002F\u002Fgithub.com\u002Ftorvalds\u002Flinux), but the OS has very limited functionality and supports only [Raspberry PI 3](https:\u002F\u002Fwww.raspberrypi.org\u002Fproducts\u002Fraspberry-pi-3-model-b\u002F). \n\nEach 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](https:\u002F\u002Fgithub.com\u002Fs-matyukevich\u002Fraspberry-pi-os\u002Ftree\u002Fmaster\u002Fsrc) 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.\n\nFor more information about project goals and history, please read the [Introduction](docs\u002FIntroduction.md). The project is still under active development, if you are willing to participate - please read the [Contribution guide](docs\u002FContributions.md).\n\n\u003Cp>\n  \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002FRPi_OS\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fs-matyukevich\u002Fraspberry-pi-os\u002Fmaster\u002Fimages\u002Ftwitter.png\" alt=\"Follow @RPi_OS on twitter\" height=\"34\" >\n  \u003C\u002Fa>\n\n  \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fgroups\u002F251043708976964\u002F\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fs-matyukevich\u002Fraspberry-pi-os\u002Fmaster\u002Fimages\u002Ffacebook.png\" alt=\"Follow Raspberry Pi OS on facebook\" height=\"34\" >\n  \u003C\u002Fa>\n\n  \u003Ca href=\"https:\u002F\u002Fjoin.slack.com\u002Ft\u002Frpi-os\u002Fshared_invite\u002FenQtNDQ1NTg2ODc1MDEwLWVjMTZlZmMyZDE4OGEyYmMzNTY1YjljZjU5YWI1NDllOWEwMjI5YzVkM2RiMzliYjEzN2RlYmUzNzBiYmQyMjY\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fs-matyukevich\u002Fraspberry-pi-os\u002Fmaster\u002Fimages\u002Fslack.png\" alt=\"Join Raspberry Pi OS in slack\" height=\"34\" >\n  \u003C\u002Fa>\n\n  \u003Ca href=\"https:\u002F\u002Fwww.producthunt.com\u002Fupcoming\u002Fraspberry-pi-os\" target=\"_blank\">\n    \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fs-matyukevich\u002Fraspberry-pi-os\u002Fmaster\u002Fimages\u002Fsubscribe.png\" alt=\"Subscribe for updates\" height=\"34\" >\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n## Table of Contents\n\n* **[Introduction](docs\u002FIntroduction.md)**\n* **[Contribution guide](docs\u002FContributions.md)**\n* **[Prerequisites](docs\u002FPrerequisites.md)**\n* **Lesson 1: Kernel Initialization** \n  * 1.1 [Introducing RPi OS, or bare metal \"Hello, world!\"](docs\u002Flesson01\u002Frpi-os.md)\n  * Linux\n    * 1.2 [Project structure](docs\u002Flesson01\u002Flinux\u002Fproject-structure.md)\n    * 1.3 [Kernel build system](docs\u002Flesson01\u002Flinux\u002Fbuild-system.md) \n    * 1.4 [Startup sequence](docs\u002Flesson01\u002Flinux\u002Fkernel-startup.md)\n  * 1.5 [Exercises](docs\u002Flesson01\u002Fexercises.md)\n* **Lesson 2: Processor initialization**\n  * 2.1 [RPi OS](docs\u002Flesson02\u002Frpi-os.md)\n  * 2.2 [Linux](docs\u002Flesson02\u002Flinux.md)\n  * 2.3 [Exercises](docs\u002Flesson02\u002Fexercises.md)\n* **Lesson 3: Interrupt handling**\n  * 3.1 [RPi OS](docs\u002Flesson03\u002Frpi-os.md)\n  * Linux\n    * 3.2 [Low level exception handling](docs\u002Flesson03\u002Flinux\u002Flow_level-exception_handling.md) \n    * 3.3 [Interrupt controllers](docs\u002Flesson03\u002Flinux\u002Finterrupt_controllers.md)\n    * 3.4 [Timers](docs\u002Flesson03\u002Flinux\u002Ftimer.md)\n  * 3.5 [Exercises](docs\u002Flesson03\u002Fexercises.md)\n* **Lesson 4: Process scheduler**\n  * 4.1 [RPi OS](docs\u002Flesson04\u002Frpi-os.md) \n  * Linux\n    * 4.2 [Scheduler basic structures](docs\u002Flesson04\u002Flinux\u002Fbasic_structures.md)\n    * 4.3 [Forking a task](docs\u002Flesson04\u002Flinux\u002Ffork.md)\n    * 4.4 [Scheduler](docs\u002Flesson04\u002Flinux\u002Fscheduler.md)\n  * 4.5 [Exercises](docs\u002Flesson04\u002Fexercises.md)\n* **Lesson 5: User processes and system calls** \n  * 5.1 [RPi OS](docs\u002Flesson05\u002Frpi-os.md) \n  * 5.2 [Linux](docs\u002Flesson05\u002Flinux.md)\n  * 5.3 [Exercises](docs\u002Flesson05\u002Fexercises.md)\n* **Lesson 6: Virtual memory management**\n  * 6.1 [RPi OS](docs\u002Flesson06\u002Frpi-os.md) \n  * 6.2 Linux (In progress)\n  * 6.3 [Exercises](docs\u002Flesson06\u002Fexercises.md)\n* **Lesson 7: Signals and interrupt waiting** (To be done)\n* **Lesson 8: File systems** (To be done)\n* **Lesson 9: Executable files (ELF)** (To be done)\n* **Lesson 10: Drivers** (To be done)\n* **Lesson 11: Networking** (To be done)\n\n","这个项目是一个基于Linux内核和Raspberry Pi的学习操作系统开发的教程。它提供了一个从零开始构建简单操作系统内核的逐步指南，涵盖从初始化到处理器设置等多个核心功能，并且每一步都与Linux内核中的实现进行对比说明。整个项目使用C语言编写，主要针对树莓派3模型。该项目非常适合对操作系统内部工作原理感兴趣的初学者或有一定基础的开发者学习使用，无需事先掌握操作系统开发技能。通过跟随教程，参与者可以逐步理解并实践操作系统的基本概念和发展过程。",2,"2026-06-11 03:05:47","top_language"]