Brussels / 1 & 2 February 2025

schedule

The Shepherd: Minimalism in PID 1


Ever heard of the Shepherd? The Shepherd herds your daemons, it manages system services. On Guix System, it’s the first user-space program that gets started: PID 1. What’s special about the Shepherd is that it’s minimalistic and extensible: it’s written in Guile Scheme, the language also used by Guix, and its configuration file is a Scheme snippet that declares services. Want a special type of service? It may be that you can implement it right in your config file!

In this talk, I’ll focus on gems of the Shepherd’s internals. Not only is it written in a high-level functional language in a space where C is dominating, it also follows an actor-style architecture powered by Fibers. These choices bring a level of flexibility and elegance likely to bring happiness to anyone who dives in the code, as we will see. It also brings its own challenges, sometimes even sweat and tears; I’ll also reflect on them in this talk.

Speakers

Ludovic Courtès