![](https://programming.dev/pictrs/image/9737415d-1d2c-4716-9a8c-3f526d5bce38.png)
![](https://beehaw.org/pictrs/image/7a17afb3-71f4-4ef1-a5ce-d2975ba46c88.png)
28·
1 year agoOversimplified:
- You have your current OS, text editor, compiler.
- You write code of the new improved OS using your current OS, text editor.
- You compile the code (text file), compilation yields the new OS or the new kernel (binary file).
- You replace (overwrite) your current kernel by the new kernel (current OS by new OS). This is possible, because while the OS is running it is in RAM not touching the disk.
- You restart.
- BIOS loads the new OS from disk to RAM and executes it.
- tada.wav
More questions:
- How to update BIOS? Answer: The same.
- How the first OS, text editor and compiler were created? Answer: The same. Using more primitive OS, text editor and compiler each step into the past. At the beginning there were toggle switches, punch cards, punch ribbon strips or similar.
The same style of question would be: How to create a hammer if in order to create a hammer you need a hammer? How was the first hammer created? Answer: By more primitive hammer, or something that is no hammer, but almost works as a hammer.
For more info read about bootstrapping compilers. Or trusting the trust by Ken Thompson.
This is true in real world also, not only in computer world or programming world. Think of steam engine, it enabled sooo much progress in other fields. Also invention of lathe and precision measuring and engineering. Before that, invention of “simple machines” such as pulley, bolt/screw, windlass, lever. The same in math, physics, chemistry and so on.