0% found this document useful (0 votes)
25 views

Kernel

The kernel is the central program of an operating system that has complete control over the system. It interacts with hardware devices and provides basic services like memory, process, file and I/O management. Kernels can be classified as monolithic, micro, hybrid or exokernel based on how services are implemented and distributed between kernel and user spaces. Modern systems commonly use hybrid kernels that balance performance and flexibility.

Uploaded by

Nik Garg
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Kernel

The kernel is the central program of an operating system that has complete control over the system. It interacts with hardware devices and provides basic services like memory, process, file and I/O management. Kernels can be classified as monolithic, micro, hybrid or exokernel based on how services are implemented and distributed between kernel and user spaces. Modern systems commonly use hybrid kernels that balance performance and flexibility.

Uploaded by

Nik Garg
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

The kernel is a program that constitutes the central core of a computer operating system.

It has
complete control over everything that occurs in the system.

A kernel can be contrasted with a shell (such as bash, csh or ksh in Unix-like operating systems),
which is the outermost part of an operating system and a program that interacts with user
commands. The kernel itself does not interact directly with the user, but rather interacts with the
shell and other programs as well as with the hardware devices on the system, including the
processor (also called the central processing unit or CPU), memory and disk drives.

The kernel is the first part of the operating system to load into memory during booting (i.e.,
system startup), and it remains there for the entire duration of the computer session because its
services are required continuously. Thus it is important for it to be as small as possible while still
providing all the essential services needed by the other parts of the operating system and by the
various application programs.

Because of its critical nature, the kernel code is usually loaded into a protected area of memory,
which prevents it from being overwritten by other, less frequently used parts of the operating
system or by application programs

The kernel performs its tasks, such as executing processes and handling interrupts, in kernel space,
whereas everything a user normally does, such as writing text in a text editor or running programs in a
GUI (graphical user interface), is done in user space.

When a computer crashes, it actually means the kernel has crashed. If only a single program has crashed
but the rest of the system remains in operation, then the kernel itself has not crashed

The kernel provides basic services for all other parts of the operating system, typically including memory
management, process management, file management and I/O (input/output) management (i.e.,
accessing the peripheral devices).

Kernels can be classified into four broad categories: monolithic kernels, microkernels, hybrid
kernels and exokernels. Each has its own advocates and detractors.

Monolithic kernels, which have traditionally been used by Unix-like operating systems, contain
all the operating system core functions and the device drivers (small programs that allow the
operating system to interact with hardware devices, such as disk drives, video cards and
printers). Modern monolithic kernels, such as those of Linux and FreeBSD, both of which fall
into the category of Unix-like operating systems, feature the ability to load modules at runtime,
thereby allowing easy extension of the kernel's capabilities as required, while helping to
minimize the amount of code running in kernel space.

A microkernel usually provides only minimal services, such as defining memory address spaces,
interprocess communication (IPC) and process management. All other functions, such as
hardware management, are implemented as processes running independently of the kernel.
Examples of microkernel operating systems are AIX, BeOS, Hurd, Mach, Mac OS X, MINIX
and QNX.
Hybrid kernels are similar to microkernels, except that they include additional code in kernel
space so that such code can run more swiftly than it would were it in user space. These kernels
represent a compromise that was implemented by some developers before it was demonstrated
that pure microkernels can provide high performance. Hybrid kernels should not be confused
with monolithic kernels that can load modules after booting (such as Linux).

Most modern operating systems use hybrid kernels, including Microsoft Windows NT, 2000 and
XP. DragonFly BSD, a recent fork (i.e., variant) of FreeBSD, is the first non-Mach based BSD
operating system to employ a hybrid kernel architecture.

Exokernels are a still experimental approach to operating system design. They differ from the
other types of kernels in that their functionality is limited to the protection and multiplexing of
the raw hardware, and they provide no hardware abstractions on top of which applications can be
constructed. This separation of hardware protection from hardware management enables
application developers to determine how to make the most efficient use of the available hardware
for each specific program.

Exokernels in themselves they are extremely small. However, they are accompanied by library
operating systems, which provide application developers with the conventional functionalities of
a complete operating system. A major advantage of exokernel-based systems is that they can
incorporate multiple library operating systems, each exporting a different API (application
programming interface), such as one for Linux and one for Microsoft Windows, thus making it
possible to simultaneously run both Linux and Windows applications.

You might also like