On Tue, Apr 16, 2019 at 11:43 PM Paul Ruizendaal <pnr(a)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