Kernel Startup Sequence
The kernel needs to first initialize its general internal sub-systems, such as its internal real-memory management, basic interrupt routines (clock interrupt, to perform preemptive process scheduling), and the like.
The kernel then needs to initialize all registered device drivers. some of them are built into the kernel, while others are loaded as modules. Since some drivers need to be ordered in particular order (e.g. PCI bus driver before drivers using its controllers), this order is hard-coded in the kernel.
After initializing all the drivers, the kernel launches various kernel helper processes (e.g. bdflush), and launches the init process (/sbin/init, with some fallback options, down to /bin/sh, if no other init program was found).