Maanya Goenka
I am Maanya Goenka, a software engineer on the Linux Systems Group team at Microsoft. I work on the Azure Boost platform on the development and testing side of things. I graduated from Carleton College in Minnesota, USA, in June 2022 and have been with the team ever since, for almost a year now. I have had the opportunity to work on open-source projects and private Microsoft owned repositories during my time here and am excited to be able to present at this conference and provide a glimpse of some of the work I have been doing at the company so far.
Session
Using an image-based OS brings advantages and challenges. One challenge is the customization of a read-only image with additional host-level software and configuration, and how to manage this customization through the lifetime of a machine.
For deeper changes in /usr, users might build their own images instead of following the official image updates. For common scenarios, the vendor may choose to offer multiple image flavors. Simpler user customization can live outside of the read-only /usr, scattered as config files and binaries in /etc and /opt. Configuration management tools struggle with reliable (re)configuration because tracking filesystem state is hard.
The systemd project now supports a mechanism for extension images. There are two types; system extensions create an overlay for /usr or /opt and configuration extensions create an overlay for /etc. Through the overlay, users can thus change the read-only /usr without building custom OS images. Vendors can also offer their supported flavors as extensions instead of different OS images, even as composable stack where the user can choose optional parts. Users can manage their configuration by replacing the extension images atomically. Since the images bundle all files, this prevents old files lingering around or a system in a half-finished state. The read-only extension images help with setting up attestation and integrity enforcement for their contents. For distributions providing prebuilt initrds (e.g., the Fedora mkosi-initrd proposal), extensions allow initrd customization provided by the distribution or user.
The presentation will give an overview, share use cases and examples, and discuss future improvements for extension images.