The GNU Hurd is a collection of user-space servers running on top of the GNU Mach microkernel. Instead of one privileged program doing everything, each capability of the OS — filesystems, networking, process bookkeeping, authentication — is its own small, replaceable program talking over message passing.
The Hurd ships roughly two dozen cooperating servers and translators; these are the ones you'll meet in a typical running system, grouped by what they do. Click a category to isolate it, click a module for detail.
Every column splits the same way: an Application in user mode on top, a kernel/user-mode boundary, and the OS's own services underneath. Monolithic (Linux-style) fuses everything into one privileged kernel block. The Hurd's microkernel keeps only IPC, scheduling and memory in kernel mode and runs every service as an ordinary user-space server. A hybrid kernel splits the difference, pulling the file server and Unix personality server back into kernel mode.
Every shell command is a new Mach task, forked and exec'd, that spends its short life sending IPC messages to a handful of Hurd servers before printing a reply. Type one below and watch the trace, one hop at a time.
Type a command into the terminal below and press Enter.
settrans attaches an ordinary, unprivileged program to any node in
the namespace. From that moment, every lookup underneath it —
ls, cat, open() — is answered by
that program instead of whatever it's sitting in. No kernel changes, no root
required.
no translator attached
Pick a translator and click "Attach" to see it here.