Operating System
Courses
- 6.033: Computer System Engineering MIT
- 6.S081: Operating System Engineering
- CS 377: Operating Systems (youtube)
- Operating System (youtube)
- CS 422/522: Design and Implementation of Operating Systems
- CS 3210: Build an operating system in Rust programming language on Raspberry Pi 3
- ITSC 3181: Introduction to Computer Architecture
- LFD103: A Beginner's Guide to Linux Kernel Development
Books
- Operating System Concepts (10th) [ book | slides ]
- Lion's Commentary on UNIX with Source Code
- UNIX Internals: The New Frontiers
- Linux From Scratch (online)
- The little book about OS development
- OS01: Bootstrap yourself to write an OS from scratch (incomplete)
- Learning operating system development using Linux kernel and Raspberry Pi (incomplete)
- Writing a "bare metal" operating system for Raspberry Pi 4
- Writing a simple 16 bit VM in less than 125 lines of C
- os-tutorial: How to create an OS from scratch
Kernel
- The Linux Kernel Archives
- OldLinux: Early Linux Kernel Analysis and Comments
- Writing Your First Kernel Module
- Biscuit: An OS kernel in a high-level language
- HermiTux: A binary-compatible unikernel
- The big idea around unikernels
- State of the art for Unikernels
- Tiny Core Linux
Boot
- Bootloader basics
- Interactive x86 bootloader
- A set of minimal dependency bootstrap binaries
- Writing an x86 bootloader in Rust that can launch vmlinux
Rust
- Writing an OS in Rust
- Rust OS comparison
- Kerla: A new operating system kernel with Linux binary compatibility written in Rust
- Redox: Redox is a Unix-like Operating System written in Rust
- Operating System development tutorials in Rust on the Raspberry Pi
- CrabOS: My hobby operating system written in Rust (hobby)
- SnakeOS: Bootable x86 snake game in rust (hobby)
Hobby
Alternative
Random
- Awesome Operating System Stuff
- QEMU: A generic and open source machine emulator and virtualizer
- Hypervisor From Scratch
- SCAMP CPU - A homebrew 16-bit CPU with a homebrew Unix-like-ish operating system
- Virtual Hackintosh
- How To Write a Computer Emulator
- Linux x86 Program Start Up
- Floppinux: An Embedded Linux on a Single Floppy