Linux is an operating system with many common users and many Linux fans. But actually Linux is the name of a kernel – and this kernel is the name of the thing that helps in running the operating system. There are many different Linux distributions, although the distinctions differ from each other, there is a common cause between the Linux kernel! Now a lot of ordinary users will ask the question, “What is this Linux kernel?” – To answer this question, this article is to answer this question.
I have tried this article as much as possible, to use the Linux kernel to speak in ordinary languages, so much less technical term has been used so you can easily be able to understand everything. However, today’s article is Dedicated specifically to Linux and some details terms are discussed.
What is the kernel?
If I want to speak in the public language, “what is the kernel?” The kernel job is to talk about hardware and software and manage as much as possible system resources. Kernel modules with the kernel are already installed or installed separately, you can call the kernel module as a driver. The kernel speaks to hardware with the help of a hardware driver.
Suppose you ordered to raise the volume in your music player, now your music player is not able to raise or reduce the speaker’s volume directly. Your player software keeps a request to the kernel, by working with the kernel sound driver, to reduce the volume or increase the volume by contacting the hardware. The kernel also has a great role to play in managing system resources.
Whether the system has enough memory left to run an application, and also an application to optimize the processor’s position in the exact location of memory, processor, so that processes can be completed quickly, etc. Responsibilities are placed on the kernel neck.
To run your operating system properly, the kernel needs to complete many complex jobs. Suppose an application is using any system resource, and another application requires the use of those resources, in which case the kernel functions to handle two applications, and it is not possible to run the system if it is not capable of properly handling a process that is critical.
Kernel and operating system
As mentioned earlier, each operating system has a kernel and the kernel works together in a number of applications, only the kernel alone cannot run an operating system completely. You’ll definitely need different applications with the kernel. For example, to display the terminal command prompt, you will need Shell to run the application, navigate to a folder and more to do more.
In particular, Linux-based operating systems or Linux distributions have bundled many applications with the kernel. For example, web browsers, desktop environments, office suites, etc., which you can use directly in the graphical interface. So understand that the kernel without the application bundle can do nothing alone, but without the kernel and you will not be able to run the operating system.
Of course, when creating a kernel, the kernel can be created using different structures. But basically, there are three types of kernels. This Monolithic kernel, Microkernel, and hybrid kernel. Linux is a monolithic kernel that uses OS X and Windows OS hybrid kernel type. Let’s get some basic idea about these three kernels below so that you can understand the details later.
Before you can discuss the details of the kernel type or kernel, you must keep in mind the Modes. There are two important terms here, “User Mode” and “Kernel Mode” will not get hardware access or memory reference access directly when executing code in user mode. User mode must follow the API Instruction to get hardware or memory access. On the other hand, when executing any code in “kernel mode” it can be run on all operating functions of an operating system that receives direct hardware access.
MicroKernel: The microkernel can be called a Minimum kernel because the kernel of this type only handles CPU, memory and IPC (inter-process communication). Microkernel portability is more and it works in user mode. Microkernel footprint is too small because it can work with accepting little memory and space. MicroKernel is more secure than the reason that there are fewer types of processors that work in user mode, it’s pretty safe because it does not require high permissions to work in user mode, it’s pretty secure.
Monolithic kernel: As I mentioned earlier, Linux is a Monolithic type kernel, completely opposite to the microkernel. The Monolithic kernel only handles the driver, file system management, and system server calls with CPU, memory and IPC handle. This type of kernel is best suited for high performance and multi-tasking because if an application needs to fetch data from memory or run processes, then the application can access direct hardware, as it does not need to stay in the queue and finish the job faster. However, it works in kernel mode so there may be a complete system problem if there is a problem with a different system.
Hybrid Kernel: The biggest thing of the hybrid kernel is that it can work in the user mode and kernel mode if needed, which means that it is necessary. Specifically, the driver and file system (input/output) runs in user mode and works in the IPC and separate server Calls kernel mode. So I can say that this type of kernel is best for handling two type permissions together. However, hardware-maker companies have to work a bit more with their hardware to run hardware in this kernel, and the hybrid kernel’s latency is a bit higher. With the device drivers need to handle by humans later.
So from now on, when the question arises in the mind, after reading this article “Linux kernel or kernel key ?” you have basic ideas in mind. Linux works on the Monolithic kernel, so its type of work is more complex, which can be written in a series of articles when detailed. Since this article is especially understandable by the common people, technical terms have disappeared for a while now. But you can do any type of questions in the comment below, I will try to answer as well.