Kernel (core)

Kernel or core is software that is a fundamental part of the operating system. It is the main responsible for providing the different programs secure access to the computer hardware. It is in charge of managing resources, through system call services. It is also responsible for deciding which program can use a hardware device and for how long, which is known as multiplexing.

Accessing hardware directly can be really complex, so kernels often implement a number of hardware abstractions. This allows complexity to be hidden, and provides a clean and uniform interface to the underlying hardware, making it easy for the programmer to use.

In some operating systems, there is no kernel as such (something common in embedded systems), because in certain architectures there are no different execution modes.

There are four main types of larges cores:

Monolithic cores: Facilitate really powerful and varied abstractions of the underlying hardware.

Monolithic cores are often easier to design correctly, and therefore can grow faster than a micronucleus-based system, but there are success stories on both sides. Micronuclei are often used in embedded robotics or medical computers, as most of the operating system components reside in their own private, protected memory space. This would not be possible with monolithic kernels, not even modern ones that allow loading kernel modules.

Microkernels: Provide a small set of simple hardware abstractions, and use applications called servers to offer greater functionality.

The microkernel approach consists of defining a very simple abstraction about the hardware, with a set of primitives or system calls that implement minimal operating system services, such as thread management, address space, and inter-process communication.

HybridKernel: (modified micro-cores) are very similar to pure micro cores, except that they include additional code in the kernel space to make it run faster.

Hybrid kernels are fundamentally micro-cores that have some “non-essential” code in kernel space so that it runs faster than it would if it were in user space. This was a commitment that many developers of the early micro-core architecture operating systems adopted before it was shown that micro-cores can perform very well. Most modern operating systems fall into this category, the most popular being Microsoft Windows. XNU, the Mac OS X kernel, is also a modified microkernel, due to the inclusion of code from the FreeBSD kernel in the Mach-based kernel.

The Exocores: Do not facilitate any abstraction, but allow the use of libraries that provide greater functionality thanks to direct or almost direct access to the hardware.

Exocores, also known as vertically structured operating systems, represent a radically new approach to operating system design.
The underlying idea is to allow the developer to make all decisions regarding hardware performance. Ex-cores are extremely small, since they expressly limit their functionality to protection and multiplexing of resources. They are called this way because all the functionality is no longer resident in memory and is now outside, in dynamic libraries.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *