The Linux kernel is not an operating system, but the kernel, or heart, of the operating system that enables the applications that make the real OS able to operate. Such applications include the various shells, the compiler, the windowing software, utilities and so on that are needed before you computer will even boot up. So the Linux kernel is not the same as the Linux OS which should be correctly name the GNU/Linux OS.
The Linux kernel is use by the Unix-like operating systems belonging to the Linux family. It has been released under the GNU General Public License, meaning it is free for anybody to use and distribute. It is a development by Linus Torvalds, a Finnish computer student who liked playing around with computers and what makes them tick, and who came up with a new operating system in 1991, designed around a framework or kernel that he called Linux.
Because it was issued as open source software, it grew rapidly into workable operating system as literally thousands of developers and coders offered contributions to its development. The free GNU Project was created in 1983 to develop a free operating system, and although many components had been developed, it failed because its kernel was never completed. Linux attracted many of the people who had contributed to this.
Monolithic Kernels and Modules
Version 0.11 was released in December 1991, and the Linux kernel and the operating system built around it grew rapidly from then on. So what is the Linux kernel and why is it so special and successful? It is what is known as a monolithic kernel that has been compiled to be modular. This means basically that modules can be loaded and unloaded while the system is running, but that the modules and the system services are run in the same space as the core functionality.
The heated debate of the time was between the respective benefits of the Unix monolithic kernel and the microkernel architecture used in Andrew Tanenbaum’s MINIX. In the latter, the basic services run outside the kernel, in the user space. The term ‘services’ includes device drivers, system memory, scheduler, memory management, the file system, and the virtual file system (VFS).
In Linux, modules can be dynamically loaded and unloaded in kernel space at runtime to reduce the amount of code running in the kernel to a minimum. One of the advantages of a monolithic kernel such as this is that if the root file system aborts, the service is easy to get started again because the kernel is still running.
SEE ALSO: Computer Operating Systems OS Families »
Portability of Linux
Through time, thanks largely to the contributions made by developers, the Linux kernel has become extremely stable, and efficient in CPU and memory usage. However, one distinct and unexpected result of these contributions has been its portability. Linux was not originally developed to be portable, but has now been ported to a number of hand-held devices, such as the iPhone and iPod, and a modified kernel is being used in the OS for Google Android and Nokia Maemo devices.
This may now be under threat from Microsoft’s projected adoption of UEFI (United Extensible Firmware Interface) which would replace the existing BIOS in machines built with it. There is a definite possibility that the UEFI specification would render open source operating systems running with the Linux kernel ‘unauthorized.’ That means that Linux would not boot with such computers, hand-helds or portable devices. However, there are few problems that the open source community has not been able to solve, and this will likely be resolved over time.
KVM and the Linux Kernel
The Linux kernel has recently been modified to enable it to act as a hypervisor: that is to work as an OS for other operating systems. Known as the Kernel-based Virtual Machine (KVM), this modification is a kernel module that when loaded, enables another OS to be used in user space, above the KVM. You can run another Linux kernel or another operating system such as Microsoft Windows in user space. The only qualification is you need hardware suited to KVM: your processor must support virtualization.
These are the fundamental facts about the Linux kernel. The main factor is that the kernel is not the operating system itself, but the heart of the Linux operating system. It enables the OS to operate as it does, and due to it being open source software, it is not only free but is subject to constant development and improvement.