Kernel.


The Linux kernel is the heart & brains of a Linux system, just like the kernel of any Operating System. Unlike other OSs you can configure & fine tune, even install a new version, the Linux kernel. It is also possible to have several kernels, each with different configurations or versions, on one Linux machine! The more you read about Linux the more you like it huh :o)

The default kernel is kept, on a Suse Linux system, in the /boot directory & is called vmlinuz. This "file" is started during the boot process the prompt Boot Linux: . When you have more than one kernel on your machine then at this prompt just push the [TAB] key & you will be displayed a list of the available kernels to choose from. To use multiple kernels you must edit the /etc/lilo.conf , or start yast & add the new kernels there. Lilo stands for Linux Loader, a kernel boot manager. Here's a typical example of a second kernel option in the lilo.conf.

image = /boot/vmlinuz.old
   root = /dev/hda3
   label = LKernel-2.2.16

As I said before you can freely configure your kernel to suit your needs & also make use of Linux kernel updates & new versions. The kernel is written by a group of people, including the father of Linux himself, Linus Torvalds & is freely available to use, help develop, or play around with :o) See the links page for more information.

The source code for the latest stable version (2.4.2) is about 25MB to download & around 100MB unpacked. BE WARNED!!! You should be careful about how you configure your new kernel, as always Linux assumes that you know what you're doing & will not ask you twice about any of your choices. My first kernel didn't work :o) lol! Configuring & compiling a new kernel is carried out in a few basic steps. First the configuration of the kernel, then the compiling of the kernel, then the compiling of the modules (drivers), then lastly the installation of the new kernel. A Suse Linux machine has a default directory for the compiling of the kernel & for the storage of it's source code under /usr/src/linux. It's a good idea to unpack the downloaded source code into this directory. Makes life a bit easier.

The actual chain of commands for this whole process look like this:

cd /usr/src/linux
make menuconfig
make dep
make clean
make bzImage
make modules
make modules_install
cp /boot/vmlinuz /boot/vmlinuz.old
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz

now either use yast or change the lilo.conf with an editor.

vi /etc/lilo.conf

and enter the new kernel so that the file looks like this....

# End LILO global Section
image = /boot/vmlinuz
   root = /dev/hda3
   label = linux

image = /boot/vmlinuz.old
   root = /dev/hda3
   label = old

save the changes & quit.

lilo
make bzdisk
(new kernel boot floppy)
make clean

reboot & keep your fingers crossed :o) If the new kernel doesn't boot up then reboot & push [TAB] at the Linux Boot: prompt & type old & the machine will boot with the old working kernel. Like I said my first kernel didn't work, but don't let that put you off :o)



back a page    back to main index    forward a page
copyright 2001 Rob Hawke.
rob@highasakite.net