Linux Torvalds
developed the first version of Linux in 1991 as an operating system for computers powered by the intel microprocessor.
Started as a terminal emulator Linux evolved over a period.
What is an operating system ?
The operating system
is considered as a part of the system responsible for basic use and
administration. This includes the kernel and device drivers, boot loaders,
command shell or other user interface and basic file and system utilities. The
term system, in turn refers to the operating system and all the application running on top of it.
The user interface
is the outermost portion of the operating system, the kernel is the innermost.
The kernel sometimes referred as the supervisor, core or internals of the operating system. Typical components if the kernel are interrupt handlers to
service interrupt requests, a scheduler to share the processor time among
multiple processes, a memory management system to manage process address spaces
and system services such as networking and inter process communication.
On modern system
with the protected memory management units the kernel typically resides in an
elevated system state compared to normal
user applications. This includes a protected memory space and full access to the
hardware. The system state and memory space is collectively referred as kernel space. Conversely user applications
execute in a user space.
Applications running
on the system communicate with the kernel via system
calls. An application typically calls he functions in a library for
example, the C library that in turn depend in the system call interface to
instruct the kernel to carry out certain tasks on the applications behalf. When
an application executes a system call, we say that the kernel is executing on
behalf of an application, furthermore the application is said to be executing a
system call in a kernel space and the kernel is running in process-context.
This relationship that applications call into the kernel via the system call
interface, is the fundamental manner in which the applications get work done.

The kernel also
manages the systems hardware. When the hardware wants to communicate with the
system it will generate an interrupt, which will interrupt the processor and in
turn it interrupts the kernel. Each interrupts will have a interrupt number and
respective interrupt handler for it. We will discuss about interrupts in out
further posts.
Monolithic and Microkernel designs
Monolithic Kernels are designed as entirely
single process running in a single address space. They are implemented as
single static binaries.
Microkernels are not
implemented as a single process, instead the functionality of the kernel is broken down into separate processes, called as servers. Since they are running
as separate processes, the communication within
kernel happens via inter process communication such as message passing.
Linux is a
monolithic kernel, which means it is built as a single static binary, and runs
in a single address space entirely in kernel mode. However Linux borrows many
things from the microkernel, like capability to preempt itself, support for
kernel threads and the capability to dynamically load kernel binaries ; called
as kernel modules.
Comments
Post a Comment