How RH Linux Boots :: Fundamental Kernel Initialization
The fundamental kernel initialization is boring in that it is largely
invariant: there is (almost) nothing you can do to change its actions.
This is possible because each CPU type requires its own kernel and in turn
the kernel restricts its attention to a small, well understood hardware
Incidentally, kernels are typically compressed and prepended with a
Kernel initialization highlights include:
initialize CPU components, eg, MMU
ensure multi-processor synch
print compiler time info banner
initialize memory, including interrupt table
initialize the scheduler
parse boot time options
test for known CPU bugs and enable workarounds
mount the root filesystem (ooooh, so many questions here ...)
fork off the init process (PID 1)
The kernel now reclaims certain RAM areas used only during boot-time
kernel initialization. It does this with some sneaky compiler tricks
and a funny restart, after which, it resumes life as the Idle Task/Scheduler.
In essence, kernel initialization does two things: start the core system
of shared resource managers (RAM, processor and mass storage); and start
a single process, /sbin/init.