Files
awesome-awesomeness/html/os.html
2025-07-18 23:13:11 +02:00

666 lines
34 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-operating-system-stuff">Awesome Operating System
Stuff</h1>
<p>This list contains awesome operating system related stuff. The goal
is to collect all kinds of different open source OSs so people can study
their code and learn from them. As well as collect helpful resources to
help people getting started developing in popular operating systems.</p>
<h2 id="open-source-operating-systems">Open Source Operating
Systems</h2>
<ul>
<li><a href="http://9front.org">9front</a> - A fork of Plan 9, designed
for distributed, networked computing.</li>
<li><a href="https://aros.sourceforge.io/">AROS</a> - Research Operating
System is a lightweight, efficient, and flexible desktop operating
system, designed to help you make the most of your computer. Its an
independent, portable and free project, aiming at being compatible with
AmigaOS at the API level</li>
<li><a href="https://github.com/PauloMigAlmeida/AlmeidaOS">AlmeidaOS</a>
- x86-64 OS with its own bootloader, scheduler and limited libc all
written from scratch</li>
<li><a href="https://github.com/frednora/animal">Animal</a> - 32 bit
multithreaded operating system (formerly Gramado)</li>
<li><a href="https://github.com/aurixos/os">AurixOS</a> - A small
multiplatform Operating System designed for developers and creators</li>
<li><a href="https://aquilaos.com">AquilaOS</a> - Operating System that
is designed to be POSIX compliant and mostly ISA transparent</li>
<li><a href="https://arikoto.nerdnextdoor.net/">Arikoto</a>, <a
href="https://github.com/IAmTheNerdNextDoor/arikoto">GitHub</a> - A
Limine protocol, x86_64, C based personal Operating System development
project that is inspired by and is aiming to have a similar nature to
ToaruOS</li>
<li><a href="http://www.returninfinity.com/">BareMetal</a>, <a
href="https://github.com/ReturnInfinity/BareMetal">GitHub</a> - 64 bit
operating system written in Assembly for x86-64</li>
<li><a href="https://github.com/dthain/basekernel">Basekernel</a> - A
simple OS kernel for research, teaching, and fun</li>
<li><a href="https://github.com/Bone-Project/BoneOS">BoneOS</a>- OS for
everyone built by everyone</li>
<li><a
href="https://github.com/bottlerocket-os/bottlerocket">Bottlerocket
OS</a>- Linux-based OS meant for hosting containers.</li>
<li><a href="https://github.com/brutal-org/brutal">Brutal</a> - An
operating system inspired by brutalist design that combines the ideals
of UNIX from the 1970s with modern technology and engineering</li>
<li><a href="https://github.com/malwarepad/cavOS">cavOS</a> - Amd64
operating system in C. Trying to make a full OS, with a simple and
readable codebase</li>
<li><a
href="https://github.com/charlotte-os/charlotte-core">Charlotte</a> -
CharlotteOS kernel in Rust</li>
<li><a href="http://www.chibios.org/">ChibiOS</a> - a complete
development environment for embedded applications including RTOS, an
HAL, peripheral drivers, support files and tools</li>
<li><a href="https://lsub.org/ls/clive.html">Clive</a> - A unikernel OS
inspired by Plan9 and Nix developed at <em>Universidad Rey Juan Carlos
of Madrid</em></li>
<li><a href="https://github.com/CorruptedByCPU/Cyjon/">Cyjon</a> - pure
x64 assembly language operating system (related to <a
href="https://github.com/CorruptedByCPU/Fern-Night/">Fern-Night</a>
project).</li>
<li><a href="https://github.com/fslongjin/DragonOS">DragonOS</a> - An
x86-64 OS build from scratch.</li>
<li><a href="https://github.com/dreamos82/Dreamos64">Dreamos64</a> - An
x86-64 hobby os built from scratch</li>
<li><a href="https://embox.github.io/">Embox</a> - Configurable
operating system kernel designed for resource constrained and embedded
systems.</li>
<li><a
href="https://git.codingworkshop.eu.org/xt-sys/exectos">ExectOS</a>, <a
href="https://github.com/xt-sys/exectos">GitHub</a> - ExectOS is a
modern, EFI-enabled, general purpose operating system written from
scratch and implementing the XT architecture. It runs on x86 and x86_64
architectures and provides NT drivers compatibility layer.</li>
<li><a
href="https://github.com/CorruptedByCPU/Fern-Night/">Fern-Night</a> - C
language operating system (related to <a
href="https://github.com/CorruptedByCPU/Cyjon/">Cyjon</a> project).</li>
<li><a href="https://www.fiwix.org/">Fiwix</a>, <a
href="https://github.com/mikaku/Fiwix">GitHub</a> - A UNIX-like kernel
for the i386 architecture.</li>
<li><a href="https://github.com/Ruddle/Fomos">Fomos</a> - Experimental
OS, built with Rust.</li>
<li><a href="https://www.freertos.org/">FreeRTOS</a>, <a
href="https://github.com/FreeRTOS/FreeRTOS">GitHub</a> - IoT operating
system for microcontrollers, by Amazon.</li>
<li><a href="https://genode.org/">Genode</a> - A FOSS operating system
framework consisting of a microkernel abstraction layer and a collection
of userspace components</li>
<li><a href="https://github.com/streaksu/Gloire">Gloire</a> - An OS
built with the <a href="https://www.nongnu.org/ironclad/">Ironclad</a>
kernel (a partially formally verified kernel with a small footprint for
general-purpose and embedded OSes, written in SPARK and Ada) and GNU
tools.</li>
<li><a href="https://greenteaos.github.io/">GreenteaOS</a>, <a
href="https://github.com/GreenteaOS/Greentea">Github</a> - A free OS
designed to be compatible with Windows executables</li>
<li><a href="https://gdsc-kiit.github.io/project-halide/">HalideOS</a> -
experimental operating system written entirely from scratch.</li>
<li><a href="https://harvey-os.org/">HarveyOS</a> - A distributed
operating system</li>
<li><a href="https://github.com/HelenOS/helenos">HelenOS</a> -
multikernel multiserver OS</li>
<li><a href="https://programatica.cs.pdx.edu//House/">House</a> -
Haskell Users Operating System and Environment.</li>
<li><a href="https://hubris.oxide.computer/">Hubris</a> - Hubris is an
operating system for microcontrollers developed by Oxide Computer
Company in Rust</li>
<li><a href="https://illumos.org/">Illumos</a> - illumos is a Unix
operating system which provides next-generation features for downstream
distributions (like OmniOS, OpenIndiana, and Tribblix)</li>
<li><a href="https://github.com/mntmn/interim">Interim</a> - Minimalist
OS with concepts from Lisp machines and Plan9</li>
<li><a href="https://github.com/pgrAm/JSD-OS">JSD-OS</a> - A small
operating system for 32 bit x86.</li>
<li><a href="http://jehanne.io/">Jehanne</a>, <a
href="https://github.com/JehanneOS/jehanne/">GitHub</a> - OS inspired by
Plan9, 9front and Harvey OS</li>
<li><a
href="https://github.com/FrancisBFTC/KiddieOS_Development">KiddieOS</a>
- UNIX-like 64-bit operating system written in Assembly, C++.</li>
<li><a href="https://github.com/KnightOS/KnightOS">KnightOS</a> - for
z80 calculators</li>
<li><a href="http://www.kolibrios.org">KolibriOS</a> - MenuetOS
fork</li>
<li><a href="https://github.com/kernkonzept/l4re-core">L4re</a> -
Operating system and hypervisor for security/safety-critical and
virtualization-enabled applications.</li>
<li><a href="https://lemonos.org/">LemonOS</a>, <a
href="https://github.com/fido2020/Lemon-OS">GitHub</a> - UNIX-like
64-bit operating system written in C++.</li>
<li><a href="https://github.com/maestro-os/maestro">Maestro</a>, <a
href="https://blog.lenot.re">Blog</a> - Operating system written in
Rust, aiming to be a lightweight version of Linux</li>
<li><a href="https://github.com/AjayMT/mako">Mako</a> - Hobby OS for x86
from scratch, written in C</li>
<li><a href="https://github.com/marceldobehere/MaslOS">MaslOS</a> - A 64
bit GUI multitasking Hobby OS written mostly from scratch in C++ and a
bit of C/ASM.</li>
<li><a href="https://github.com/MarcoCicognani/MeetixOS">MeetixOS</a> -
A hobby OS written in modern C++20 which aims to be Unix-like.</li>
<li><a href="https://github.com/mentos-team/MentOS">MentOS</a> - An
educational 32-bit linux-like Operating System.</li>
<li><a href="http://www.menuetos.net/">MenuetOS</a> - Hobby OS
supporting 32 and 64 bit, written in Assembly language</li>
<li><a href="https://mimiker.ii.uni.wroc.pl/">Mimiker</a>, <a
href="https://github.com/cahirwpz/mimiker">GitHub</a> - Simple unix-like
operating system for education and research purposes. MIPS
microkernel.</li>
<li><a
href="https://icfp20.sigplan.org/details/scheme-2020-papers/3/Running-Scheme-On-Bare-Metal-Experience-Report-">Mimosa</a>,
<a href="https://github.com/udem-dlteam/mimosa">GitHub</a> - Research
Operating System that runs Scheme on bare-metal</li>
<li><a href="https://github.com/minoca/os">Minoca OS</a> - General
purpose OS, written in C</li>
<li><a href="https://github.com/Meulengracht/MollenOS">MollenOS</a> -
MollenOS/Vali is a modern operating system that is built with focus on
abstraction and a modular design, allowing anyone to port it to any
architecture. It currently targets the x86-32 and x86-64 platform</li>
<li><a
href="https://sourceforge.net/projects/myxomycota/">MyXomycota</a> -
Monolithic kernel in C</li>
<li><a href="https://notin.tokyo/nesos/">NESOS</a> - An OS for the
Nintendo Entertainment System!</li>
<li><a href="https://github.com/nanovms/nanos">Nanos</a> - Unikernel
that is linux-compatible, written in C</li>
<li><a href="https://github.com/NodeOS/NodeOS">NodeOS</a> - OS using
NodeJS and Linux</li>
<li><a href="https://github.com/DeanoBurrito/northport">Northport</a> -
Monolithic kernel and support libraries for riscv64 and x86_64.</li>
<li><a href="http://path-os.duckdns.org/">PathOS</a> - Hobby OS based on
<a href="https://github.com/mig-hub/mikeOS">MikeOS</a>, written in
Assembly Language</li>
<li><a href="https://github.com/GandelXIV/pidi-os">Pidi OS</a> -
Independent and minimalistic OS</li>
<li><a href="https://ponyos.org/">PonyOS</a>, <a
href="https://github.com/klange/ponyos">GitHub</a> - ToaruOS-based, My
Little Pony themed OS</li>
<li><a href="https://github.com/mtribiere/PoulpyOS">PouplyOS</a> -
Simple OS for fun and learning, named after the ESISAR mascot
Poulpy</li>
<li><a
href="https://github.com/PureDarwin/PureDarwin/wiki">PureDarwin</a> -
PureDarwin is a community project to extend Darwin into a complete,
usable operating system</li>
<li><a href="https://qubes-os.org">Qubes OS</a> - Security-focused OS
built on the Xen hypervisor, designed to isolate different compartments
based on levels of trust.</li>
<li><a href="https://github.com/ravynsoft/ravynos">RavynOS</a> - A
BSD-based OS project that aims to provide an experience like and some
compatibility with macOS (formerly known as airyxOS)</li>
<li><a href="https://github.com/redox-os/redox">Redox</a> - written in
Rust</li>
<li><a href="https://github.com/krustowski/rou2exOS">rou2exOS</a>, <a
href="https://blog.vxn.dev/rou2exos-rusted-edition">Blog</a> - A second
iteration of the DOS-like hobby OS written in Rust and x86_64
assembly</li>
<li><a href="https://github.com/hermitcore/rusty-hermit">RustyHermit</a>
- A Rust-based, lightweight unikernel</li>
<li><a href="http://www.jbox.dk/sanos/">Sanos</a>, <a
href="https://github.com/ringgaard/sanos">GitHub</a> - Sanos is a
minimalistic 32-bit x86 operating system kernel for network server
appliances running on standard PC hardware.</li>
<li><a href="https://github.com/pimnik98/SayoriOS">SayoriOS</a> - Hobby
OS for x86 computers, currently under active development, written in
C</li>
<li><a href="https://genode.org/download/sculpt">Sculpt OS</a> - Genode
based OS</li>
<li><a href="https://github.com/SerenityOS/serenity">Serenity</a> -
Graphical Unix-like operating system for x86 computers</li>
<li><a href="https://github.com/xing1357/SimpleOS">SimpleOS</a> - Simple
Operating System coded in C and Assembly</li>
<li><a href="http://sebastianmihai.com/snowdrop/">Snowdrop OS</a> - a
homebrew operating system from scratch, in assembly language</li>
<li><a href="https://sortix.org/">Sortix</a> - Hobby OS in C and C++ by
Jonas Sortie Termansen</li>
<li><a href="http://syllable.metaproject.frl/">Syllable</a> - Successor
of AtheOS, Syllable is designed in the tradition of the Amiga and BeOS,
but built using many parts from the GNU project and Linux.</li>
<li><a href="https://github.com/SynestiaOS/SynestiaOS">SynestiaOS</a> -
32/64 bit operating system written in C for arm platform</li>
<li><a href="https://github.com/minexew/TempleOS">TempleOS</a> -
Religious OS :-)</li>
<li><a href="https://github.com/theseus-os/Theseus">Theseus</a> - A
modern experimental OS written from scratch in Rust to explore novel OS
structure and state management techniques.</li>
<li><a href="https://github.com/wichtounet/thor-os">Thor</a> - 64bit
operating system mostly written in C++</li>
<li><a href="https://github.com/klange/toaruos">ToaruOS</a> - Hobby
operating system from scratch</li>
<li><a href="http://www.tyndur.org/">Týndur</a> - Hobby operating system
build by the Lowlevel community. Written in C and Pascal</li>
<li><a href="https://github.com/aswinmohanme/ultronOS">Ultron OS</a> -
x86 Operating System written in C++, High School Project</li>
<li><a href="https://github.com/unikraft/unikraft">Unikraft</a> - A
modular unikernel for specialization, high efficiency, performance, and
security; Linux/POSIX-compatible; mostly in C</li>
<li><a href="https://github.com/vlang/vinix">Vinix</a> - Vinix is an
effort to write a modern, fast, and useful operating system in the V
programming language</li>
<li><a href="https://visopsys.org/">Visopsys</a> - Open Source Hobby OS
developed since 1997</li>
<li><a href="https://github.com/felixrieseberg/windows95">Windows 95 in
Electron</a> - Hobby Windows 95 implementation in Electron</li>
<li><a href="https://pdos.csail.mit.edu/6.828/2019/xv6.html">Xv6</a> - A
teaching operating system developed in the summer of 2006 for MITs
operating systems course</li>
<li><a href="https://github.com/Zeal-Operating-System/ZealOS">ZealOS</a>
- The Zeal Operating System is a modernized, professional fork of the
64-bit Temple Operating System, TempleOS.</li>
<li><a href="https://github.com/ackOS-project/ackOS">ackOS</a> - A
simple 64-bit operating system.</li>
<li><a href="https://github.com/Athryx/aurora_os">aurora_os</a> -
Written in Rust.</li>
<li><a href="https://dahliaos.io">dahliaOS</a>- dahliaOS is a modern,
secure, lightweight and responsive operating system, combining the best
of GNU/Linux and Fuchsia OS.</li>
<li><a href="https://github.com/byteduck/duckOS">duckOS</a> - A hobby
UNIX-like OS with a graphical window manager for x86 computers.</li>
<li><a href="https://github.com/icexin/eggos">eggos</a> - A Go unikernel
running on x86 bare metal</li>
<li><a href="https://github.com/Abb1x/emerald">emerald</a> - An
operating system kernel written for fun in C</li>
<li><a href="https://github.com/gopher-os/gopher-os">gopher-os</a> - A
proof of concept OS kernel written in Go</li>
<li><a href="https://github.com/hhuOS/hhuOS">hhuOS</a> - hhuOS is a
small operating system written in C++ and Assembler for the
x86-architecture. The main purpose of this project is to show how
different aspects of operating systems theory can be implemented and
linked together. The system is not aimed to be a full-featured operating
system for daily use.</li>
<li><a href="https://github.com/mszoek/hydrogen">hydrogen</a> - toy OS.
64-bit, preemptive multitasking kernel supporting EFI, PCIe, SATA,
framebuffer graphics mode, HFS+.</li>
<li><a href="https://github.com/lyre-os/lyre">lyre</a> - x86 kernel and
distribution powered by mlibc, GNU userland tools, and other common *nix
software.</li>
<li><a href="https://github.com/managarm/managarm">managarm</a> -
Pragmatic microkernel-based OS with fully asynchronous I/O</li>
<li><a href="https://github.com/menix-os/menix">menix</a> - A minimal
and expandable Unix-like operating system.</li>
<li><a href="https://github.com/vinc/moros">moros</a> - MOROS is a hobby
operating system written in Rust for the x86 architecture.</li>
<li><a href="https://github.com/MQuy/mos">mOS</a> - A hobby operating
system developed from scratch</li>
<li><a href="https://github.com/d99kris/nopeos">nopeos</a> - Simple OS
kernel with BASIC interpreter for x86</li>
<li><a href="https://github.com/o8vm/octox">octox</a> - Unix-like OS in
Rust inspired by xv6-riscv</li>
<li><a href="https://github.com/nimelehin/oneOS">oneOS</a> - x86-32 and
ARMv7 kernel with pre-emptive multi-threading, window manager and
editor</li>
<li><a
href="https://github.com/opuntiaOS-Project/opuntiaOS">opuntiaOS</a> - an
operating system targeting x86, ARMv7, Aarch64.</li>
<li><a
href="https://github.com/gamozolabs/orange_slice">orange_slice</a> - A
research kernel and hypervisor attempting to get fully deterministic
emulation with minimum performance cost. In Rust</li>
<li><a href="https://github.com/Garnek0/Ovation">Ovation</a> - A simple,
hobby, 64-bit operating system that focuses on simplicity, portability
and maintainability. Written in C.</li>
<li><a href="https://github.com/pranaOS/pranaOS">pranaOS</a> - A unix
operating system written from scratch in c / c++</li>
<li><a href="evrestrgb.github.io">quickOS</a> - An OS made by an
independant developer, still in development, like MS-DOS, but in qbasic.
Its MADE with qb64.</li>
<li><a href="https://github.com/Narasimha1997/r3">r3</a> - A hobby
x86_64 Operating System kernel written in Rust with minimal
functionalities</li>
<li><a href="https://github.com/ravynsoft/ravynos">ravynOS</a> -
BSD-based OS project that aims to provide an experience like and some
compatibility with macOS (formerly known as airyxOS)</li>
<li><a href="https://skiftos.org/">skiftOS</a>, <a
href="https://github.com/skiftOS/skift">GitHub</a> - A simple, handmade,
operating system with a graphical user interface.</li>
<li><a href="https://github.com/ozkl/soso">soso</a> - Simple unix-like
operating system written in Nasm assembly and mostly in C</li>
<li><a href="https://github.com/vvaltchev/tilck">tilck</a> - A Tiny
Linux-Compatible Kernel.</li>
<li><a href="https://www.tockos.org/">tock</a>, <a
href="https://github.com/tock/tock">GitHub</a> - A secure embedded
operating system for microcontrollers</li>
<li><a href="https://github.com/bistcuite/unox-os">unox-os</a> - Unox is
an educational unix-like operating system</li>
<li><a href="https://github.com/willdurand/willOS">willOS</a> - A
minimal 64 bits kernel (Operating System that cannot “operate” a lot of
things)</li>
</ul>
<h3 id="popular-operating-systems">Popular Operating Systems</h3>
<ul>
<li><a href="https://github.com/apple-oss-distributions/xnu">Darwin
XNU</a> - The XNU kernel source code for use in MacOS and iOS</li>
<li><a href="https://freebsd.org/">FreeBSD</a>, <a
href="https://github.com/freebsd/freebsd">Github</a> - Unix-like
operating system based on the BSD</li>
<li><a href="http://freedos.org/">FreeDOS</a> - DOS compatible OS</li>
<li><a href="https://github.com/haiku/haiku">Haiku</a> - BeOS inspired
OS</li>
<li><a href="https://github.com/torvalds/linux">Linux</a> - Linux
kernel</li>
<li><a href="https://www.minix3.org/">Minix</a>, <a
href="https://github.com/Stichting-MINIX-Research-Foundation/minix">Github</a>
- Unix-like operating system based on a microkernel architecture</li>
<li><a href="https://github.com/microsoft/MS-DOS">MS-DOS</a> - The
original sources of MS-DOS 1.25 and 2.0</li>
<li><a href="https://www.netbsd.org/">NetBSD</a>, <a
href="https://github.com/netbsd/src">Github</a> - Unix-like operating
system based on the BSD</li>
<li><a href="https://www.openbsd.org/">OpenBSD</a>, <a
href="https://github.com/openbsd/src">Github</a> - Unix-like operating
system based on the BSD</li>
<li><a href="http://9p.io/plan9/">Plan 9 from Bell Labs</a> - An OS from
the creators of Unix, extending the Unix philosophy of “everything is a
file” with a network-centric file system, namespaces and distributed
computing.</li>
<li><a href="https://reactos.org/">ReactOS</a>, <a
href="https://github.com/reactos/reactos">Github</a> - A free
Windows-compatible Operating System</li>
<li><a
href="https://archive.org/details/ATTUNIXSystemVRelease4Version2">SystemV</a>
- AT&amp;T UNIX System V Source Code</li>
</ul>
<h2 id="books-and-guides">Books and Guides</h2>
<h3 id="online-books">Online books</h3>
<ul>
<li><a
href="https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System">How
to Make a Computer Operating System</a> - in C++</li>
<li><a href="https://intermezzos.github.io/book/">Intermezzos</a> - A
follow along book to build IntermezzosOS in Rust</li>
<li><a href="http://www.kroah.com/lkn/">Linux Kernel in a Nutshell</a> -
Covers the entire range of kernel tasks, available as chapters or one
PDF</li>
<li><a href="http://littleosbook.github.io/">The little book about OS
development</a> by <em>Erik Helin</em> and <em>Adam Renberg</em></li>
<li><a href="http://greenteapress.com/thinkos/">Think OS</a> - A Brief
Introduction to Operating Systems by <em>Allen B. Downey</em></li>
<li><a
href="http://www.brokenthorn.com/Resources/OSDevIndex.html">Operating
System Development Series</a> - OS from the ground up in C</li>
<li><a href="http://pages.cs.wisc.edu/~remzi/OSTEP/">Operating Systems:
Three Easy Pieces</a> - Easy to read book covering virtualization,
concurrency and persistence</li>
<li><a
href="https://pdos.csail.mit.edu/6.828/2019/xv6/book-riscv-rev0.pdf">xv6:
a simple, Unix-like teaching operating system</a> - Book for Xv6</li>
<li><a href="https://tuhdo.github.io/os01/">Operating Systems: From 0 to
1</a> - Bootstrap yourself to write an OS from scratch by <em>Do Hoang
Tu</em></li>
<li><a href="https://github.com/dreamos82/Osdev-Notes">Osdev Notes</a> -
How to write an operating system from scratch by <em>Ivan G.</em> and
<em>Dean T.</em></li>
</ul>
<h3 id="tutorials">Tutorials</h3>
<ul>
<li><a
href="https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/index.html">Baking
Pi Operating Systems Development</a> by University of Cambridge</li>
<li><a href="https://github.com/jserv/mini-arm-os">Build a minimal
multi-tasking OS kernel for ARM from scratch</a> by Jim Huang</li>
<li><a href="http://www.osdever.net/bkerndev/Docs/title.htm">Brans
Kernel Development</a> by Brandon Friesen</li>
<li><a href="https://github.com/gregkh/kernel-tutorial">How to write a
Linux kernel patch and submit it</a> by Greg Kroah-Hartman</li>
<li><a href="https://github.com/gregkh/kernel-development">Presentation
on how the Linux kernel is developed</a> by Greg Kroah-Hartman</li>
<li><a href="https://github.com/cfenollosa/os-tutorial">os-tutorial -
How to create an OS from scratch</a> by Carlos Fenollosa</li>
<li><a href="http://jamesmolloy.co.uk/tutorial_html/">Roll your own toy
UNIX-clone OS</a> by James Molloy</li>
<li><a href="https://os.phil-opp.com/">Writing an OS in Rust</a> by
Philipp Oppermann</li>
<li><a href="http://osblog.stephenmarz.com/">Making a RISC-V Operating
System using Rust</a> by Stephen Marz</li>
<li><a
href="https://medium.com/@lduck11007/operating-systems-development-for-dummies-3d4d786e8ac">Operating
systems development for Dummies</a> by Leo Whitehead</li>
<li><a
href="https://arjunsreedharan.org/post/82710718100/kernels-101-lets-write-a-kernel">Kernels
101 Lets write a Kernel</a> by Arjun Sreedharan</li>
<li><a
href="https://arjunsreedharan.org/post/99370248137/kernels-201-lets-write-a-kernel-with-keyboard">Kernels
201 - Lets write a Kernel with keyboard and screen support</a> by Arjun
Sreedharan</li>
<li><a
href="https://www.joe-bergeron.com/posts/Writing%20a%20Tiny%20x86%20Bootloader/">Writing
a Tiny x86 Bootloader</a> by Joe Bergeron</li>
<li><a
href="http://3zanders.co.uk/2017/10/13/writing-a-bootloader/">Writing a
Bootloader</a> by Alex Parker</li>
<li><a href="https://github.com/s-matyukevich/raspberry-pi-os">Learning
operating system development using Linux kernel and Raspberry
Pi</a></li>
<li><a href="https://github.com/flydeoo/mya">mya</a> a fun project to
create OS from scratch by Erfan</li>
</ul>
<h3 id="websites">Websites</h3>
<ul>
<li><a href="https://genodians.org/">Genodians</a> - Stories around the
Genode Operating System</li>
<li><a href="http://wiki.osdev.org/Main_Page">os-dev</a> - Wiki with
everything you need to know</li>
<li><a href="http://www.lowlevel.eu/wiki/Hauptseite">Lowlevel</a> - A
wiki about creating an OS from scratch. In German</li>
<li><a
href="https://pubs.opengroup.org/onlinepubs/9699919799/">POSIX</a> -
Standards for maintaining compatibility between operating systems</li>
<li><a href="https://rust-osdev.com/">Rust OSDev</a> - Newsletter about
OS development in Rust</li>
<li><a href="https://www.osrtos.com/">OSRTOS</a> - List of open source
real-time operating systems</li>
<li><a href="https://www.multicians.org/">Multicians</a> - The
Multicians web site presents the story of the Multics operating system
for people interested in the systems history</li>
</ul>
<h3 id="papers">Papers</h3>
<ul>
<li><a
href="https://www.usenix.org/conference/osdi18/presentation/cutler">The
benefits and costs of writing a POSIX kernel in a high-level
language</a> by Cody Cutler, M. Frans Kaashoek, and Robert T. Morris,
MIT CSAIL</li>
<li><a
href="https://icfp20.sigplan.org/details/scheme-2020-papers/3/Running-Scheme-On-Bare-Metal-Experience-Report-">Running
Scheme On Bare Metal</a> by Samuel Yvon, Marc Feeley, Scheme 2020</li>
<li><a
href="https://dl.acm.org/doi/pdf/10.1145/3447786.3456248">Unikraft:
Fast, Specialized Unikernels the Easy Way</a> by Kuenzer et al., EuroSys
2021</li>
</ul>
<h3 id="video-tutorials">Video Tutorials</h3>
<ul>
<li><a
href="https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M">Write
your own Operating System</a></li>
<li><a
href="https://www.youtube.com/channel/UCSPIuWADJIMIf9Erf--XAsA">Nanobyte</a></li>
<li><a
href="https://www.youtube.com/watch?v=HNIg3TXfdX8&amp;list=PLrGN1Qi7t67V-9uXzj4VSQCffntfvn42v">Kernel
dev from scratch by Dragon Zap Education</a></li>
<li><a
href="https://youtube.com/playlist?list=PL5p37LtXzjqOoEl369i0nlTSaU1O3L-BN">OSDev
Lecture Series by AptRock327</a></li>
</ul>
<h2 id="linux-specific">Linux specific</h2>
<ul>
<li><p><a
href="https://training.linuxfoundation.org/training/a-beginners-guide-to-linux-kernel-development-lfd103">A
Beginners Guide to Linux Kernel Development (LFD103)</a></p></li>
<li><p><a href="https://sysprog21.github.io/lkmpg/">The Linux Kernel
Module Programming Guide</a></p></li>
<li><p><a href="https://www.kernel.org/doc/html/latest/">The Linux
Kernel documentation</a></p></li>
<li><p><a href="https://www.kernel.org/doc/html/latest/process/">Working
with the kernel development community</a></p></li>
<li><p><a
href="https://linux-kernel-labs.github.io/refs/heads/master">Linux
Kernel Teaching</a></p></li>
<li><p><a
href="https://0xax.gitbooks.io/linux-insides/content/">linux-insides</a></p></li>
<li><p><a href="https://lkw.readthedocs.io/en/latest/index.html">Linux
Kernel Workbook</a></p></li>
<li><p><a
href="https://linux-kernel-labs.github.io/refs/heads/master/">Linux
Kernel Teaching</a></p></li>
<li><p><a href="https://makelinux.github.io/kernel/map/">bootlins
interactive Linux kernel map</a></p></li>
<li><p><a
href="https://marcin.juszkiewicz.com.pl/download/tables/syscalls.html">Linux
kernel system call table for all archs</a> by Marcin
Juszkiewicz</p></li>
<li><p><a href="http://www.oldlinux.org/">OldLinux</a> - A Heavily
Commented Linux kernel source and more</p></li>
<li><p><a href="https://github.com/sam4k/linux-kernel-resources">sam4ks
Linux Kernel Resources</a></p></li>
<li><p><a
href="https://github.com/xairy/linux-kernel-exploitation">xairys Linux
Kernel Exploitation</a></p></li>
<li><p><a href="https://github.com/sysprog21/fibdrv">fibdrv Linux kernel
module that calculates Fibonacci numbers</a></p></li>
<li><p><a
href="https://github.com/bsauce/kernel-security-learning">kernel-security-learning</a></p></li>
<li><p><a href="https://syzkaller.appspot.com/upstream">syzbot</a>
bugs</p></li>
<li><p><a href="https://github.com/google/syzkaller">syzkaller</a>
kernel fuzzer</p></li>
<li><p><a href="https://www.youtube.com/watch?v=wTpQYM08_Yg">Doing more
with lore and b4</a>, <a
href="https://lpc.events/event/11/contributions/983/attachments/759/1421/Doing%20more%20with%20lore%20and%20b4.pdf">slides</a></p></li>
<li><p><a
href="https://media.ccc.de/v/clt23-193-der-linux-kernel-entwicklungs-workflow">Der
Linux Kernel Entwicklungs-Workflow</a> (2023, German) by Rouven
Czerwinski</p></li>
</ul>
<h3 id="tools">Tools</h3>
<ul>
<li><a href="https://github.com/mricon/b4">b4</a>, <a
href="https://b4.docs.kernel.org/en/latest/">docu</a>, a tool to help
with email-based patch workflows</li>
<li><a href="https://github.com/SUSE/clang-extract">clang-extract</a> a
tool to extract code content from source files using the clang and LLVM
infrastructure.</li>
<li><a href="https://github.com/sjp38/hackermail">hackermail</a> a mails
management tool for hackers who collaborate using mailing lists</li>
<li><a href="https://github.com/kworkflow/kworkflow">kworkflow</a> -
reduce the overhead with infrastructure setup for Linux development</li>
<li><a href="https://github.com/arighi/virtme-ng">virtme-ng</a> -
quickly build and run kernels inside a virtualized snapshot of your live
system</li>
</ul>
<h3 id="blogposts">Blogposts</h3>
<ul>
<li><p><a href="https://planet.kernel.org/">Planet Kernel</a></p></li>
<li><p><a
href="https://javiercarrascocruz.github.io/kernel-contributor-1">Become
a Linux kernel contributor - Part 1</a> by Javier Carrasco</p></li>
<li><p><a
href="https://javiercarrascocruz.github.io/kernel-contributor-2">Become
a Linux kernel contributor - Part 2</a> by Javier Carrasco</p></li>
<li><p><a
href="https://javiercarrascocruz.github.io/kernel-contributor-3">Become
a Linux kernel contributor - Part 3</a> by Javier Carrasco</p></li>
<li><p><a href="https://javiercarrascocruz.github.io/syzbot">Fixing bugs
in the Linux kernel with Syzbot, Qemu and GDB</a> by Javier
Carrasco</p></li>
<li><p><a
href="https://javiercarrascocruz.github.io/b4-for-kernel-contributors">b4
for Linux kernel contributors</a> by Javier Carrasco</p></li>
<li><p><a
href="https://www.marcusfolkesson.se/blog/use-b4-for-kernel-contributions/">Use
b4 for kernel contributions</a> by Marcus Folkesson</p></li>
<li><p><a
href="https://josefbacik.github.io/kernel/2021/10/18/lei-and-b4.html">Using
lei, b4, and mutt to do kernel development</a> by Josef Bacik</p></li>
<li><p><a href="https://people.kernel.org/kuba/netdev-in-2023">netdev in
2023</a> by Jakub Kicinski</p></li>
<li><p><a
href="https://mpdesouza.com/blog/five-commands-to-crash-the-kernel/">Five
commands to crash the kernel</a> by Marcos Paulo de Souza</p></li>
<li><p><a
href="https://jvns.ca/blog/2014/09/18/you-can-be-a-kernel-hacker/">You
can be a kernel hacker!</a> by Julia Evans</p></li>
<li><p><a
href="https://jvns.ca/blog/2014/01/04/4-paths-to-being-a-kernel-hacker/">4
paths to being a kernel hacker</a> by Julia Evans</p></li>
<li><p><a
href="https://jvns.ca/blog/2016/01/18/guessing-linux-kernel-registers/">Guessing
Linux kernel registers</a> by Julia Evans</p></li>
<li><p><a
href="https://ariel-miculas.github.io/How-I-got-robbed-of-my-first-kernel-contribution/">How
I got robbed of my first kernel contribution</a> by Ariel
Miculas</p></li>
<li><p><a
href="https://adam.younglogic.com/2022/10/apply-linux-kernel-patches-from-lkml/">Apply
Linux Kernel Patches from LKML</a> by Adam Young (before he got aware of
b4)</p></li>
<li><p><a
href="https://josefbacik.github.io/kernel/2021/10/19/patch-review.html">My
patch review workflow</a> by Josef Bacik</p></li>
<li><p><a
href="https://gist.github.com/Scott31393/2a8296fe0a04648838117b8ebb21ed40">Linux
Kernel Develop Workflow</a> by Tommaso Merciai</p></li>
<li><p><a href="https://vimeo.com/8200182">Apply a Linux kernel patch to
the stable tree</a> (2009) by Greg Kroah-Hartman</p></li>
<li><p><a
href="http://www.kroah.com/log/blog/2019/08/14/patch-workflow-with-mutt-2019/">Patch
Workflow With Mutt 2019</a> by Greg Kroah-Hartman</p></li>
<li><p><a
href="https://www.marcusfolkesson.se/blog/debug-kernel-with-kgdb/">Debug
kernel with KGDB</a> by Marcus Folkesson</p></li>
<li><p><a
href="https://cs4118.github.io/dev-guides/kernel-debugging.html">Linux
Kernel Debugging</a></p></li>
<li><p><a
href="https://nasamuffin.github.io/git/open-source/email/code-review/2019/05/22/how-i-learned-to-love-email-patches.html">How
I Learned to Love the Email Patch Developer Workflow</a> by Emily
Shaffer</p></li>
</ul>
<h3 id="debugging">Debugging</h3>
<ul>
<li><a
href="https://www.kernel.org/doc/html/latest/admin-guide/bug-hunting.html">Bug
hunting</a></li>
<li><a
href="https://www.kernel.org/doc/html/latest/admin-guide/bug-bisect.html">Bisecting
a bug</a></li>
<li><a
href="https://www.kernel.org/doc/html/latest/admin-guide/bug-bisect.html">Dynamic
Debug</a></li>
<li><a
href="http://www.gonehiking.org/ShuahLinuxBlogs/blog/2018/10/18/who-made-that-change-and-when-using-cregit-for-debugging/">Who
Made That Change and When: Using Cregit for Debugging</a> by Shuah
Khan</li>
<li><a href="https://lwn.net/Articles/592724/">Make stack dump output
useful again</a></li>
<li><a
href="https://sanjeev1sharma.wordpress.com/tag/debug-kernel-panics/">Debugging
Analysis of Kernel panics and Kernel oopses using System Map</a> by
Sanjeev Sharma</li>
<li><a
href="https://www.opensourceforu.com/2011/01/understanding-a-kernel-oops/">Understanding
a Kernel Oops!</a> by Surya Prabhakar</li>
</ul>
<h3 id="email">Email</h3>
<ul>
<li><p>Learn how to use git+email: <a
href="https://git-send-email.io/">git-send-email</a></p></li>
<li><p>Learn how to review patches over email: <a
href="https://git-am.io/">git-am</a></p></li>
<li><p>Use <a href="https://useplaintext.email">plaintext</a>
emails</p></li>
<li><p><a
href="https://drewdevault.com/2018/07/02/Email-driven-git.html">The
advantages of an email-driven git workflow</a> by Drew DeVault</p></li>
<li><p><a
href="https://drewdevault.com/2022/07/25/Code-review-with-aerc.html">Code
review at the speed of email</a> by Drew DeVault</p></li>
</ul>
<h2 id="conferences-presentations">Conferences / Presentations</h2>
<ul>
<li><a href="https://lpc.events/">Linux Plumbers</a>, <a
href="https://www.youtube.com/c/LinuxPlumbersConference">YT</a></li>
<li><a href="https://www.youtube.com/@LinuxfoundationOrg">The Linux
Foundation</a></li>
</ul>
<p><a href="https://github.com/jubalh/awesome-os">os.md Github</a></p>