The English term kernel, which can be translated as “nucleus”, is not part of the dictionary of the Royal Spanish Academy (RAE). Its use in our language, however, is quite frequent, especially in the field of computing.
The kernel is called software that makes up the essential part of a OS. Through the kernel, the various programs on a computer (computer) can access hardware, for example. The kernel is also in charge of managing resources through system call services.
One of the functions of the kernel, in this framework, is to define what software a hardware device can use and for how long. That is why it is very important in the administration of the memory RAM.
What the kernel does, in short, is communicate the software with the hardware. For this, it is responsible for managing physical devices (the processor, peripherals, etc.) and the various computer programs, ordering how they access resources.
Since there are a large number of programs and each of them can access the hardware in a limited way, the kernel has the function of managing this interaction, deciding what device you can use each program and for how long. This is known as multiprogramming, a technique by which two or more processes can be housed in main memory to be executed concurrently by the main processor.
The access Direct to hardware can be very complex. For this reason, the kernel usually does this through what is known as hardware abstraction layer, a component of the operating system that serves as an interface between the program and devices. This layer of abstraction provides us with a consistent hardware platform for us to run the software on top of.
Thanks to the use of the hardware abstraction layer, it is possible to hide the aforementioned complexity and provide the developer with a Interface clear and uniform for you to use the programs and devices.
It is important to note that certain architectures do not have different execution modes, and this means that their operating systems do not have a proper kernel. An example are the so-called embedded systems.
It is possible to differentiate between four kinds of kernel: monolithic cores, the hybrid cores, the micronuclei and the exonuclei. Each one handles different processes according to its characteristics.
The monolithic kernel is a architecture in which the operating system is the only one that works in supervisor mode. One of its distinctive features is that it only defines a high-level virtual interface.
The micronucleus o microkernel provides a minimal number of system calls for the implementation of basic services, such as basic planning, inter-process communication, and address spaces.
The nucleus hybrid it can be understood as a microkernel that has a certain amount of code in kernel space to execute it at a higher speed than if it were in user space. This code is not considered essential.
The exonucleus o exokernel is a system that was developed in the Massachusetts Institute of Technology to be used in research projects. Its main objective is the creation of a kind of software layer for other virtual systems.
Kernel types also vary depending on the OS. The windows kernel, the famous OS of Microsoft, it is hermetic: no user has the possibility to modify it. The linux kernel, on the contrary, it is open source. This means that, whoever wishes, can establish changes, which gives rise to the existence of multiple distributions of Linux. Kernel Linux it can also be updated independently of the rest of the OS.