Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

An OS debugger

Idea

A small kernel introspection mechanism reached only through a debug capability (read and write a process’s memory and registers, stop and continue it), and a userspace debug server that speaks the GDB remote protocol to gdb on the host.

Why it is not a goal

The kernel is debugged from the host, through QEMU’s GDB stub, and on the FPGA through JTAG and the card’s trace. An in-kernel debugger is trusted code with authority over every process; the kernel carries no test-only channel in production (R23 (no test channels)), and a debug path is the most powerful such channel there is.

What it would need

  • The debug capability as a device-like object, created only at boot and never issued by a production manifest.
  • Introspection limited to processes in budgets under the holder’s own, so it grants nothing the holder could not already destroy.
  • The debug server in its own budget, reached over SSH forwarding like any other inbound path.

Attack cases: a production boot has no debug capability anywhere; a holder cannot inspect a process outside its own budgets.