Introduction to LINUX Operating System
Introduction to LINUX Operating System
Linux is one of popular version of UNIX operating System. It is open source as its source code is
freely available. It is free to use. Linux was designed considering UNIX compatibility. Its
functionality list is quite similar to that of UNIX.
Linux is an open-source Unix-like operating system-based family on the Linux kernel, and the
OS kernel was first published on 17 September 1991 by Linus Torvalds. Typically, Linux is
packaged as the Linux distribution, which contains the supporting libraries and system software
and kernel, several of which are offered by the GNU Project. Several Linux distributions use the
term "Linux" in the title, but the Free Software Foundation uses the "GNU/Linux" title to focus
on the necessity of GNU software, causing a few controversie
Kernel − Kernel is the core part of Linux. It is responsible for all major activities of this
operating system. It consists of various modules and it interacts directly with the
underlying hardware. Kernel provides the required abstraction to hide low level
hardware details to system or application programs.
System Library − System libraries are special functions or programs using which
application programs or system utilities accesses Kernel's features. These libraries
implement most of the functionalities of the operating system and do not requires kernel
module's code access rights.
Support code which is not required to run in kernel mode is in System Library. User programs
and other system programs works in User Mode which has no access to system hardware and
kernel code. User programs/ utilities use System libraries to access Kernel functions to get
system's low level tasks.
Basic Features
Following are some of the important features of Linux Operating System.
Portable − Portability means software can works on different types of hardware in same
way. Linux kernel and application programs supports their installation on any kind of
hardware platform.
Open Source − Linux source code is freely available and it is community based
development project. Multiple teams work in collaboration to enhance the capability of
Linux operating system and it is continuously evolving.
Multi-User − Linux is a multiuser system means multiple users can access system
resources like memory/ ram/ application programs at same time.
Multiprogramming − Linux is a multiprogramming system means multiple applications
can run at same time.
Hierarchical File System − Linux provides a standard file structure in which system
files/ user files are arranged.
Shell − Linux provides a special interpreter program which can be used to execute
commands of the operating system. It can be used to do various types of operations, call
application programs. etc.
Security − Linux provides user security using authentication features like password
protection/ controlled access to specific files/ encryption of data.
Architecture
The following illustration shows the architecture of a Linux system −
Hardware layer − Hardware consists of all peripheral devices (RAM/ HDD/ CPU etc).
Kernel − It is the core component of Operating System, interacts directly with hardware,
provides low level services to upper layer components.
Shell − An interface to kernel, hiding complexity of kernel's functions from users. The
shell takes commands from the user and executes kernel's functions.
Utilities − Utility programs that provide the user most of the functionalities of an
operating systems.
Kernel
When an operating system is loaded into memory, the kernel loads first and remains in memory
until the operating system is shut down again. The kernel is responsible for low-level tasks such
as disk management, task management and memory management.
The kernel provides and manages computer resources, allowing other programs to run and use
these resources. The kernel also sets up memory address space for applications, loads files with
application code into memory, sets up the execution stack for programs and branches out to
particular locations inside programs for execution.
1. Monolithic Kernels: All operating system services run along the main kernel thread in a
monolithic kernel, which also resides in the same memory area, thereby providing
powerful and rich hardware access.
2. Microkernels: Define a simple abstraction over hardware that use primitives or system
calls to implement minimum OS services such as multitasking, memory management and
interprocess communication.
3. Hybrid Kernels: Run a few services in the kernel space to reduce the performance
overhead of traditional microkernels where the kernel code is still run as a server in the
user space.
4. Nano Kernels: Simplify the memory requirement by delegating services, including the
basic ones like interrupt controllers or timers to device drivers.
5. Exo Kernels: Allocate physical hardware resources such as processor time and disk block
to other programs, which can link to library operating systems that use the kernel to
simulate operating system abstractions.