Skip to Main Content
Talk Intermediate

Gateways to Guix

Proposal status is Withdrawn
Session Description

Motivation

The goal is to introduce the audience to using Guix, with a gentle on-ramp / learning curve:

  1. Needn't adopt Guix OS wholesale; can incrementally adopt from their current workflows
  2. Any example must solve a current and pressing need
  3. While demonstrating solutions, introduce the fundamental ideas which can be extended into advanced usage
  4. Leverage AI coding agents: easy to generate code, with minimal blast radius if things go wrong. Using Guix itself is a great way to achieve the latter (eg. for the coding agent sandbox)

We pick two examples which are great from this perspective: guix home, and guix shell.

Tentative outline

  1. Intro to Guix (2 mins)
  2. Guix OS, Guix package manager
  3. How to get started; nonguix
  4. How Guix is a great tool for reproducibility and software security
  5. Simple use cases for Guix (15 mins)
  6. Sandboxing a coding agent with Guix Shell
  7. Small interlude on the minimal/hackable OSS coding agent Pi
  8. Reproducible environments with Guix Home (for personal configs like the coding agent setup above, dotfiles, etc)
  9. (optional) Packaging software using Guix, a simple example illustrating both reproducibility & security
  10. The fundamental/powerful idea: Object Capabilities (4 mins)
  11. The confused deputy problem, and ambient authority as the root cause
  12. Fine-grained capabilities as the solution
  13. How this is what humans are naturally used to anyways
  14. How Guix realizes this idea (generalizing from the above exampes)
  15. Strictly control the the POSIX boundary that "wraps" an application
  16. Hermetic world with its own world state (permissions, applications, etc)
  17. A Guile eDSL for granting/manipulating capabilities
  18. Eelco Dolstra, Functional package management
  19. How Guix could help with OSS (2 mins)
  20. Packaging with Guix forces you to make clear (to yourself and your users) exactly what code you depend on
  21. How reproducible builds help protect from supply chain attacks
  22. Allows you to stay on "stable" versions for longer (solid foundation, not quicksand!)
  23. Capability enforcement at runtime -- depending on your needs and what the host allows...
  24. unprivileged (user-namespace) bundle, Guix System container script, Docker/OCI image
  25. PS: Packaging your favorite OSS for Guix could be a valuable contribution to both Guix and that package! (and also something that coding agents help with)
  26. Epilogue (2 mins)
  27. Capabilities are the only sensible way to scale system complexity.
  28. Regulate the surface without worrying about the internals
  29. Where is Guix becoming popular?
  30. Shiny new things in the Guix world, and what makes them exciting: Spritely Goblins, WASM
Key Takeaways
  1. Start using Guix
  2. Understand Object Capabilities and why they are broadly powerful

References

Session Categories

Engineering practice - productivity, debugging
Tutorial about using a FOSS project

Which track are you applying for?

Main track

Speakers

Siva Swaminathan
Siva Swaminathan Independent researcher

Siva is most interested in how software & algorithms intersect with the physical world, and the humane use computing. He's spent the last few years doing R&D work in AI and robotics. His previous life revolved around theoretical physics research, and hopes to get back to it some day.