Потрясающие вещи об операционной системе
В этом списке собраны потрясающие материалы, связанные с операционной системой. Цель состоит в том, чтобы собрать все виды различных ОС с открытым исходным кодом, чтобы люди могли изучать их код и учиться на них. А также собирать полезные ресурсы, которые помогут людям начать разработку в популярных операционных системах.
Операционные системы с открытым исходным кодом
- 9front — ответвление Plan 9, предназначенное для распределенных сетевых вычислений.
- AROS — Research Operating System — это легкая, эффективная и гибкая операционная система для настольных компьютеров, разработанная, чтобы помочь вам максимально эффективно использовать возможности вашего компьютера. Это независимый, портативный и бесплатный проект, целью которого является совместимость с AmigaOS на уровне API.
- AlmeidaOS — ОС x86-64 с собственным загрузчиком, планировщиком и ограниченной библиотекой, написанной с нуля.
- Animal — 32-битная многопоточная операционная система (ранее Gramado)
- AurixOS — небольшая мультиплатформенная операционная система, предназначенная для разработчиков и создателей.
- AquilaOS — операционная система, совместимая с POSIX и в основном прозрачная для ISA.
- BareMetal, GitHub — 64-битная операционная система, написанная на ассемблере для x86-64.
- Basekernel — простое ядро ОС для исследований, обучения и развлечения.
- BoneOS — ОС для всех, созданная всеми
- Bottlerocket OS — ОС на базе Linux, предназначенная для размещения контейнеров.
- Brutal — операционная система, вдохновленная бруталистским дизайном, сочетающая в себе идеалы UNIX 1970-х годов с современными технологиями и инженерными разработками.
- cavOS — операционная система Amd64 на языке C. Попытка создать полноценную ОС с простой и читаемой кодовой базой.
- Charlotte — ядро CharlotteOS в Rust
- ChibiOS — полная среда разработки встроенных приложений, включая RTOS, HAL, драйверы периферийных устройств, файлы поддержки и инструменты.
- Clive — одноядерная ОС, вдохновленная Plan9 и Nix, разработанная в Университете имени Рей Хуана Карлоса в Мадриде.
- Cyjon — чистая операционная система на языке ассемблера x64 (связанная с проектом Fern-Night).
- DragonOS — сборка ОС x86-64 с нуля.
- Dreamos64 — хобби-операционная система x86-64, созданная с нуля.
- Embox — настраиваемое ядро операционной системы, предназначенное для встраиваемых систем с ограниченными ресурсами.
- ExectOS, GitHub — ExectOS — это современная операционная система общего назначения с поддержкой EFI, написанная с нуля и реализующая архитектуру XT. Он работает на архитектурах x86 и x86_64 и обеспечивает уровень совместимости драйверов NT.
- Fern-Night — операционная система на языке C (связана с проектом Cyjon).
- Fiwix, GitHub — UNIX-подобное ядро для архитектуры i386.
- Fomos — экспериментальная ОС, созданная на Rust.
- FreeRTOS, GitHub — операционная система Интернета вещей для микроконтроллеров от Amazon.
- GarnOS — ОС для хобби, работающая на модульном ядре.
- Genode — структура операционной системы FOSS, состоящая из уровня абстракции микроядра и набора компонентов пользовательского пространства.
- Gloire — ОС, построенная на ядре Ironclad (частично формально проверенное ядро с небольшим размером для универсальных и встраиваемых ОС, написанное на SPARK и Ada) и инструментах GNU.
- GreenteaOS, Github — бесплатная ОС, совместимая с исполняемыми файлами Windows.
- HalideOS — экспериментальная операционная система, написанная полностью с нуля.
- HarveyOS — распределенная операционная система.
- HelenOS — многоядерная многосерверная ОС
- Дом — операционная система и среда пользователя Haskell.
- Hubris — Hubris — операционная система для микроконтроллеров, разработанная Oxide Computer Company на Rust.
- Illumos — illumos — это операционная система Unix, которая предоставляет функции следующего поколения для последующих дистрибутивов (таких как OmniOS, OpenIndiana и Tribblix).
- Промежуточный — минималистская ОС с концепциями машин Lisp и Plan9.
- JSD-OS — небольшая операционная система для 32-битной версии x86.
- Жанна, GitHub — ОС, вдохновленная Plan9, 9front и Harvey OS
- KiddieOS — UNIX-подобная 64-битная операционная система, написанная на ассемблере, C++.
- KnightOS - для калькуляторов z80
- KolibriOS — форк MenuetOS
- L4re — операционная система и гипервизор для приложений, критически важных для безопасности и виртуализации.
- LemonOS, GitHub — UNIX-подобная 64-битная операционная система, написанная на C++.
- Mako — Хобби ОС для x86 с нуля, написанная на C
- MaslOS — многозадачная операционная система для хобби с 64-битным графическим пользовательским интерфейсом, написанная в основном с нуля на C++ и немного на C/ASM.
- MeetixOS — операционная система для хобби, написанная на современном C++20 и стремящаяся быть Unix-подобной.
- MentOS — образовательная 32-битная Linux-подобная операционная система.
- MenuetOS — ОС для хобби, поддерживающая 32 и 64 бита, написанная на языке ассемблера.
- Mimiker, GitHub — простая unix-подобная операционная система для образовательных и исследовательских целей. Микроядро MIPS.
- Mimosa, GitHub — исследовательская операционная система, запускающая Scheme на «голом железе».
- Minoca OS — ОС общего назначения, написанная на C.
- MollenOS — MollenOS/Vali — это современная операционная система, построенная с упором на абстракцию и модульную конструкцию, позволяющую любому портировать ее на любую архитектуру. В настоящее время он ориентирован на платформы x86-32 и x86-64.
- MyXomycota — Монолитное ядро на C
- NESOS — ОС для развлекательной системы Nintendo!
- Nanos — Unikernel, совместимый с Linux, написанный на C.
- NodeOS — ОС, использующая NodeJS и Linux
- Northport — монолитное ядро и библиотеки поддержки для riscv64 и x86_64.
- PathOS — ОС для хобби на базе MikeOS, написанная на языке ассемблера.
- Pidi OS — независимая и минималистичная ОС
- PonyOS, GitHub — операционная система в стиле My Little Pony на базе ToaruOS.
- PouplyOS — простая ОС для развлечения и обучения, названная в честь талисмана ESISAR Пулпи.
- PureDarwin — PureDarwin — это проект сообщества, призванный превратить Darwin в полноценную и удобную операционную систему.
- ОС Qubes — операционная система, ориентированная на безопасность, построенная на гипервизоре Xen и предназначенная для изоляции различных отсеков на основе уровней доверия.
- RavynOS — проект ОС на базе BSD, целью которого является обеспечение совместимости и некоторой совместимости с macOS (ранее известной как airyxOS).
- Redox — написан на Rust
- RustyHermit — облегченное одноядро на основе Rust.
- Sanos, GitHub — Sanos — это минималистичное 32-разрядное ядро операционной системы x86 для сетевых серверных устройств, работающих на стандартном оборудовании ПК.
- SayoriOS — ОС для хобби для компьютеров x86, в настоящее время находится в активной разработке, написана на C.
- Sculpt OS — ОС на основе Genode
- Serenity — графическая Unix-подобная операционная система для компьютеров x86.
- SimpleOS — простая операционная система, написанная на C и ассемблере.
- Snowdrop OS — самодельная операционная система с нуля, на языке ассемблера.
- Sortix — ОС для хобби на C и C++, автор Йонас «Sortie» Термансен
- Syllable — преемник AtheOS, Syllable разработан в традициях Amiga и BeOS, но построен с использованием многих частей проекта GNU и Linux.
- SynestiaOS — 32/64-битная операционная система, написанная на C для платформы Arm.
- TempleOS — Религиозная ОС :-)
- Тезей — современная экспериментальная ОС, написанная с нуля на Rust для изучения новой структуры ОС и методов управления состоянием.
- Thor — 64-битная операционная система, написанная в основном на C++.
- ToaruOS - операционная система для хобби с нуля
- Týndur — операционная система для хобби, созданная сообществом Lowlevel. Написан на C и Паскале.
- Ultron OS — операционная система x86, написанная на C++, проект для средней школы
- Unikraft — модульное униядро для специализации, высокой эффективности, производительности и безопасности; Linux/POSIX-совместимый; в основном на C
- Vinix. Vinix — это попытка написать современную, быструю и полезную операционную систему на языке программирования V.
- Visopsys — ОС для хобби с открытым исходным кодом, разрабатываемая с 1997 года.
- Windows 95 в Electron - Хобби: реализация Windows 95 в Electron
- Xv6 — обучающая операционная система, разработанная летом 2006 года для курса операционных систем Массачусетского технологического института.
- ZealOS — операционная система Zeal — это модернизированная профессиональная версия 64-битной операционной системы Temple OS.
- ackOS — простая 64-битная операционная система.
- aurora_os — Написано на Rust.
- dahliaOS- dahliaOS — это современная, безопасная, легкая и отзывчивая операционная система, сочетающая в себе лучшее от ОС GNU/Linux и Fuchsia.
- DuckOS — UNIX-подобная операционная система для хобби с графическим оконным менеджером для компьютеров x86.
- eggos — одноядерное ядро Go, работающее на голом железе x86.
- изумруд — ядро операционной системы, написанное для развлечения на C.
- gopher-os — доказательство концепции ядра ОС, написанного на Go.
- hhuOS — hhuOS — небольшая операционная система, написанная на C++ и ассемблере для архитектуры x86. Основная цель этого проекта — показать, как различные аспекты теории операционных систем могут быть реализованы и связаны друг с другом. Система не претендует на роль полнофункциональной операционной системы для повседневного использования.
- водород - игрушечная ОС. 64-битное ядро с вытесняющей многозадачностью, поддерживающее EFI, PCIe, SATA, графический режим с кадровым буфером, HFS+.
- lyre — ядро и дистрибутив x86 на базе mlibc, пользовательских инструментов GNU и другого распространенного программного обеспечения *nix.
- managarm — прагматичная ОС на базе микроядра с полностью асинхронным вводом-выводом
- menix — минимальная и расширяемая Unix-подобная операционная система.
- moros — MOROS — это операционная система для хобби, написанная на Rust для архитектуры x86.
- mOS — операционная система для хобби, разработанная с нуля.
- nopeos — Простое ядро ОС с интерпретатором BASIC для x86
- Octox — Unix-подобная ОС на Rust, вдохновленная xv6-riscv
- oneOS — ядро x86-32 и ARMv7 с вытесняющей многопоточностью, оконным менеджером и редактором
- opuntiaOS — операционная система, ориентированная на x86, ARMv7, Aarch64.
- Orange_slice — исследовательское ядро и гипервизор, пытающиеся получить полностью детерминированную эмуляцию с минимальными затратами производительности. В ржавчине
- pranaOS — операционная система unix, написанная с нуля на c/c++.
- QuickOS — операционная система, созданная независимым разработчиком и все еще находящаяся в разработке, как MS-DOS, но на языке qbasic. Это СДЕЛАНО с qb64.
- r3 — хобби-ядро операционной системы x86_64, написанное на Rust — с минимальным функционалом.
- ravynOS — проект ОС на базе BSD, целью которого является обеспечение совместимости и некоторой совместимости с macOS (ранее известной как airyxOS).
- SkiftOS, GitHub — простая, созданная вручную операционная система с графическим пользовательским интерфейсом.
- soso — Простая unix-подобная операционная система, написанная на ассемблере Nasm и в основном на C.
- tilck — крошечное ядро, совместимое с Linux.
- tock, GitHub — безопасная встроенная операционная система для микроконтроллеров.
- unox-os — Unox — образовательная unix-подобная операционная система.
- willOS — минимальное 64-битное ядро (операционная система, которая не может «управлять» многими вещами)
Популярные операционные системы
- Darwin XNU — исходный код ядра XNU для использования в MacOS и iOS.
- FreeBSD, Github — Unix-подобная операционная система на базе BSD.
- FreeDOS — DOS-совместимая ОС
- Haiku — ОС, вдохновленная BeOS
- Linux — ядро Linux
- Minix, Github — Unix-подобная операционная система, основанная на микроядерной архитектуре.
- MS-DOS — оригинальные исходные коды MS-DOS 1.25 и 2.0.
- NetBSD, Github — Unix-подобная операционная система на базе BSD.
- OpenBSD, Github — Unix-подобная операционная система на базе BSD.
- Plan 9 от Bell Labs — операционная система от создателей Unix, расширяющая философию Unix «все есть файл» с помощью сетецентрической файловой системы, пространств имен и распределенных вычислений.
- ReactOS, Github — бесплатная Windows-совместимая операционная система
- SystemV — исходный код AT&T UNIX System V
Книги и путеводители
Интернет-книги
- Как создать компьютерную операционную систему — на C++
- Intermezzos — дополнительная книга по созданию IntermezzosOS на Rust.
- Ядро Linux в двух словах — охватывает весь спектр задач ядра, доступен в виде глав или одного PDF-файла.
- Маленькая книга о разработке ОС Эрика Хелина и Адама Ренберга
- Think OS – Краткое введение в операционные системы Аллена Б. Дауни
- Серия «Разработка операционных систем — ОС с нуля на C»
- Операционные системы: три простых части — легко читаемая книга, посвященная виртуализации, параллелизму и персистентности.
- xv6: простая обучающая операционная система, подобная Unix. Книга для Xv6.
- Операционные системы: от 0 до 1 — начните писать ОС с нуля, До Хоанг Ту
- Заметки Осдева - Как написать операционную систему с нуля Иван Г. и Дин Т.
Учебники
- Baking Pi – разработка операционных систем Кембриджским университетом
- Создание минимального многозадачного ядра ОС для ARM с нуля, автор Джим Хуанг.
- Разработка ядра Брана, Брэндон Фризен
- Как написать патч ядра Linux и отправить его Грег Кроа-Хартман
- Презентация Грега Кроа-Хартмана о разработке ядра Linux.
- os-tutorial - Как создать ОС с нуля от Карлоса Феноллоса
- Создайте свою собственную игрушечную ОС-клон UNIX от Джеймса Моллоя
- Написание ОС на Rust Филипп Опперманн
- Создание операционной системы RISC-V с использованием Rust, Стивен Марц
- Разработка операционных систем для чайников Лео Уайтхеда
- Ядра 101 – Давайте напишем ядро Арджун Сридхаран
- Ядра 201 - Давайте напишем ядро с поддержкой клавиатуры и экрана. Арджун Сридхаран.
- Написание крошечного загрузчика x86 Джо Бержерона
- Написание загрузчика Алекса Паркера
- Обучение разработке операционных систем с использованием ядра Linux и Raspberry Pi.
- мя, интересный проект по созданию ОС с нуля от Эрфана
Веб-сайты
- Генодианцы - Истории вокруг операционной системы Genode
- os-dev — Wiki со всем, что вам нужно знать
- Lowlevel — вики о создании ОС с нуля. На немецком языке
- POSIX — стандарты обеспечения совместимости между операционными системами.
- Rust OSDev - Информационный бюллетень о разработке ОС на Rust
- OSRTOS — Список операционных систем реального времени с открытым исходным кодом.
- Multicians - веб-сайт Multicians представляет историю операционной системы Multics для людей, интересующихся историей системы.
Статьи
- Преимущества и затраты написания ядра POSIX на языке высокого уровня Коди Катлер, М. Франс Каашук и Роберт Т. Моррис, MIT CSAIL
- Схема запуска на голом металле от Сэмюэля Ивона, Марка Фили, Scheme 2020
- Unikraft: быстрые специализированные Unikernels простым способом, Куэнцер и др., EuroSys 2021
Видеоуроки
- Напишите свою собственную операционную систему
- Нанобайт
- Разработка ядра с нуля от Dragon Zap Education
- Серия лекций OSDev от AptRock327
специально для Linux
Руководство для начинающих по разработке ядра Linux (LFD103)
Руководство по программированию модулей ядра Linux
Документация ядра Linux
Работа с сообществом разработчиков ядра
Обучение ядру Linux
Linux-внутренности
Рабочая тетрадь ядра Linux
Обучение ядру Linux
Интерактивная карта ядра Linux bootlins
Таблица системных вызовов ядра Linux для всех арок, автор Марцин Юшкевич
OldLinux — широко комментируемый исходный код ядра Linux и многое другое.
sam4ks Ресурсы ядра Linux
xairys Эксплуатация ядра Linux
fibdrv Модуль ядра Linux, вычисляющий числа Фибоначчи
обучение безопасности ядра
ошибки сизбота
фаззер ядра syzkaller
Делаем больше с лором и b4, слайды
Der Linux Kernel Entwicklungs-Workflow (2023, немецкий язык), автор Рувен Червински
Инструменты
- b4, docu, инструмент, помогающий в работе с исправлениями по электронной почте.
- clang-extract — инструмент для извлечения содержимого кода из исходных файлов с использованием инфраструктуры clang и LLVM.
- hackermail — инструмент управления почтой для хакеров, которые сотрудничают с помощью списков рассылки.
- kworkflow — сократите накладные расходы за счет настройки инфраструктуры для разработки Linux.
- virtme-ng — быстро собирайте и запускайте ядра внутри виртуализированного снимка вашей работающей системы.
Сообщения в блогах
Планета Кернел
Станьте участником ядра Linux. Часть 1, Хавьер Карраско
Станьте участником ядра Linux. Часть 2, Хавьер Карраско
Станьте участником ядра Linux. Часть 3, Хавьер Карраско
Исправление ошибок в ядре Linux с помощью Syzbot, Qemu и GDB, Хавьер Карраско
b4 для участников ядра Linux от Хавьера Карраско
Используйте b4 для вклада Маркуса Фолкессона в ядро.
Использование lei, b4 и mutt для разработки ядра Йозефа Бачика
netdev в 2023 году, автор Якуб Кичински
Пять команд для сбоя ядра Маркос Пауло де Соуза
Вы можете быть хакером ядра! Джулия Эванс
«4 пути к тому, чтобы стать хакером ядра», Джулия Эванс
Угадывание регистров ядра Linux, Джулия Эванс
Как Ариэль Микулас украл у меня мой первый вклад в ядро
Примените исправления ядра Linux из LKML Адама Янга (до того, как он узнал о b4)
Мой рабочий процесс проверки патчей от Йозефа Бачика
Рабочий процесс разработки ядра Linux, Томмазо Мерсиаи
Примените патч ядра Linux к дереву стабильных версий (2009 г.), автор Грег Кроа-Хартман.
Рабочий процесс исправления с Mutt 2019 от Грега Кроа-Хартмана
Отладка ядра с помощью KGDB, Маркус Фолкессон
Отладка ядра Linux
Эмили Шаффер «Как я полюбила рабочий процесс разработки обновлений электронной почты»
Отладка
- Поиск ошибок
- Разделение ошибки пополам
- Динамическая отладка
- Кто и когда внес это изменение: использование Cregit для отладки, Шуа Хан
- Сделайте вывод дампа стека снова полезным
- Отладка анализа паники ядра и ошибок ядра с использованием карты системы, Санджив Шарма
- Понимание ядра Сурья Прабхакар
Электронная почта
Узнайте, как использовать git+email: git-send-email.
Узнайте, как просматривать исправления по электронной почте: git-am.
Используйте открытые текстовые электронные письма
Преимущества рабочего процесса Git, управляемого электронной почтой, Дрю ДеВолт
Проверка кода со скоростью электронной почты, Дрю ДеВолт
Конференции/Презентации
- Linux-сантехники, YT
- Фонд Linux