Kernel (computing)

A kernel (english [ kɝ nəl ː ] translates core ), and the operating system kernel ( or shortened kernel ), is the central part of an operating system. In it, the process and data organization is determined on the build all other parts of the software of the operating system. He is the lowest software layer of the system and has direct access to the hardware. The design of an operating system kernel belongs to the field of computer science and software engineering.

Common requirements for a system kernels are parallel processing of different tasks (multitasking), compliance with time-critical boundaries, openness to diverse applications and extensions.

Non- kernel-related parts are called userland.

Components

A kernel is in layers ( or layer, see layer architecture ) built with the lower ( machine-oriented ) layers form the basis for the overlying. The upper layers, functions of the lower layers call, but not vice versa.

The following layers are present (from bottom to top):

  • Interface to the hardware (devices, memory, processors)
  • Memory management (possibly including virtual memory)
  • (Also called scheduler) process management
  • (Also known as Device Management) device management
  • File Systems

If all of these functions are integrated in the kernel itself, it is called a monolithic kernel. In a microkernel are held essential parts in separate processes. In addition, or between the two lying, there is the so-called hybrid kernel.

In any case, running outside the kernel, the application programs that use the functions provided by the kernel to communicate with the machine.

Tasks of the operating system kernel

An operating system kernel has the following tasks:

  • Interface to user programs ( Start, Stop, Ein-/Ausgabe, memory access )
  • Controlling access to the processor, devices, memory ( scheduler, device drivers, memory protection ). If possible, the sole access of the kernel on these resources.
  • Distribution of resources, such as processor time (s) (or processors) to the user programs
  • Structuring of resources, including mapping of file systems on block-oriented devices such as hard disk drives, network protocol stack on network cards.
  • Resolution of access conflicts, such as locking in multi-processor systems, queuing for scarce resources
  • Virtualization of resources ( processor: Processes, Hard drive: files, network card: such as sockets, memory: virtual memory, device: special files )
  • Monitoring of access rights to files and devices in multi- user systems

Processes

To realize the concept of an operating system of the process ( task) is often used. A process contains (at least) a register set of the processor and can be stopped and restarted using the scheduler. Each process has controlled access to a portion of memory as well as input and output channels that access to files or devices. With the operating system kernel communicate via system calls. A program usually runs in exactly one, in exceptional cases, in multiple processes. Also, some system services run in-process.

Start

When starting a computer the kernel is loaded and run in the memory after a possible hardware check and a partial device initialization. It initializes the device completely and starts the first process. In simple systems such as MS- DOS is a command line interpreter, for multi- process systems, a specific process (for Unix-like init), which loads the system services ( as processes ) and again, possibly graphic by entering a name and password, one or more command interpreter or a user starts as processes. He then takes over with the help of system calls to start / stop of additional processes ( user programs ) and the allocation of memory and Ein-/Ausgabekanälen to the individual processes.

Kernel types

Can run on a kernel multiple processes simultaneously, it is called multi-tasking kernels. In reality, however, by the CPU, only one process is treated simultaneously (except for multi-core systems ). The exchange controls in most cases the scheduler. If a multitasking kernel complemented by an access management to processes and devices, you get a multi-user (or multi-user ) system. Then, multiple users can work simultaneously. Each user has to log in ( authentication). The kernel divides each process to a user, a user can have multiple processes. Depending on the user process rights are restricted. The kernel is responsible for the separation of the processes, and thus the user.

Although today's desktop systems are typically used only by one user at a time, they are designed as a multiuser system. For one, then multiple users can use their own authority and the system preferences and on the other there is the possibility that another performs next to the user who uses the computer directly from another computer from other programs. In addition, the system services are started under anonymous users. Each system service and each user can be given its own limited access rights in which are necessary for the operations, so that the system reliability increases dramatically.

Trivia

When Commodore of the kernel for a long time " Kernal " said. Rumor has resulted in the of a typo in the manuals for the Commodore computers, which was then unceremoniously told by Commodore as a separate term for the kernel and later reinterpreted as Backronym: "Keyboard Entry Read, Network, And Link ".

120965
de