So Linux is now 25 years old. Linus Torvalds, a 21-year-old computer science student at the University of Helsinki in Finland at the time, built the Linux kernel in 1991. On August 25, 1991, Torvalds wrote the following to comp.os.minix, a Usenet newsgroup.
I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386 (486) AT clones. This has been brewing since April, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).Linus Torvalds
Linus then released the kernel under the GPL licence, which meant that it was open source and available to the general public to examine the code, tweak it to suit their needs, and distribute it under the same GPL licence. The Linux kernel 1.0.0, containing 176,250 lines of code, was published on March 14, 1994. The Linux kernel version 3.10, released in June 2013, comprises 15,803,499 lines of code, whereas version 4.1, released in June 2015, has expanded to over 19.5 million lines of code provided by about 14,000 programmers.
So What Does Linux Kernel Do?
Every operating system, in some form or another, makes use of a kernel. A computer without a kernel is technically conceivable, but it is impractical. It is nearly difficult to have a functioning operating system without the kernel. In general, the kernel is a piece of software that acts as a barrier between the hardware and the main applications that run on a computer.
It is the first component to load when the operating system boots up. It is loaded into memory and remains there for the duration of the computer’s session. So let’s have a look at some of the Linux kernel’s features.
1. Communication and Resource Management
The Linux kernel enables communication between hardware and software via drivers included in the kernel or added via kernel modules. It is also in charge of managing the system’s resources, including as memory management, process and task management, and disc management. As a result, the kernel ensures that a programme has enough memory. It also ensures that the processor runs and completes duties efficiently.
2. The Linux Kernel Is Monolithic
The Linux kernel is monolithic, as opposed to a microkernel, which strives to have the smallest install and memory footprint feasible by handling only what it needs to, such as the CPU, memory, and IPC (Inter Process Communication). Device drivers, system server calls, and the file management system are also part of the Linux kernel. Because there is a direct route to any information required from memory or any running process, the Linux kernel is much better at accessing hardware and multitasking.
The kernel’s monolithic structure also means that it has a very big footprint, however one significant method the developers have avoided this issue is through the usage of kernel modules. Kernel modules can be loaded and unloaded at runtime, allowing features to be added and withdrawn at any moment.
The Linux kernel was not originally intended to be portable, although it has since been ported to a variety of systems. It is the operating system (kernel) of choice for nearly all of the top 500 fastest supercomputers. It is the brains behind Google Android, the most popular operating system ever. The Linux kernel also powers other mobile operating systems such as Firefox OS, HP webOS, and Samsung’s Tizen.
Live kernel patching was introduced with the release of the Linux kernel version 4.0 in April 2015. Updates to the kernel can be applied or even replaced without the need to restart your computer. This enables for system updates with no downtime, which is extremely useful in server systems.
The kernel and the BIOS should not be confused. The BIOS is a self-contained programme that is stored in a chip on a computer’s main circuit board. During the boot process, it performs activities such as initialising the hardware and loading the kernel into memory.
The kernel, unlike the BIOS, can be readily replaced or upgraded by replacing or upgrading the operating system or, in the case of Linux, by introducing a newer kernel or modifying an existing kernel. Windows and macOS, like Linux, have their own kernels that are all distinct. The Linux kernel is the main common component among the different Linux distributions available, whether broad or specialised.