Next: Портирование, Previous: Обновления безопасности, Up: Top [Contents][Index]
Bootstrapping in our context refers to how the distribution gets built “from nothing”. Remember that the build environment of a derivation contains nothing but its declared inputs (see Введение). So there’s an obvious chicken-and-egg problem: how does the first package get built? How does the first compiler get compiled?
It is tempting to think of this question as one that only die-hard hackers may care about. However, while the answer to that question is technical in nature, its implications are wide-ranging. How the distribution is bootstrapped defines the extent to which we, as individuals and as a collective of users and hackers, can trust the software we run. It is a central concern from the standpoint of security and from a user freedom viewpoint.
The GNU system is primarily made of C code, with libc at its core. The GNU
build system itself assumes the availability of a Bourne shell and
command-line tools provided by GNU Coreutils, Awk, Findutils, ‘sed’, and
‘grep’. Furthermore, build programs—programs that run ./configure
,
make
, etc.—are written in Guile Scheme (see Деривации).
Consequently, to be able to build anything at all, from scratch, Guix relies
on pre-built binaries of Guile, GCC, Binutils, libc, and the other packages
mentioned above—the bootstrap binaries.
These bootstrap binaries are “taken for granted”, though we can also re-create them if needed (see Подготовка к использованию двоичных файлов первоначальной загрузки).
• Уменьшение Binary Seed Bootstrap | Первичная загрузка, достойная GNU. | |
• Подготовка к использованию двоичных файлов первоначальной загрузки | Сборка самого главного. |
Next: Портирование, Previous: Обновления безопасности, Up: Top [Contents][Index]