Introduction to Linux
Linux is a Unix type operating system.
1)1991: Linux kernel was written by Linus Torvalds in six months to overcome the limitation of his 80386 PC.
2)1992: Linux released kernel under GNU general public license.
3)1994: Linux 1.0.0 released.
4)1995: GNU/Linux and free software developing in Internet servers.
5)2002: Many industry start adopting Linux.
6)2015: kernel version 4.0 released.
Linux Main features:
4)hierarchical file system
6) Memory Protection
7) shared libraries
Linux kernel version scheme
Linux version is released as x.y.z.
1) Development version
• x.y:- release number
• y:- Odd number
• z:- identifies the exact release version number
• Example:- 2.5.54,2.7.56
2) Stable version
• y:- even number
• Example:- 2.2.50,2.4.60
To protect data and functionality from fault or some unwanted access in Linux, virtual memory is divided into user space and kernel space.
User space:- all the user application runs on User space.
Kernel Space: – Kernel space is the privilege space where mainly operating system kernel and device driver execute.
Gnu C-library: this library expose APIs to user application which helps user application to interacts with kernel by using System calls.
for example in our user space application we generally use printf() which is defined in C-lib and internally calls write() system call.
System Call Interface: System call interface provides the implementation of various System calls.
Kernel: below system call interface we have kernel code which is architecture independent code which is same for all the processor.
Device driver: Device driver is the program which actually interacts controls the hardware’s.
Linux kernel basically composed of following subsystems.
1) Process management
2) Memory Management
3)Virtual file system
5)System Call interface
1) process management :- This system has the responsibility of maintaining the execution of each process. Main part of process management subsystem is Schedule which control the scheduling or exiting of every process.
2)Memory Management:– This system maintain the system memory and control the memory request from each process. Its manage virtual to physical translation of process. It lies in /linux/mm.
3)Virtual File system :- This subsystem provides the abstraction APIs like open() , Read() and write() etc irrespective of type of file system. User doesn’t need to worry about the file system types. VFS has the responsibility of passing the request of user to respective file system for which the request is raised by user application.
4) Network Stack:- It manage linux IP network or we can say everything related to network is managed by N/W subsystem.
5)System Call interface:- It provides an interface to the applications running in user space for getting the controlled access to hardware. This interface provides a mechanism by which applications can request operating system resources.