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 software that makes up the essential part of an operating system is called kernel. Through the kernel, the various programs on a computer (computer) can access hardware, for example. The kernel is also responsible for 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 RAM memory management.
Ultimately, what the kernel does is communicate the software with the hardware. For this, it is in charge of managing the 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 which device each program can use and for how long. This is known by the name of 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 directly to the hardware can be very complex. For this reason, the kernel often does this through what is known as a 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 clear and uniform interface to make use of 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: the monolithic nuclei, the hybrid nuclei, the micronucleus and exonĂșcleos. Each one is in charge of different processes according to their characteristics.
The microkernel or microkernel provides a minimum number of calls to the system for the implementation of basic services, such as basic planning, inter-process communication and address spaces.
The hybrid kernel 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 or exokernel is a system that was developed at 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 by operating system. The Windows kernel, the famous Microsoft OS, is hermetic: no user has the possibility to modify it. The Linux kernel, by contrast, is open source. This means that whoever wishes, can make changes, which results in the existence of multiple Linux distributions. The Linux kernel can also be updated independently from the rest of the OS.