OFFSET偏移
← All reading paths

DOSSIER 07 / 5 ARTICLES

The Nix language and build model

Understand how configuration works through attribute sets, function scope, module merging, and derivations.

Start with the first article

Follow the question further.

Nix is a functional expression language. Begin with the NixOS working model to identify inputs and outputs, then read code through basic types, scope, recursive attribute sets, and merging. Finally, trace how expressions produce build descriptions and store outputs.

  1. 01

    Understand why build outputs, source configuration, and writable data have three separate histories.

    Nix and NixOS: storage, rollback, and declarative thinking

    Understand the NixOS system model through the store, profiles, and imperative tools.

    Read article
  2. 02

    Read minimal expressions through space-separated lists, semicolons, and attribute access.

    Nix syntax: attribute sets, lists, and built-in functions

    Learn common data types, attribute access, and the basics of writing configuration expressions.

    Read article
  3. 03

    Identify whether each variable comes from let, a function parameter, or with.

    Nix functions and scope

    Identify where each variable comes from in let, inherit, with, and function parameters.

    Read article
  4. 04

    Assess // overrides separately from type-based module-option merging.

    Nix attribute sets: recursion and merging

    Distinguish shallow merging in the language from the merging rules for NixOS module options.

    Read article
  5. 05

    Separate evaluation, cache substitution, and local builds; not every store hash is content-addressed.

    Derivations: from expressions to build outputs

    Trace the relationship between evaluation, building or downloading substitutes, and store outputs.

    Read article
← More reading pathsAll articles ↗