Booting process of Linux: Difference between revisions

Content deleted Content added
m missing "/"
Kernel and Init phases: separate kernel from init
Line 26:
LILO, the older of the two boot loaders, is almost identical to GRUB in process, except that it does not contain a command line interface. Thus all changes must be made to its configuration and written to the [[MBR]], and then the system restarted. An error in configuration can therefore leave a disk unable to be booted without use of a separate boot device ([[floppy disk]] etc) containing a program capable of fixing this.<ref name="redhat_lilo" /> Additionally it does not understand file systems, instead locations of image files are stored within the MBR directly<ref name="redhat_lilo" /> and the BIOS is used to access them directly.
 
==Kernel and Init phasesphase==
The [[kernel]] in Linux handles core processes, such as [[memory management]], task [[scheduling]], [[I/O]], [[interprocess communication]], and overall system control. UponThis beingis in two stages - in the first stage the kernel (as a compressed image file) is loaded into memory and executingdecompressed, and fundamentals such as memory management are set up, and then as a second stage control is switched one final time to the main kernel startsstart byprocess. lookingOnce the kernel is fully operational, and as part of its startup, upon being loaded and executing, the kernel looks for an [[init process]] to run, which (separately) sets up a user space and the processes needed for a user environment and ultimate login.
 
===Kernel loading phasestage===
The kernel as loaded is typically an image file, compressed into either [[zImage]] or [[bzImage]] formats with [[zlib]]. It contains a header program which does a minimal amount of hardware setup, decompresses the image fully into high memory, taking note of any [[RAM disk]] if configured.<ref name="ibm_description">[http://www-128.ibm.com/developerworks/library/l-linuxboot/index.html IBM description of Linux boot process]</ref> It then executes kernel startup via <code>./arch/i386/boot/head</code> and the <code>startup_32 ()</code> (for x86 based processors) process.
 
===LernelKernel startup phasestage===
:''Source: [http://www-128.ibm.com/developerworks/library/l-linuxboot/index.html IBM description of Linux boot process]''
 
Line 64:
 
After it has spawned all of the processes specified, init goes dormant, and waits for one of three events to happen:- processes it started to end or die, a power failure signal, or a request via <code>/sbin/telinit</code> to further change the runlevel.<ref name="man_init" />
 
 
== Differences from other *nix boot processes==