This time, I will explain what a Kernel is and what its functions are in practice. In Portuguese, the term “kernel” would be something like “core”. Although little commented, the kernel has a very important role for the functioning of a computer or server.
The kernel is considered the main item of operating systems, since he is the link between the Data processing and the softwares. That's why many consider it the “brain” of the computer. The kernel gained notoriety with the development of Linux, however, it is also present in systems like Windows and macOS.
Image/Reproduction: The Anom & Company
The Kernel is responsible for making the connection between the hardware and the software from the computer. Therefore, the main objective is to manage the machine and make applications run through the existing resources on the computer.
Furthermore, the kernel is responsible for ensuring that RAM memory is used in the best possible way so that it does not pose any risk to the computer. She is also responsible for managing and optimizing the use of all available technical resources for performance.
In practice, when you turn on your computer, the kernel is immediately fired and starts to detect the hardware that the machine has installed and also what it needs to continue its function.
The kernel then, after the operating system is loaded, has a function also to manage other issues, such as: memories, files, among others, all this for ensure the organization and all features of the system.
Furthermore, the kernel can decide which of the software that is currently running should be allocated to the processor, or even processors.
In other words, the kernel is responsible for managing the resources of the operating system and thus allowing applications (“software”) to make use of them. The operation is not simple, it is a very complex process, depending on the type of Kernel your machine currently has. To get an idea, the kernel can be split into monolithic, hybrid or micronucleus. See below in topics the quick definition:
- Monolithic: Device drivers as well as core extensions run in the core space, having full access to the hardware.
- Micronucleus: Some of the processes run in the core itself, however, the rest can run in free space. Allows you to dynamically switch between systems and keep more than one running simultaneously.
- Hybrid: It is considered a microkernel and has a code in the space of the kernel so that the operations performed can be faster.
- Nanonucleus: It delegates virtually all services to device drivers, from the simplest such as a timer. This makes the memory requirement of the kernel even smaller than that of microkernels.
- Exonucleus: This type of kernel allocates the physical hardware resources, making it possible for a software, for example, to be run in an exokernel and connected to a system library that also uses exokernel to make simulations of the system.
Hope this helps!
Share the article and leave your comments! 🙂