Files
awesome-awesomeness/terminal/os
2024-04-23 15:17:38 +02:00

43 KiB

Awesome Operating System Stuff
 
This list contains awesome OS related stuff.
It contains open source operating sytems and hobby operating systems as one can study their code and learn from them.
 
Open Source Operating Systems
 
9front (http://9front.org) - A fork of Plan 9, designed for distributed, networked computing.
ackOS (https://github.com/ackOS-project/ackOS) - A simple 64-bit operating system.
AROS (https://aros.sourceforge.io/) - Research Operating System is a lightweight, efficient, and flexible desktop operating system, designed to help you make the most of your computer. It's an independent, portable and free project,
aiming at being compatible with AmigaOS at the API level
BoneOS (https://github.com/Bone-Project/BoneOS)- OS for everyone built by everyone
Bottlerocket OS (https://github.com/bottlerocket-os/bottlerocket)- Linux-based OS meant for hosting containers.
Charlotte (https://github.com/charlotte-os/charlotte-core) - CharlotteOS kernel in Rust
ChibiOS (http://www.chibios.org/) - a complete development environment for embedded applications including RTOS, an HAL, peripheral drivers, support files and tools
Clive (https://lsub.org/ls/clive.html) - A unikernel OS inspired by Plan9 and Nix developed at Universidad Rey Juan Carlos of Madrid
dahliaOS (https://dahliaos.io)- dahliaOS is a modern, secure, lightweight and responsive operating system, combining the best of GNU/Linux and Fuchsia OS.
eggos (https://github.com/icexin/eggos) - A Go unikernel running on x86 bare metal
Embox (https://embox.github.io/) - Configurable operating system kernel designed for resource constrained and embedded systems.
ExectOS (https://git.codingworkshop.eu.org/xt-sys/exectos), GitHub (https://github.com/xt-sys/exectos) - 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.
Fiwix (https://www.fiwix.org/), GitHub (https://github.com/mikaku/Fiwix) - A UNIX-like kernel for the i386 architecture.
FreeRTOS (https://www.freertos.org/), GitHub (https://github.com/FreeRTOS/FreeRTOS) - IoT operating system for microcontrollers, by Amazon.
Genode (https://genode.org/) - A FOSS operating system framework consisting of a microkernel abstraction layer and a collection of userspace components
gopher-os (https://github.com/gopher-os/gopher-os) - A proof of concept OS kernel written in Go
GreenteaOS (https://greenteaos.github.io/), Github (https://github.com/GreenteaOS/Greentea) - A free OS designed to be compatible with Windows executables
HarveyOS (https://harvey-os.org/) - A distributed operating system
HelenOS (https://github.com/HelenOS/helenos) - multikernel multiserver OS
RavynOS (https://github.com/ravynsoft/ravynos) - A BSD-based OS project that aims to provide an experience like and some compatibility with macOS (formerly known as airyxOS)
Hubris (https://hubris.oxide.computer/) - Hubris is an operating system for microcontrollers developed by Oxide Computer Company in Rust
Illumos (https://illumos.org/) - illumos is a Unix operating system which provides next-generation features for downstream distributions (like OmniOS, OpenIndiana, and Tribblix)
Interim (https://github.com/mntmn/interim) - Minimalist OS with concepts from Lisp machines and Plan9
Jehanne (http://jehanne.io/), GitHub (https://github.com/JehanneOS/jehanne/) - OS inspired by Plan9, 9front and Harvey OS
KnightOS (https://github.com/KnightOS/KnightOS) - for z80 calculators
L4re (https://github.com/kernkonzept/l4re-core) - Operating system and hypervisor for security/safety-critical and virtualization-enabled applications.
managarm (https://github.com/managarm/managarm) - Pragmatic microkernel-based OS with fully asynchronous I/O
MentOS (https://github.com/mentos-team/MentOS) - An educational 32-bit linux-like Operating System.
Mimiker (https://mimiker.ii.uni.wroc.pl/), GitHub (https://github.com/cahirwpz/mimiker) - Simple unix-like operating system for education and research purposes. MIPS microkernel.
Minoca OS (https://github.com/minoca/os) - General purpose OS, written in C
MollenOS (https://github.com/Meulengracht/MollenOS) - 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
Nanos (https://github.com/nanovms/nanos) - Unikernel that is linux-compatible, written in C
NESOS (https://notin.tokyo/nesos/) - An OS for the Nintendo Entertainment System!
NodeOS (https://github.com/NodeOS/NodeOS) - OS using NodeJS and Linux
octox (https://github.com/o8vm/octox) - Unix-like OS in Rust inspired by xv6-riscv
opuntiaOS (https://github.com/opuntiaOS-Project/opuntiaOS) - an operating system targeting x86, ARMv7, Aarch64.
orange_slice (https://github.com/gamozolabs/orange_slice) - A research kernel and hypervisor attempting to get fully deterministic emulation with minimum performance cost. In Rust
Pidi OS (https://github.com/GandelXIV/pidi-os) - Independent and minimalistic OS
Qubes OS (https://qubes-os.org) - Security-focused OS built on the Xen hypervisor, designed to isolate different compartments based on levels of trust.
ravynOS (https://github.com/ravynsoft/ravynos) - BSD-based OS project that aims to provide an experience like and some compatibility with macOS (formerly known as airyxOS)
Redox (https://github.com/redox-os/redox) - written in Rust
RustyHermit (https://github.com/hermitcore/rusty-hermit) - A Rust-based, lightweight unikernel
Sanos (http://www.jbox.dk/sanos/), GitHub (https://github.com/ringgaard/sanos) - Sanos is a minimalistic 32-bit x86 operating system kernel for network server appliances running on standard PC hardware.
skiftOS (https://skiftos.org/), GitHub (https://github.com/skiftOS/skift) - A simple, handmade, operating system with a graphical user interface.
Sculpt OS (https://genode.org/download/sculpt) - Genode based OS
soso (https://github.com/ozkl/soso) - Simple unix-like operating system written in Nasm assembly and mostly in C
SynestiaOS (https://github.com/SynestiaOS/SynestiaOS) - 32/64 bit operating system written in C for arm platform
Thor (https://github.com/wichtounet/thor-os) - 64bit operating system mostly written in C++
Theseus (https://github.com/theseus-os/Theseus) - A modern experimental OS written from scratch in Rust to explore novel OS structure and state management techniques.
tilck (https://github.com/vvaltchev/tilck) - A Tiny Linux-Compatible Kernel.
tock (https://www.tockos.org/), GitHub (https://github.com/tock/tock) - A secure embedded operating system for microcontrollers
Unikraft (https://github.com/unikraft/unikraft) - A modular unikernel for specialization, high efficiency, performance, and security; Linux/POSIX-compatible; mostly in C
Mimosa (https://icfp20.sigplan.org/details/scheme-2020-papers/3/Running-Scheme-On-Bare-Metal-Experience-Report-), GitHub (https://github.com/udem-dlteam/mimosa) - Research Operating System that runs Scheme on bare-metal
hhuOS (https://github.com/hhuOS/hhuOS) - 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.
 
Hobby
aurora_os (https://github.com/Athryx/aurora_os) - Written in Rust.
quickOS (evrestrgb.github.io) - An OS made by an independant developer, still in developement, like MS-DOS, but in qbasic. It's MADE with qb64.
AlmeidaOS (https://github.com/PauloMigAlmeida/AlmeidaOS) - x86-64 OS with its own bootloader, scheduler and limited libc all written from scratch
AquilaOS (https://aquilaos.com) - Operating System that is designed to be POSIX compliant and mostly ISA transparent
Animal (https://github.com/frednora/animal) - 32 bit multithreaded operating system (formerly Gramado)
Basekernel (https://github.com/dthain/basekernel) - A simple OS kernel for research, teaching, and fun
Brutal (https://github.com/brutal-org/brutal) - An operating system inspired by brutalist design that combines the ideals of UNIX from the 1970s with modern technology and engineering
Cyjon (https://github.com/CorruptedByCPU/Cyjon/) - pure x64 assembly language operating system (related to Fern-Night (https://github.com/CorruptedByCPU/Fern-Night/) project).
DragonOS (https://github.com/fslongjin/DragonOS) - An x86-64 OS build from scratch.
Dreamos64 (https://github.com/dreamos82/Dreamos64) - An x86-64 hobby os built from scratch
duckOS (https://github.com/byteduck/duckOS) - A hobby UNIX-like OS with a graphical window manager for x86 computers.
emerald (https://github.com/Abb1x/emerald) - An operating system kernel written for fun in C
Fern-Night (https://github.com/CorruptedByCPU/Fern-Night/) - C language operating system (related to Cyjon (https://github.com/CorruptedByCPU/Cyjon/) project).
Fomos (https://github.com/Ruddle/Fomos) - Experimental OS, built with Rust.
Gloire (https://github.com/streaksu/Gloire) - An OS built with the Ironclad (https://www.nongnu.org/ironclad/) kernel (a partially formally verified kernel with a small footprint for general-purpose and embedded OSes, written in SPARK
and Ada) and GNU tools.
HalideOS (https://gdsc-kiit.github.io/project-halide/) - experimental operating system written entirely from scratch.
House (https://programatica.cs.pdx.edu//House/) - Haskell User's Operating System and Environment.
hydrogen (https://github.com/mszoek/hydrogen) - toy OS. 64-bit, preemptive multitasking kernel supporting EFI, PCIe, SATA, framebuffer graphics mode, HFS+.
JSD-OS (https://github.com/pgrAm/JSD-OS) - A small operating system for 32 bit x86.
KolibriOS (http://www.kolibrios.org) - MenuetOS fork
LemonOS (https://lemonos.org/), GitHub (https://github.com/fido2020/Lemon-OS) - UNIX-like 64-bit operating system written in C++.
lyre (https://github.com/lyre-os/lyre) - x86 kernel and distribution powered by mlibc, GNU userland tools, and other common nix software.
Mako (https://github.com/AjayMT/mako) - Hobby OS for x86 from scratch, written in C
MaslOS (https://github.com/marceldobehere/MaslOS) - A 64 bit GUI multitasking Hobby OS written mostly from scratch in C++ and a bit of C/ASM.
MenuetOS (http://www.menuetos.net/) - Hobby OS supporting 32 and 64 bit, written in Assembly language
MeetixOS (https://github.com/MarcoCicognani/MeetixOS) - A hobby OS written in modern C++20 which aims to be Unix-like.
mOS (https://github.com/MQuy/mos) - A hobby operating system developed from scratch
moros (https://github.com/vinc/moros) - MOROS is a hobby operating system written in Rust for the x86 architecture.
MyXomycota (https://sourceforge.net/projects/myxomycota/) - Monolithic kernel in C
nopeos (https://github.com/d99kris/nopeos) - Simple OS kernel with BASIC interpreter for x86
Northport (https://github.com/DeanoBurrito/northport) - Monolithic kernel and support libraries for riscv64 and x86_64.
oneOS (https://github.com/nimelehin/oneOS) - x86-32 and ARMv7 kernel with pre-emptive multi-threading, window manager and editor
pranaOS (https://github.com/pranaOS/pranaOS) - A unix operating system written from scratch in c / c++
PathOS (http://path-os.duckdns.org/) - Hobby OS based on MikeOS (https://github.com/mig-hub/mikeOS), written in Assembly Language
PonyOS (https://ponyos.org/), GitHub (https://github.com/klange/ponyos) - ToaruOS-based, My Little Pony themed OS
PouplyOS (https://github.com/mtribiere/PoulpyOS) - Simple OS for fun and learning, named after the ESISAR mascot Poulpy
PureDarwin (https://github.com/PureDarwin/PureDarwin/wiki) - PureDarwin is a community project to extend Darwin into a complete, usable operating system
r3 (https://github.com/Narasimha1997/r3) - A hobby x86_64 Operating System kernel written in Rust -- with minimal functionalities
SayoriOS (https://github.com/pimnik98/SayoriOS) - Hobby OS for x86 computers, currently under active development, written in C
Serenity (https://github.com/SerenityOS/serenity) - Graphical Unix-like operating system for x86 computers
SimpleOS (https://github.com/xing1357/SimpleOS) - Simple Operating System coded in C and Assembly
Snowdrop OS (http://sebastianmihai.com/snowdrop/) - a homebrew operating system from scratch, in assembly language
Sortix (https://sortix.org/) - Hobby OS in C and C++ by Jonas 'Sortie' Termansen
Syllable (http://syllable.metaproject.frl/) - 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.
TempleOS (https://github.com/minexew/TempleOS) - Religious OS :-)
ToaruOS (https://github.com/klange/toaruos) - Hobby operating system from scratch
Týndur (http://www.tyndur.org/) - Hobby operating system build by the Lowlevel community. Written in C and Pascal
Ultron OS (https://github.com/aswinmohanme/ultronOS) - x86 Operating System written in C++, High School Project
unox-os (https://github.com/bistcuite/unox-os) - Unox is an educational unix-like operating system
Vinix (https://github.com/vlang/vinix) - Vinix is an effort to write a modern, fast, and useful operating system in the V programming language
Visopsys (https://visopsys.org/) - Open Source Hobby OS developed since 1997
willOS (https://github.com/willdurand/willOS) - A minimal 64 bits kernel (Operating System that cannot "operate" a lot of things)
Windows 95 in Electron (https://github.com/felixrieseberg/windows95) - Hobby Windows 95 implementation in Electron
Xv6 (https://pdos.csail.mit.edu/6.828/2019/xv6.html) - A teaching operating system developed in the summer of 2006 for MIT's operating systems course
BareMetal (http://www.returninfinity.com/), GitHub (https://github.com/ReturnInfinity/BareMetal) - 64 bit operating system written in Assembly for x86-64
ZealOS (https://github.com/Zeal-Operating-System/ZealOS) - The Zeal Operating System is a modernized, professional fork of the 64-bit Temple Operating System, TempleOS.
 
Popular Operating Systems
Darwin XNU (https://github.com/apple-oss-distributions/xnu) - The XNU kernel source code for use in MacOS and iOS
FreeBSD (https://freebsd.org/), Github (https://github.com/freebsd/freebsd) - Unix-like operating system based on the BSD
FreeDOS (http://freedos.org/) - DOS compatible OS
Haiku (https://github.com/haiku/haiku) - BeOS inspired OS
Linux (https://github.com/torvalds/linux) - Linux kernel
Minix (https://www.minix3.org/), Github (https://github.com/Stichting-MINIX-Research-Foundation/minix) - Unix-like operating system based on a microkernel architecture
MS-DOS (https://github.com/microsoft/MS-DOS) - The original sources of MS-DOS 1.25 and 2.0
NetBSD (https://www.netbsd.org/), Github (https://github.com/netbsd/src) - Unix-like operating system based on the BSD
OpenBSD (https://www.openbsd.org/), Github (https://github.com/openbsd/src) - Unix-like operating system based on the BSD
Plan 9 from Bell Labs (http://9p.io/plan9/) - 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.
ReactOS (https://reactos.org/), Github (https://github.com/reactos/reactos) - A free Windows-compatible Operating System
SystemV (https://archive.org/details/ATTUNIXSystemVRelease4Version2) - AT&T UNIX System V Source Code
 
Books and Guides
 
Online books
 
How to Make a Computer Operating System (https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System) - in C++
Intermezzos (https://intermezzos.github.io/book/) - A follow along book to build IntermezzosOS in Rust
Linux Kernel in a Nutshell (http://www.kroah.com/lkn/) - Covers the entire range of kernel tasks, available as chapters or one PDF
The little book about OS development (http://littleosbook.github.io/) by Erik Helin and Adam Renberg
Think OS (http://greenteapress.com/thinkos/) - A Brief Introduction to Operating Systems by Allen B. Downey
Operating System Development Series (http://www.brokenthorn.com/Resources/OSDevIndex.html) - OS from the ground up in C
Operating Systems: Three Easy Pieces (http://pages.cs.wisc.edu/~remzi/OSTEP/) - Easy to read book covering virtualization, concurrency and persistence
xv6: a simple, Unix-like teaching operating system (https://pdos.csail.mit.edu/6.828/2019/xv6/book-riscv-rev0.pdf) - Book for Xv6
Operating Systems: From 0 to 1 (https://tuhdo.github.io/os01/) - Bootstrap yourself to write an OS from scratch by Do Hoang Tu
Osdev Notes (https://github.com/dreamos82/Osdev-Notes) - How to write an operating system from scratch by Ivan G. and Dean T.
 
Tutorials
 
Baking Pi – Operating Systems Development (https://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/index.html) by University of Cambridge
Build a minimal multi-tasking OS kernel for ARM from scratch (https://github.com/jserv/mini-arm-os) by Jim Huang
Bran's Kernel Development (http://www.osdever.net/bkerndev/Docs/title.htm) by Brandon Friesen
How to write a Linux kernel patch and submit it (https://github.com/gregkh/kernel-tutorial) by Greg Kroah-Hartman
Presentation on how the Linux kernel is developed (https://github.com/gregkh/kernel-development) by Greg Kroah-Hartman
os-tutorial - How to create an OS from scratch (https://github.com/cfenollosa/os-tutorial) by Carlos Fenollosa
Roll your own toy UNIX-clone OS (http://jamesmolloy.co.uk/tutorial_html/) by James Molloy
Writing an OS in Rust (https://os.phil-opp.com/) by Philipp Oppermann
Making a RISC-V Operating System using Rust (http://osblog.stephenmarz.com/) by Stephen Marz
Operating systems development for Dummies (https://medium.com/@lduck11007/operating-systems-development-for-dummies-3d4d786e8ac) by Leo Whitehead
Kernels 101 – Let’s write a Kernel (https://arjunsreedharan.org/post/82710718100/kernels-101-lets-write-a-kernel) by Arjun Sreedharan
Kernels 201 - Let’s write a Kernel with keyboard and screen support (https://arjunsreedharan.org/post/99370248137/kernels-201-lets-write-a-kernel-with-keyboard) by Arjun Sreedharan
Writing a Tiny x86 Bootloader (https://www.joe-bergeron.com/posts/Writing%20a%20Tiny%20x86%20Bootloader/) by Joe Bergeron
Writing a Bootloader (http://3zanders.co.uk/2017/10/13/writing-a-bootloader/) by Alex Parker
Learning operating system development using Linux kernel and Raspberry Pi (https://github.com/s-matyukevich/raspberry-pi-os)
mya (https://github.com/flydeoo/mya) a fun project to create OS from scratch by Erfan
 
Website
Genodians (https://genodians.org/) - Stories around the Genode Operating System
os-dev (http://wiki.osdev.org/Main_Page) - Wiki with everything you need to know
Lowlevel (http://www.lowlevel.eu/wiki/Hauptseite) - A wiki about creating an OS from scratch. In German
POSIX (https://pubs.opengroup.org/onlinepubs/9699919799/) - Standards for maintaining compatibility between operating systems
Rust OSDev (https://rust-osdev.com/) - Newsletter about OS development in Rust
OSRTOS (https://www.osrtos.com/) - List of open source real-time operating systems
Multicians (https://www.multicians.org/) - The Multicians web site presents the story of the Multics operating system for people interested in the system's history
 
Papers
The benefits and costs of writing a POSIX kernel in a high-level language (https://www.usenix.org/conference/osdi18/presentation/cutler) by Cody Cutler, M. Frans Kaashoek, and Robert T. Morris, MIT CSAIL
Running Scheme On Bare Metal (https://icfp20.sigplan.org/details/scheme-2020-papers/3/Running-Scheme-On-Bare-Metal-Experience-Report-) by Samuel Yvon, Marc Feeley, Scheme 2020
Unikraft: Fast, Specialized Unikernels the Easy Way (https://dl.acm.org/doi/pdf/10.1145/3447786.3456248) by Kuenzer et al., EuroSys 2021
 
Video Tutorials
 
Write your own Operating System (https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M)
Nanobyte (https://www.youtube.com/channel/UCSPIuWADJIMIf9Erf--XAsA)
Kernel dev from scratch by Dragon Zap Education (https://www.youtube.com/watch?v=HNIg3TXfdX8&list=PLrGN1Qi7t67V-9uXzj4VSQCffntfvn42v)
OSDev Lecture Series by AptRock327 (https://youtube.com/playlist?list=PL5p37LtXzjqOoEl369i0nlTSaU1O3L-BN)
 
Linux Kernel specific Resources
 
The Linux Kernel Module Programming Guide (https://sysprog21.github.io/lkmpg/)
The Linux Kernel documentation (https://www.kernel.org/doc/html/latest/)
Working with the kernel development community (https://www.kernel.org/doc/html/latest/process/)
Linux Kernel Teaching (https://linux-kernel-labs.github.io/refs/heads/master)
linux-insides (https://0xax.gitbooks.io/linux-insides/content/)
Linux Kernel Workbook (https://lkw.readthedocs.io/en/latest/index.html)
Linux Kernel Teaching (https://linux-kernel-labs.github.io/refs/heads/master/)
 
bootlins interactive Linux kernel map (https://makelinux.github.io/kernel/map/)
OldLinux (http://www.oldlinux.org/) - A Heavily Commented Linux kernel source and more
 
sam4ks Linux Kernel Resources (https://github.com/sam4k/linux-kernel-resources)
xairys Linux Kernel Exploitation (https://github.com/xairy/linux-kernel-exploitation)
 
Linux kernel system call table for all archs (https://marcin.juszkiewicz.com.pl/download/tables/syscalls.html) by Marcin Juszkiewicz
 
You can be a kernel hacker! (https://jvns.ca/blog/2014/09/18/you-can-be-a-kernel-hacker/)
4 paths to being a kernel hacker (https://jvns.ca/blog/2014/01/04/4-paths-to-being-a-kernel-hacker/)
Guessing Linux kernel registers (https://jvns.ca/blog/2016/01/18/guessing-linux-kernel-registers/)
 
A Beginner’s Guide to Linux Kernel Development (LFD103) (https://training.linuxfoundation.org/training/a-beginners-guide-to-linux-kernel-development-lfd103)
 
fibdrv Linux kernel module that calculates Fibonacci numbers (https://github.com/sysprog21/fibdrv)
 
kernel-security-learning (https://github.com/bsauce/kernel-security-learning)