Skip to main content

The Shepherd: Minimalism in PID 1

H.1308 (Rolin) | Day 2 | 13:20 - 13:50 | Speakers: Ludovic Courtès

The Shepherd: Minimalism in PID 1
A picture of a devroom at FOSDEM 2024
Open in browser
Get involved in the conversation!Join the chat

Notes

Abstract

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.

Attachments

Speakers

Ludovic Courtès

Notice: The placeholder video image is licensed under CC BY-SA 4.0. The original image can be found hereChanges made to the image are: Cropped the image to a new ratio, part of the image was cut off.