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 .
Kernel is called software that composes the essential part of a OS . Through the kernel, the various programs of a computer (computer) can access the 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 the administration of the memory RAM .
What the kernel does, in short, is communicate the software with the hardware . For this, it is in charge of managing the physical devices (the processor, the peripherals, etc.) and the various computer programs, ordering how they access the 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 by the name of multiprogramming , a technique by which two or more processes can be housed in the main memory to be executed concurrently by the main processor.
He 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 the devices. This abstraction layer provides us with a consistent hardware platform for us to run the software on it.
Thanks to the use of the hardware abstraction layer it is possible to hide the aforementioned complexity and make it easier for the developer to Interface Clear and uniform to make use of 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 kernel itself. An example is called recessed systems .
It is possible to differentiate between four kernel classes: monolithic nuclei , the hybrid cores , the micronuclei and the exonucleus . Each takes care of 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 or microkernel provides a minimum number of calls to the system for the implementation of basic services, such as basic planning, communication between processes and address spaces.
The nucleus hybrid It can be understood as a micronucleus that has a certain amount of code in core 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 it is a system that was developed in the Massachusetts Institute of Technology to be used in research projects. Its main objective is to create a kind of software layer for other virtual systems.
Kernel types also vary by OS . He windows kernel , the famous SO of Microsoft , is airtight: no user has the possibility to modify it. He Linux kernel On the contrary, it is open source. This means that, whoever wishes, can make changes, which results in the existence of multiple distributions of Linux . The kernel of Linux It can also be updated independently of the rest of the OS.