On Tue, Apr 16, 2019 at 11:43 PM Paul Ruizendaal <
pnr@planet.nl> wrote:
Maybe xv6 has an explanation of the boot process that is of use to the original poster:
https://pdos.csail.mit.edu/6.828/2018/xv6.html
If you are looking for a generic answer, it goes something like this:
1. Power is applied to the system
2. Support circuits initialize (details vary widely, may include initializing memory controllers and loading microcode into the CPU)
3. CPU comes out of reset and jumps to a well known location (that's either initialized by 2 or is ROM of some flavor)
4. The initial boot code confirms this is a power-on reset (and not a wakeup from sleeping or other condition) and loads the next boot loader from some media like tape, disk or network
5. The loader then loads the next stage loader, if any. Repeat 5 as many times as needed to get to loading the kernel. Loader constructs metadata about the system and passes that to the kernel.
6. Once the kernel is loaded, execution is passed off to the kernel which looks at the loader metadata to know what's it needs to about the system that it can't easily get by other means.
6a. Memory is partitions, VM system booted, MMU comes on line, devices initialized, root is mounted and control passes to init which forks /etc/rc to bring the sytem up
For most people, this is a sufficient level of detail, unless they are trying to debug one of the steps then the actual details matter. :)
Warner