This commit is contained in:
Miloslav Ciz 2024-09-25 13:26:28 +02:00
parent fb848d51f1
commit 822cc8a49a
15 changed files with 1833 additions and 1816 deletions

View file

@ -1,6 +1,6 @@
# Bootstrap/Boot
In general *bootstrapping* (from the idiom "pull yourself up by your bootstraps"), sometimes shortened to just *booting*, refers to a clever process of self-establishing a relatively complex system starting from something very small, without much external help. Nature itself provides a beautiful example: a large plant capable of complex behavior (such as reproduction) initially grows ("bootstraps") from just a very tiny seed. As another example imagine something like a "civilization bootstrapping kit" that contains only a few primitive tools along with instructions on how to use those tools to mine ore, turn it into metal out of which one makes more tools which will be used to obtain more material and so on up until having basically all modern technology and factories set up in relatively short time ([civboot](civboot.md) is a [project](project.md) like this). The term *bootstrapping* is however especially relevant in relation to [computer](computer.md) technology -- here it possesses two main meanings:
In general *bootstrapping* (from the idiom "pull yourself up by your bootstraps"), sometimes shortened to just *booting*, refers to a clever process of automatically self-establishing a relatively complex system starting from something very small, without much external help. Nature itself provides a beautiful example: a large plant capable of complex behavior (such as reproduction) initially grows ("bootstraps") from just a very tiny seed. As another example imagine something like a "civilization bootstrapping kit" that contains only a few primitive tools along with instructions on how to use those tools to mine ore, turn it into metal out of which one makes more tools which will be used to obtain more material and so on up until having basically all modern technology and factories set up in relatively short time ([civboot](civboot.md) is a [project](project.md) like this). The term *bootstrapping* is however especially relevant in relation to [computer](computer.md) technology -- here it possesses two main meanings:
- The process by which a computer starts and sets up the [operating system](operating_system.md) after power on, which often involves several stages of loading various modules, running several bootloaders etc. This is traditionally called **booting** (*rebooting* means restarting the computer).
- Utilizing the principle of bootstrapping for making greatly independent [software](software.md), i.e. software that doesn't [depend](depend.md) on other software as it can set itself up. This is usually what **bootstrapping** (the longer term) means. This is also greatly related to **[self hosting](self_hosting.md)**, another principle whose idea is to "implement technology using itself".