A collection of from-scratch, zero-dependency C implementations of operating system kernels, device drivers, and system software concepts. Each module simulates or models real OS behavior — from kernel architecture (monolithic/microkernel) to driver frameworks, container runtimes, hypervisors, and security subsystems. Modules map to MIT, Stanford, CMU courses, bridging OS theory to runnable C code.
| Module | Topics | Key References |
|---|---|---|
| mini-kernel-arch | Monolithic, microkernel, hybrid, exokernel, unikernel architectures, kernel design patterns | MIT 6.828, CMU 15-410 |
| mini-os-kernel | Process scheduler, virtual memory, VFS, IPC, signal handling, syscall interface | MIT 6.828 xv6, Linux Kernel |
| mini-driver-dev | Character/block/network drivers, kernel modules, bus drivers (PCI/USB), DMA, interrupt handlers | LDD3, Linux Kernel Docs |
| mini-system-runtime | Init process, systemd/rc, syscall dispatch, dynamic linker (ld.so), ELF loader, libc startup | CS:APP, ABI Specs |
| mini-container-runtime | Linux namespaces, cgroups v2, OCI runtime spec, runc internals, overlayfs, pivot_root | Docker, runc, OCI Spec |
| mini-virtualization | KVM (VMX/SVM), hypervisor types, virtio, vhost, QEMU, memory virtualization (EPT/NPT) | Intel VT-x, AMD-V, MIT 6.828 |
| mini-system-security | LSM hooks, SELinux/AppArmor, seccomp-bpf, capabilities, namespaces isolation, MAC/RBAC | Linux Security Modules |
| mini-system-tools | strace/ptrace, perf, eBPF, ftrace, /proc and /sys filesystems, system call tracing | Brendan Gregg, Linux perf |
- Zero external dependencies — pure C (C99/C11), only
libcandlibm - Self-contained modules — each directory has its own
Makefile,include/,src/,examples/,demos/,tests/ - OS simulation in user-space — educational models of kernel internals, driver frameworks, and runtime systems
- Theory-to-code mapping — every module includes
docs/with course-alignment notes - Practical demos — mini kernel, driver simulator, container runtime, hypervisor, syscall tracer, and more
Each module is standalone. Navigate to a module directory and run:
cd mini-os-kernel
make all # build everything
make test # run testsRequires GCC and GNU Make.
mini-os-driver-sys/
├── mini-kernel-arch/ # Kernel Architecture & Design
├── mini-os-kernel/ # OS Kernel Core
├── mini-driver-dev/ # Device Driver Development
├── mini-system-runtime/ # System Runtime & Init
├── mini-container-runtime/ # Container Runtime
├── mini-virtualization/ # Virtualization & Hypervisors
├── mini-system-security/ # System Security
└── mini-system-tools/ # System Tools & Observability
MIT