A hobby operating system written in Rust, exploring OS design concepts with a focus on rich IPC and structured data pipelines.
- UEFI boot with higher-half kernel
- Preemptive multitasking with full context switching
- Message-passing IPC with channels (bidirectional, 4KB messages) and mailboxes (event aggregation)
- Structured pipelines where tools exchange typed
Valueobjects (tables, styled text, etc.) rather than raw bytes - Scheme-based resource system with unified device paths (
keyboard:/pci/input/0,block:/pci/storage/0) - Integrated compositing GUI with virtio-gpu backend
- Read-only ext2 filesystem with async I/O
Requires Rust nightly and QEMU.
make build # Build kernel and userspace
make test # Run all tests
make run # Run in QEMUSee docs/BUILDING.md for detailed build instructions.
panda-kernel/ # Kernel source
panda-abi/ # Shared syscall definitions and types
userspace/libpanda/ # Userspace library
userspace/terminal/ # Terminal emulator
userspace/init/ # Init process
docs/ # Documentation
- BUILDING.md - Build commands and custom targets
- TESTING.md - Writing and running tests
- SYSCALLS.md - Syscall ABI and conventions
- IPC.md - Channels, mailboxes, and process communication
- PIPELINES.md - Structured Value-based pipelines
- DEVICE_PATHS.md - Unified device path scheme
This is an early-stage hobby project. It boots, runs programs, and has a working terminal with basic utilities (ls, cat, hello). Contributions and feedback are welcome.
This project is licensed under the Mozilla Public License 2.0.
