THE LINUX SYSTEM
• Design principals
• Components of linux system
• Kernel modules
• Process management
• Process and threads
• Scheduling in linux
• Process scheduling
• Memory management
• File systems
• I/O in linux
• Interprocess communication
• Linux networking structure
LINUX: A Multitasking, Multiuser and
full set of UNIX compatible tools.
It is capable of operating under 4Mb of
It contains POSIX standards.
It act as a interface for both the
programmer and the user.
Users operate linux through CLI and
On desktop systems: KDE Plasma
Desktop,GNOME and Xfce.
Linux kernel and other components are
free and open source software.
COMPONENTS OF LINUX SYSTEM
Linux system consists of three main bodies:
• The kernel
• The system libraries
• The system utilities
Three components of the module:
• Module management
• Driver Registration
• Conflict Resolution
Two different operations:
•The creation of process
•Running of new program
Terms in linux:
•Fork-a new process is created by fork system call.
•Execve-a new program is run after a execve call
•Clone-creates a new process sharing parent data structure
having it’s own identity.
• Process identity:
a. Process ID(PID):
• Process environment:
• Process context:
a. Scheduling context:
c. File table:
d. File system context:
e. Single handler table:
f. Virtual memory context:
Processes and Threads
• Threads are light weight processes(LWPs)
• Processes are heavy weight processes(HWPs)
• Fundamental parts of process:
d. file I/O
e. signal table
• Threads: user level and kernel level
PROCESSES AND THREADS
1. REPRESENT THE EXECUTION
2. TWO SEPARATE
PROCESSES WILL HAVE
THEIR OWN INDEPENDENT
1. REPRESENT SEPARATE ,
WITHIN SINGLE PROCESS
2. TWO THREADS WITHIN A
PROCESS SHARE SAME
• The linux scheduler is a pre-emptive , priority-based
• Two separate priority ranges :
1. Real-time range( 0 to 99)
2. ice-value range (100 to 140)
• Once kernel code start running , then it is the only kernel
code till the following event occurs.
1. An interrupt
2. A page fault
3. A kernel code call to the scheduler function itself
Linux supports two process scheduling algorithms
• Time- sharing algorithm
• Real- time task algorithm
1.First-in first-out (FIFO)
Two components in Memory management:
• Physical memory management
• Virtual memory
Physical memory management: This deals with allocation
and deallocation of pages, group of pages and blocks of memory.
Virtual memory: it is the memory mapped into the address
space of running process.
PHYSICAL MEMORY MANAGEMENT
•Physical memory manager is a page allocator, which uses
“buddy heap” algorithm in order to keep track of available address
Ex. Splitting of memory in buddy heap.
• Virtual memory is responsible for maintaining the address
space visible to each process.
• There are two situations where the kernel creates a new
virtual address space
a) when a process runs a new program with the “exec”
b) When a new process is created by the “fork” system call.
• Linux file system retains UNIX’s features. here file can
be anything capable of handling I/O of stream of data.
• The virtual file system is designed using object oriented
principles. It consists of two components,
i. A set of definition which define what a file object is
allowed to look like.
ii. A layer of software to manipulate those objects.
3 main object defined by VTS are
i. Inode object
ii. File object structure
iii. File system object
I/O IN LINUX
Linux splits all the I/O devices into three groups
a. Block devices
b. Character devices
c. Network devices
• Block devices include all devices that allow random
access like HDD, floppy disk & CD-ROMS.
• Character devices include other devices with the main
exception of network devices like Magnetic tap devices.
• Network devices are dealt differently from both devices.
user cannot transfer directly data to network devices
but communicate indirectly. Ex. Tty discipline.
VARIOUS types of MECHANISM
• Message Queues
• Shared Memory
LINUX NETWORK STRUCTURE
Linux kernel is implemented using the
three layers of software internally-
• System call interface
• Protocol agnostic interface
• Network protocols
In Linux, Security issues can be
classified in two group-
• ACCESS CONTROL
“When is it best to use Linux and when
should some other operating system be
It all depends on the user