Linux Boot Process

Kernel Loading
The first part of Linux to be loaded during the booting process is the kernel. At this point in the process, no operating system exists in your computers memory.

When the kernel is loaded into memory, and is decompressed, it can begin executing. At this point, any part of the kernel compiled into modules are not known to the executing part of the kernel; modules are yet to be loaded.
So, in order to function properly in these early execution stages, the kernel must have sufficient code incorporated to configure its virtual memory sub-system and also the root file system. Depending on the kernel version, the root filesystem might be ext2, or ext3.

Hardware probing to determine which device drivers are require
After the kernel has started, the hardware probe routine(s) are used to determine which device drivers must be loaded. Then, the kernel can mount the root file system, and after this it can start the program called init.

The init process

The init process [ /sbin/init ] is the first non-kernel process which is run by the Linux kernel; because of this, the init process always has the process ID value of 1 (PID=1) assigned to it.

When it starts, init reads the contents of the configuration file called /etc/inittab. It determines the runlevel at which it should start.

Runlevel

The runlevel determines the system behaviour, largely due to the list of programs that will automatically be run when the Linux operating system enters the particular runlevel.

The init program will select the runlevel which has been configured as the initdefault, but is no such value has been configured, then init will prompt the user to provide a value for runlevel.

Runlevels can be between 0 – 6 inclusive, and the purpose/task associated with each runlevel is as follows:

0      Halt the system

1      Enter single user mode, with no networking enabled

2      Multi-user mode, but with no Network File System (NFS) configured

3      Full multi-user mode, with text-mode login, for normal Linux operations

4      Unused

5      Full multi-user mode (as in runlevel 3), but with X Windows login (ie graphical user inferface mode)

6      Reboot the system