You are on page 1of 12

UNIX AND LINUX

ARCHITECTURE
Unit 8
Introduction to Unix
• Unix is an Operating System that is truly the base of all Operating
Systems like Ubuntu, Solaris, POSIX, etc.
• It was developed in the 1970s by Ken Thompson, Dennis Ritchie,
and others in the AT&T Laboratories.
• It was originally meant for programmers developing software rather
than non-programmers.
• UNIX is a family of multitasking, multiuser computer operating
systems developed in the mid 1960s at Bell Labs. It was originally
developed for mini computers and has since been ported to various
hardware platforms.
• UNIX has a reputation for stability, security, and scalability, making it
a popular choice for enterprise-level computing.
• The basic design philosophy of UNIX is to provide simple, powerful
tools that can be combined to perform complex tasks.
• It features a command-line interface that allows users to interact with
the system through a series of commands, rather than through a
graphical user interface (GUI).
Key features of UNIX
• Multiuser support: UNIX allows multiple users to simultaneously
access the same system and share resources.
• Multitasking: UNIX is capable of running multiple processes at the
same time.
• Shell scripting: UNIX provides a powerful scripting language that
allows users to automate tasks.
• Security: UNIX has a robust security model that includes file
permissions, user accounts, and network security features.
• Portability: UNIX can run on a wide variety of hardware platforms,
from small embedded systems to large mainframe computers.
• Communication: UNIX supports communication methods using the
write command, mail command, etc.
• Process Tracking: UNIX maintains a record of the jobs that the user
creates. This function improves system performance by monitoring
CPU usage. It also allows you to keep track of how much disk space
each user uses, and the use that information to regulate disk space.
Unix Architecture
Unix Architecture
• Layer-1: Hardware: It consists of all hardware related
information.
• Layer-2: Kernel: This is the core of the Operating System. It is
a software that acts as the interface between the hardware and
the software. Most of the tasks like memory management, file
management, network management, process management,
etc., are done by the kernel.
• Layer-3: Shell commands: This is the interface between the
user and the kernel. Shell is the utility that processes your
requests. When you type in a command at the terminal, the
shell interprets the command and calls the program that you
want. There are various commands like cp, mv, cat, grep, id,
wc, nroff, a.out and more.
• Layer-4: Application Layer: It is the outermost layer that
executes the given external applications.
Linux Architecture
Kernel:
• Kernel is the main core component if Linux, it controls the activity of other hardware
components. It visualizes the common hardware resources and provide each
process with necessary virtual resources. It makes the process to wait in the ready
queue and execute in consequently to avoid any kind of conflict.

Different types of kernel:


Monolithic Kernel:
Monolithic kernel is a type of operating system kernel, where all the concurrent
processes are executed simultaneously in the kernel itself. All the processes share
same memory recourses.
Micro kernel:
In micro kernel user services and kernel services are executed in separate address
spaces. User services are kept in user address space and kernel services are kept in
kernel address space.
Exokernel:
Exo-kernel is designed to manage hardware resources at application level. High level
abstraction is used in this operating system to offer hardware resources access to
kernel.
Hybrid kernel:
It is the combination of both monolithic kernel and microkernel. It has speed and
design of monolithic kernel and modularity and stability of microkernel.
Linux Kernel subsystems
• Process scheduler:
Responsible for fairly distributing
the the processing time among
all the concurrently running
process.

• Memory management
unit: This kernel sub unit is
responsible for proper
distribution of memory resources
among the concurrently running
process.

• Virtual file system: This


subsystem provides interface to
access stored data across
different file system and different
physical media.
System Libraries
• System Library:
• System libraries are some predefined functions by using which any application
programs or system utilities can access kernel’s features. These libraries are the
foundation upon which any software can be built.

Some of the most common system libraries are:


• GNU C library: This is the C library that provides the most fundamental system for
the interface and execution of C programs. This provides may in-built functions for
the execution.
• libpthread (POSIX Threads): This library plays important role for multithreading in
Linux, it allows users for creating and managing multiple threads.
• libdl (Dynamic Linker): This library is responsible for the loading and linking file at
the runtime.
• libm (Math Library): This library provides user with all kind of mathematical
function and their execution.
• Some other system libraries are: librt (Realtime Library), libcrypt (Cryptographic
Library), libnss (Name Service Switch Library), libstdc++ (C++ Standard Library)
Shell
Shell:
• Shell can be determined as the interface to the kernel, which
hides the internal execution of functions of kernel from the
user. Users can just enter the commend and using the kernel’s
function that specific task is performed accordingly.

Different types of shell:


• Command Line shell:
Executes the command provided by user given in the form
command. A special program called terminal in executed and
the result is displayed in the terminal itself.

• Graphical User Interface:


Executes the process provided by user in graphical way and
output is displayed in the graphical window.
Hardware Layer:
• Hardware layer of Linux is the lowest level of operating system
track. It is plays a vital role in managing all the hardware
components.
• It includes device drivers, kernel functions, memory
management, CPU control, and I/O operations.
• This layer generalizes hard complexity, by providing an
interface for software by assuring proper functionality of all the
components.

System utility:
• System utilities are the commend line tools that preforms
various tasks provided by user to make system management
and administration better.
• These utilities enables user to perform different tasks, such as
file management, system monitoring, network configuration,
user management etc.
Unix file System

Refeer the link for more details:


https://www.geeksforgeeks.org/unix-file-system/

You might also like