reword overview with clear terminology

trying to capture alternative terms in one go here, mirroring everyday
use:

derivation - build plan
realise - execute build

there will be more of that sort.
This commit is contained in:
Valentin Gagarin 2022-04-21 14:39:35 +02:00
parent 0737094161
commit 0eae4bfad1

View File

@ -2,14 +2,22 @@
Nix consists of layers that operate fairly independently.
At the top is the *command line interface*.
At the top is the *command line interface*, translating from invocations of Nix executables to interactions with the underlying layers.
Below that is the Nix *expression language*, in which packages and configurations are written.
Below that is the *Nix language*, a [purely functional programming](https://en.m.wikipedia.org/wiki/Purely_functional_programming) language.
It is used to compose expressions which ultimately evaluate to *derivations* — self-contained *build plans* to derive new data from referenced input data.
The command line and expression language are what users interact with most.
::: {.note}
The Nix language itself does not have a notion of *packages* or *configurations*.
As far as we are concerned here, the result of a derivation is just data.
In practice this amounts to a set of files in a file system.
:::
Below that is the *store layer*, Nix' machinery to represent tracked files, dependencies, and fully elaborated build plans.
It is also used for executing those build plans.
The store layer may not be as visible, but this is the heart of Nix.
The command line and Nix language are what users interact with most.
Underlying everything is the *Nix store*, a mechanism to keep track of derivations, data, and references between them.
It can also *realise derivations*, that is, *execute build instructions* to produce new data.
It uses the file system as a persistence layer, and a database to keep track of references.
This chapter describes Nix starting at the bottom with the store layer, working its way up to the user-facing components described in the rest of the manual.
This chapter describes Nix starting with that bottom store layer, then working its way up until it reaches the more user-facing interfaces described in the rest of the manual."