Operating system is a software that defines the mode of communication between the user and the computer. Kernel comprises the basic component of the operating system.
The kernel of Linux operating system is different than most of the operating systems because the source code of the kernel operates under GPL (GENERAL PUBLIC LICENSE). This licensce is an open-source code which allows eveybody to configure the kernel; and moreover, the advanced level users are permitted to change it altogether.
At the outset of 1990s, a university student, Linus Torwalds, released the first version of Minix operating system 0.01, which is the precursor of the Linux operating system. On October 5th,1991 Linus Torwalds announced the release of the first official Linux version, namely 0.02. The first Linux version was simply capable of two main features: running the bash shell program and gcc C compiler. However, the phenomenal development of Linux in the course of time enabled it to perform most of the tasks that are run on both Windows and UNIX operating systems.
As it is the case in most of the operating systems, the Linux operating system kernel is basically written in C language and some parts of it has been written in assembly language. One of the great advantages of Linux operating system is that it provides POSIX compatibility which is a feature available in UNIX systems. POSIX compatibility plays a remarkable role in the development of the Linux operating system.
Linux kernel code is available and accessible easily at http://www.kernel.org or at mirror sites such as (ftp.metu.edu.tr/pub/mirrors/ftp.kernel.org) The Linux kernel continues to develop in mainly two distinct fields such as stable and test versions. The standard kernel version numbers are specified in 2.X.Y format. If the X number is an even number, this signifies that the kernel is stable. If the X number is an odd number, this signifies that the kerknel is a test version. The last stable Linux kernel is 2.4.22, and the last test version is 2.5.75. The 2.6.0 version of the stable linux kernel is still in the testing phase. Yet, the patches of the version are being announced on the market.
To update the Linux kernel and use it, the kernel source code should be copied to the system and archive packet should be opened (tar.gz archives are opened with tar xzf command, tar.bz2 archives are opened with bunzip |tar command). One should use the patch command if the patches announced afterwards are going to be added to the system. Thereafter, one should confıgure the kernel within the kernel source code directory. To do this, one should use make config command for text mode, make menuconfig command for menu mode or make xconfig command for graphic mode.
The Linux kernel supports nearly all the hardware that is available in todays technology. This support may be available as embedded within the kernel or it could be provided as modular. For the operating system to run smoothly, the hardware support should be provided as dependent to each other and in a continuous cycle. Since serious errors during configuration may render the system inoperatable during startup, the former kernel working healthily should be kept as a back-up. For better performance, you should avoid adding all the hardware to the kernel. Instead you should prefer optimized configurations either choosing from the embedded or modular solutions for the hardware that is being currently used or for the hardware that you may use in the future.
After finalizing and saving the kernel configuration, you should first check the dependencies with make dep command, then, you should create zipped kernel image with make zImage command (or you should use make bzImage command for better zipping). The image created should be copied to arch/i386/boot/ directory as "zImage" or "bzImage" file. This image, then, should be copied to the relevant location (generally this location is /boot directory). The relevant arrangements should be carried out according to the installer program that is used on the system (the configuration file for lilo installer is /etc/lilo.conf and the configuration file for grub installer is /boot/grub/menu.lst) to be able to start using the program.
To use the hardware that are supported as modular for the kernel, firstly, you should create the relevant modules with make modules command in the same directory where the kernel source code is located. Then, the modules created with make modules_install command should be copied to /lib/modules by creating directories which is named according to the kernel version. To be able to use the module relevant to the hardware, you should install it with insmod command. The list of the modules installed can be viewed with lsmod command and the modules that are not used anymore can be removed with rmmod command.
Linux kernel is an open source code; therefore, it welcomes and attracts everyone due to its secure, stable and evolving nature and its good performance. We recommend you to experience it in all your applications. Stay secure...
Selçuk Han AYDIN