↓Skip to main content

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)