Barrelquiche
Description #
Semester-long project for Advanced Operating Systems: a team of five building a capability-based microkernel for a multi-core ARM board, starting from a minimal bootstrap and adding one subsystem at a time.
Everything above the kernel is a user-space process talking over message passing, so each milestone meant designing the protocol as much as the implementation:
- Memory management — a capability system for physical memory, with retyping and revocation, and a virtual memory manager built on top of it.
- Processes and dispatch — spawning, scheduling and inter-process communication, then bringing up the remaining cores and making IPC work across them.
- Services — a name server, a shell and the drivers behind it, with filesystem and network support layered on as ordinary user-space servers.
Built and tested in a Docker image so the whole team compiled against an identical toolchain rather than five slightly different local setups.
(Source code not provided due to university policy)