A kernel , or just core , or kernel (English 1 ), is a key part of some operating systems . It manages the resources of the computer and allows the various components – hardware and software – to communicate with each other.
As part of the operating system, the kernel security check failure provides mechanisms for hardware abstraction , including memory , processor (s), and information exchange between software and hardware devices . The kernel also allows various software abstractions and facilitates communication between processes .
The kernel of an operating system is itself software, but can not use all the abstraction mechanisms it provides to other software note 1 . Its central role also imposes high performance. This makes the kernel security check failure the most critical part of an operating system and makes its design and programming particularly delicate. Several techniques are implemented to simplify the programming of cores while guaranteeing good performance.
The first computer designers used to describe the different software layers of a system by an analogy: that of the core of the nut 2 .
In English, the word “kernel” refers to the kernel security check failure , the edible part of the nut, that is to say, its heart 3 , 4 . Conversely, the shell (the inedible part of the nut) is a very hard envelope that surrounds the edible part. In English this shell is called “shell”.
This analogy made it possible to understand that access to the “edible and incidentally hidden part of the nut implies the opening of the hull with a specific instrument”.
The duality “kernel / shell” illustrates well the relationship between the kernel and shell and constitutes a paradigm easily extensible to the whole of computing. It can also be understood as a succession of steps to spread between each level all the contributions of the one who precedes it to serve information more and more enriched but also, at each level, shared in different ways: “If the kernel is needed, only the way it can be broken is of great importance”.
In computing, the core of an operating system is the software that provides:
communication between software and hardware
the management of various software ( tasks ) of a machine (launch of programs, scheduling …);
hardware management (memory, processor, device, storage …).
The majority of operating systems are built around the notion of kernel security check failure The existence of a kernel, that is, a single program responsible for communication between hardware and software, is the result of complex compromises on performance, security, and processor architecture issues. .
The existence of a core presupposes 5 a virtual partition of RAM physical into two disjoint regions, one being reserved for the kernel (the core area ) and the other applications (the user space ). This fundamental division of the memory space into a kernel space and a user space contributes a lot to give the form and content of the current generalist systems ( GNU / Linux , Windows , Mac OS X , etc.), the kernel security check failure having great powers over the use of material resources, especially memory. It also structures the work of developers: code development inthe kernel space is a priori more delicate than in the user space because the memory is not protected. This implies that programming errors, possibly altering the instructions of the kkernel security check failure itself, are potentially much more difficult to detect than in the user space where such alterations are made impossible by the protection mechanism.
The kernel offers its functions (access to the resources it manages) through system calls . It transmits or interprets hardware information via interrupts . This is called inputs and outputs .
Various abstractions of the notion of application are provided by the kernel to the developers. The most common is the process (or task). The operating system kernel itself is not a task, but a set of functions that can be called by the various processes to perform operations requiring a certain level of privileges. The kernel usually takes over the process to make the service requested and gives it back control when the corresponding actions have been performed.
However, it may happen that the process can continue with some of its execution without waiting for the service to be completed. Synchronization mechanisms are then required between the kernel and the process to allow the kernel, once it has reached the point where it needs the service to be rendered, to wait until the kernel notifies it. effective execution of the service in question.
A processor is capable of running a single process, a multiprocessor system is able to handle as many processes as it has processors. To overcome this major drawback, multi-tasking kernels allow the execution of several processes on a processor, by sharing the processor time between the processes.
When multiple tasks must be run in parallel , a multitasking kernel relies on the notions of:
context switching ;
time share .
Inputs and outputs are subject to specific processing by the scheduler .
Restricted ring systems
There are many kernel security check failure with limited functionality such as micro-kernels, kernelless systems ( MS-DOS , CP / M ) or exo-kernels.
These systems are generally suitable for highly targeted applications but pose various problems (security with MS-DOS, performance with HURD or QNX ). Most of them are currently unsuitable for general use, in servers or personal computers .