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
The [[kernel]] in Linux handles core processes, such as [[memory management]], task [[scheduling]], [[I/O]], [[interprocess communication]], and overall system control.
===Kernel loading
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.
===
:''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==
|