Skip to content

rootkiller6788/mini-os-driver-sys

Repository files navigation

Mini OS Driver Sys

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.

Modules

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

Design Philosophy

  • Zero external dependencies — pure C (C99/C11), only libc and libm
  • 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

Building

Each module is standalone. Navigate to a module directory and run:

cd mini-os-kernel
make all    # build everything
make test   # run tests

Requires GCC and GNU Make.

Project Structure

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

License

MIT

About

OS kernel and driver system built from scratch, learn core principles via practical C coding

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors