The Linux kernel is the most essential part of the OS, the one that works with the CPU and is the closest to the hardware level. Physically the Kernel is found in a file, and most of the time it is /boot/vmlinuz.version.no.
In 1991, Linus Torvalds, a student at the University of Helsinki, Finland, began working on what was called kernel 0.02. No one believed then that this would be the basis for an operating system that will dominate the world of datacenters and beyond.
The Kernel is the heart of Linux. This means there is no Kernel-free Linux. The kernel is the mediator between programs and hardware, the place where the drivers are stored. The Kernel provides support for filtering packets that pass through the network and manages processes that run in memory. The Kernel’s functions are very broad, and the purpose of this article is to treat the subject broadly.
The Kernel is distributed under the GNU General Public License, which means it can be distributed and modified without any restrictions. For this reason, many developers have modified and improved the source code of the Kernel. This is, of course, a very rapid development. The main site where you can download the latest version of Kernel is www.kernel.org, but it is recommended to use one of the official mirrors, because the main site is very loaded.
There are two types of versions that kernel developers provide, namely stable versions, those in which the second digit is alpha and beta, which contains future technologies but contains a number of bugs.
It is good to have the latest version of the Kernel all the time. However, there is a timeframe from one version to the next. During this time, there are a series of patches designed to solve various bugs. It is good to download these patches and insert them into the Kernel.
Sometimes it happens that a driver is only written for a particular kernel version. For this reason, kernel.org keeps on its FTP server all kernel versions. The Kernel of Linux is modular. This means some drivers can be compiled as modules. The advantage of this is that the driver will only be in memory when needed.
This means faster system operation and a faster boot. Therefore, it is good to use modules for the network card driver, sound card, partitions vfat, dos, NTFS, smbfs, iptables and many other drivers that offer the possibility to be compiled as a module. Due to the kerneld utility, introduced with version 1.3 of the Kernel, the modules are automatically loaded when requested by a program, meaning that no commands like insmod and modprobe are needed.
The kernel also creates two categories of virtual files. You must know that the files in /dev and /proc are just virtual files (they do not really exist). The Linux kernel is written in the C programming language version supported by the GNU GCC compiler (which supports a superset of the standard C) along with some relatively short sections of code written in the assembly architecture language of the target architecture (at the last count, Linux supports about 20 different processor families). Due to the C extensions supported by the GCC compiler, it has been (along with the associated toolkit) for a long time the only compiler able to properly compile a Linux kernel. These would be the main features of the Kernel. My recommendation is to use the last stable kernel version to keep system stability as high as possible.