πŸ“‘

The Nixionary

A glossary of words for the participants of NixCon 2022.

Some talks or conversations might be tricky to understand because of the unusual terminology. This is our little way to help.

NixOS

The name represents two things at the same time:

  1. The whole project and community.
  2. A Linux distribution built on top of nixpkgs.

Nixpkgs

A git repository containing a collection of 80000+ packages. See https://nixpkgs.org/

Derivation

Build recipe described with Nix. It declares all the inputs and steps that will be used for the build.

Realization

The act of building a derivation. The results are called build outputs and appear in the /nix/store

Substituter

Build cache containing all the build outputs. The default one is https://cache.nixos.org/.

Hydra

CI that is designed specifically for nixpkgs. The main instance lives at https://hydra.nixos.org/.

Attribute sets

Attribute sets represent a sorted collection of key/value pairs in the Nix language.

Nix modules

Nix modules are what JSON Schema is to JSON. It’s a library that adds types to a schema on config. NixOS and other projects use this to declare whole configurations.

GC root

A symlink to a /nix/store entry and stored under /nix/var/nix/gcroots/. These references are used during Garbage Collection to find what entries to keep.

Nix profile

Per user GC roots. Those are typically set when using nix-env or nixos-rebuild.

Channels

Represents two things:

  1. Releases of nixpkgs built and pushed by Hydra. See https://status.nixos.org/.
  2. GC roots that are managed by nix-channel.

Flakes

An experimental frontend to Nix adding dependency management and a central entry point to projects. Flakes are to Nix what NPM is to Node.

Import From Derivation (IFD)

The practice of reading the output of a built derivation during the Nix evaluation phase.

It allows moving computation from eval to build time but also breaks the eval/build split in the process. This leads to issues, especially when using Flakes.

Once NixCon was over, the list was submitted upstream to the nix.dev project for inclusion. See https://github.com/NixOS/nix.dev/pull/400

Numtide is a Nix and DevOps consultancy agency. We help our customers build better developer environments, train their teams to Nix, and deploy their apps to the cloud or bare-metal, … Our team is composed of independent people that grew with open source. We always upstream first and open source all the toolings that we write.