For many ordinary users and many Linux fans, Linux is an operating system. But Linux is actually the name of a kernel – and this kernel is the name of the thing that helps the operating system run. There are many different Linux distributions, the distances are different from each other, but everyone has one thing in common – the Linux kernel! Now many users will be wondering, “Is this the Linux kernel?” – This article is the answer to this question.
I have tried as much as possible in this article to talk about the Linux kernel in general terms, much less technical term use so you can easily understand everything. Anyway, I’ve discussed the kernel before, can read from this article. However, today’s article is specifically dedicated to Linux and some detailed terms are discussed.
What Is A Linux Kernel?
Every operating system uses the kernel, without the kernel, there is no operating system that will work. Mac OS, Windows OS, and Linux – they use everyone’s kernel, and everyone’s work style is different. While the kernel plays a role capable of running an operating system, not only the kernel but the operating system alone cannot run. The kernel has bundles of applications that work together to build a package and run the entire operating system.
If I want people to say “What is a kernel?” – The job of the kernel is to talk between hardware and software and manage as many system resources as possible. If the kernel module is already installed with the kernel or installed separately later, you can also tell the kernel module the device driver. The kernel talks to the hardware with the help of a hardware driver.
Suppose you ordered a volume in your music player, now your music player is not able to increase or decrease the volume of the live speaker. Your player software keeps a request to the kernel, working with the Linux kernel sound driver to reduce or increase the volume by communicating with the hardware. Moreover, the kernel has a great role to play in managing the system resources. Whether the system has enough memory space to run an application, but also to place an application in the right place of memory, optimize processor processing so that processes can be completed faster – tasks are pressed into the kernel’s neck.
The kernel has to complete many complex jobs to get your operating system running properly. Suppose an application is using a system resource, and another application needs to use that resource, in which case the kernel can handle two applications, and it is a very critical process that cannot be run properly if it is not handled properly.
Kernel And Operating System
As mentioned earlier, every operating system has a kernel, and the kernel works together with many applications, and the kernel alone is never capable of running a single operating system. You will definitely need different applications with the kernel. For example, you will need a “Shell” to display the command prompt of the terminal, run the application, navigate to a folder and much more.
Many applications are bundled with the kernel, especially on Linux-based operating systems or Linux distances. Such as – Web Browser, Desktop Environment, Office Suite, etc. – which you can use directly in the graphical interface. So you understand, the kernel alone can do nothing without the application bundle, but without the kernel, you cannot run the operating system.
Types Of Kernels
Of course, when creating a kernel, the kernel can be created using different structures. However, there are three main types of the kernel. These, monolithic kernel (Monolithic), micro-kernel (Microkernel), and hybrid kernel (Hybrid). Linux is the monolithic kernel where OS X and Windows OS use hybrid kernel types. Let’s get some basic ideas about these three kernels below so that you can understand them in more detail later.
Before discussing the kernel type or the kernel in some detail, you must first understand the modes. There are two important terms, “user mode” and “kernel mode” – when executing code in user mode you will never have direct hardware access or memory reference access. In user mode, you must follow the API instruction to get hardware or memory access. On the other hand, executing code in “kernel mode” gets direct hardware access to run all the trusted functions of an operating system.
- Microkernel: – You can call micro kernel a minimal kernel because this type of kernel only handles CPU, memory, and IPC (inter-process communication). The portability of the micro-kernel is high and it works in user mode. The micro-kernel footprint is much smaller, as it can take up a bit of memory and space. Microkernel, on the one hand, is more secure because there are very few types of processors that work in user mode, it is quite secure to not need high permissions to work in user mode.
- Monolithic Kernel: – As I said earlier, Linux is a monolithic type kernel, which is the complete opposite of microkernel. The monolithic kernel handles device drivers, file system management, and system server calls, not just CPU, memory, and IPC. This type of kernel is best for high-performance and multi-tasking – because if an application needs to fetch any information from memory or run processes, the application can access direct hardware so no need to sit in the queue and get it done in a quick time. Could, however, it works in kernel mode, so if there is a problem with a different process on the system, the whole system can become a problem.
- Hybrid Kernel: – The great thing about hybrid kernel is that it can work in user mode and kernel mode when needed, which means when needed. Specifically, the device driver and filesystem (input/output) run in user mode and work in IPC and separate server calls kernel mode. So you can say that this type of kernel is best for handling two type permissions simultaneously. However, to make the hardware run in this kernel, hardware makers have to do a little more with their hardware, and the latency of the hybrid kernel is a bit higher. As well as the device drivers that people need to handle later.
So from now on, whenever you have the question, “What is the Linux kernel or any kernel key”, you will have basic ideas in mind after reading this article. The Linux Monolithic kernel works on it, so its working type is much more complex, which, in detail, can lead to several series of articles. Since this article is especially understandable to the general public, the technical terms were suddenly lost. But if you can ask me any questions in the comments below, I will try to answer as best I can.