KEMBAR78
Linux kernel architecture | PDF
Linux Kernel Architecture
Amir Hossein Payberah
payberah@yahoo.com
Contents



What is Kernel ?
Kernel Architecture Overview
 User

Space
 Kernel Space


Kernel Functional Overview
 File

System
 Process Management
 Device Driver
 Memory Management
 Networking
2
What is Kernel ?
Modules or sub-systems that
provide the operating system
functions.
 The Core of OS


3
Types of kernels
Micro kernel (Modular kernel)
 Monolithic kernel


4
Micro kernel


It includes code only necessary to
allow the system to provide major
functionality.
 IPC
 Some

memory management
 Low level process management &
scheduling
 Low level input / output


Such as Amoeba, Mach and …
5
Monolithic kernel
It includes all the necessary
functions.
 Such as Linux and …


6
Micro vs. Monolithic


Micro
 Flexible
 Modular
 Easy



to implement

Monolithic
 Performance

7
Contents



What is Kernel ?
Kernel Architecture Overview
 User

Space
 Kernel Space


Kernel Functional Overview
 File

System
 Process Management
 Device Driver
 Memory Management
 Networking
8
Kernel Architecture
Overview
User Space
 Kernel Space


User Space
System Call
Kernel Space
Hardware

9
User Space




The User Space is the space in memory
where user processes run.
This Space is protected.
 The

system prevents one process from
interfering with another process.
 Only Kernel processes can access a user
process

10
Kernel Space




The kernel Space is the space in memory
where kernel processes run.
The user has access to it only through the
system call.

11
System Call
User Space and Kernel Space are
in different spaces.
 When a System Call is executed,
the arguments to the call are
passed from
User Space to Kernel Space.
 A user process becomes a kernel
process when it executes a system
call.


12
User Space and Kernel Space
Relationship
User
Process

User
Space
Kernel Space

Data Flow

Library Routine
Syscall Dispatch

Kernel
Service
13
Contents



What is Kernel ?
Kernel Architecture Overview
 User

Space
 Kernel Space


Kernel Functional Overview
 File

System
 Process Management
 Device Driver
 Memory Management
 Networking
14
Kernel Functional
Overview
File System
 Process Management
 Device Driver
 Memory Management
 Networking


15
Kernel Functional Overview

16
Functional Layer &
Architectural Layer
User Space
System Call
MM
PM

FS
Hardware
DM

Net

17
Contents



What is Kernel ?
Kernel Architecture Overview
 User

Space
 Kernel Space


Kernel Functional Overview
 File

System
 Process Management
 Device Driver
 Memory Management
 Networking
18
File System






It is responsible for storing information on
disk and retrieving and updating this
information.
The File System is accessed through
system calls such as : open, read, write, …
Example :
 FAT16,

FAT32, NTFS
 ext2, ext3
…
19
Type of Files


The Unix system has the following types of
files:
 Ordinary


Contain information entered into them by a user, an
application or …

 Directory


Files

Manage the cataloging of the file system

 Special


Files

Files (devices)

Used to access the peripheral devices

 FIFO

Files for Pipes
20
Extended File System
/

/bin /etc
ls

/dev

… /usr

/home

ping

A
data.txt

/root
B

pic.gif
21
File System Structure
Boot Super inode Block
Block Block List
List



Boot Block : information needs to boot the system
Super Block : File System Specifications
Size
 Max. number of files
 Free blocks
 Free inodes





inode List
Block List : The files data
22
Inode
Each file has an inode structure that
is identified by an i-number.
 The inode contains the information
required to access the file.
 It doesn’t contain file name.


23
Inode

(Cont.)

24
Directories

File
Name

inode Number

25
Virtual File System
It manages all the different file
system.
 It is an abstraction layer between the
application program and the file
system implementations.


26
Virtual File System (Cont.)


It describes the system’s file in terms
of superblocks and inodes (the same
way as the Ext2).

27
Virtual File System (Cont.)
Inode cache
 Directory Cache


28
Contents



What is Kernel ?
Kernel Architecture Overview
 User

Space
 Kernel Space


Kernel Functional Overview
 File

System
 Process Management
 Device Driver
 Memory Management
 Networking
29
Process Management
The Unix OS is a time-sharing
system.
 Every process is scheduled to run for
a period of time (time slice).
 Kernel creates, manages and deletes
the processes


30
Process Management (Cont.)






Every process (except init) in the system is create
as the result of a fork system call.
The fork system call splits a process into two
processes (Parent and Child).
Each process has a unique identifier (Process ID).

31
Process Structure


Each process is represented by a
task_struct data structure.
 It

contains the specifications of each process
such as:





State
Scheduling information
Identifier
…

32
Process Structure (cont.)


The task_vector is an array of pointers to
every task_struct data structure in the
system.
 This

means that the maximum number of
processes in the system is limited by the size of
the task vector

33
Type of Processes


Running




Waiting




The process is waiting for an event or for a resource.

Stopped




The process is either running or it is ready to run.

The process has been stopped, usually by receiving a
signal.

Zombie


This is a halted process which, for some reason, still has
a task_struct data structure in the task vector.
34
Contents



What is Kernel ?
Kernel Architecture Overview
 User

Space
 Kernel Space


Kernel Functional Overview
 File

System
 Process Management
 Device Driver
 Memory Management
 Networking
35
Device Driver





On of the purpose of an OS is to hide the
system’s hardware from user.
Instead of putting code to manage the HW
controller into every application, the code
is kept in the Linux kernel.
It abstracts the handling of devices.
 All

HW devices look like regular files.

36
Type of devices


Character devices
A

character device is one that can be accessed
as a stream of bytes.
 Example : Keyboard, Mouse, …


Block devices
A

block device can be accessed only as
multiples of a block.
 Example : disk, …


Network devices
 They

are created by Linux kernel.

37
Major Number and Minor Number


Major Number
 The

major number identifies the driver
associated with the device.



Minor Number
 The

minor number is used only by the driver
specified by the major number; other parts of
the kernel don't use it.
 It is common for a driver to control several
devices, the minor number provides a way for
the driver to differentiate among them.
38
Device Driver

(Cont.)

39
Contents



What is Kernel ?
Kernel Architecture Overview
 User

Space
 Kernel Space


Kernel Functional Overview
 File

System
 Process Management
 Device Driver
 Memory Management
 Networking
40
Memory Management



Physical memory is limited.
Virtual memory is developed to overcome
this limitation.

41
Virtual memory






Large Address space
Protection
Memory mapping
Fair physical memory allocation
Shared virtual memory

42
Physical and Virtual memory

43
Swap memory


It is a configurable partition on disk
treated in a manner similar to
memory.

44
Contents



What is Kernel ?
Kernel Architecture Overview
 User

Space
 Kernel Space


Kernel Functional Overview
 File

System
 Process Management
 Device Driver
 Memory Management
 Networking
45
Network layers

46
Linux network layers

47
BSD socket layer


It is a general interface (abstract
layer).
 Used



in networking and IPC.

Socket address families:
 UNIX
 INET
 AX25
 IPX
 APPLETALK
 X25
48
What is socket?
main()
{
FILE *fd;
fd = fopen (…);
process (fd);
fclose (fd);
}

main()
{
int sockfd;
sockfd = socket (…);
process (sockfd);
close (sockfd);
}

49
INET socket layer
It supports the Internet address
family.
 Its interface with BSD socket layer is
through a set of operation which is
registered with BSD socket layer.


50
Type of sockets


Stream Socket
 Provide

a reliable, sequenced, two-way
connection (such as TCP).



Datagram Socket
A

connection-less and unreliable connection
(such as UDP).



Raw Socket
 Used

for internal network protocols.

51
Question?
52

Linux kernel architecture

  • 1.
    Linux Kernel Architecture AmirHossein Payberah payberah@yahoo.com
  • 2.
    Contents   What is Kernel? Kernel Architecture Overview  User Space  Kernel Space  Kernel Functional Overview  File System  Process Management  Device Driver  Memory Management  Networking 2
  • 3.
    What is Kernel? Modules or sub-systems that provide the operating system functions.  The Core of OS  3
  • 4.
    Types of kernels Microkernel (Modular kernel)  Monolithic kernel  4
  • 5.
    Micro kernel  It includescode only necessary to allow the system to provide major functionality.  IPC  Some memory management  Low level process management & scheduling  Low level input / output  Such as Amoeba, Mach and … 5
  • 6.
    Monolithic kernel It includesall the necessary functions.  Such as Linux and …  6
  • 7.
    Micro vs. Monolithic  Micro Flexible  Modular  Easy  to implement Monolithic  Performance 7
  • 8.
    Contents   What is Kernel? Kernel Architecture Overview  User Space  Kernel Space  Kernel Functional Overview  File System  Process Management  Device Driver  Memory Management  Networking 8
  • 9.
    Kernel Architecture Overview User Space Kernel Space  User Space System Call Kernel Space Hardware 9
  • 10.
    User Space   The UserSpace is the space in memory where user processes run. This Space is protected.  The system prevents one process from interfering with another process.  Only Kernel processes can access a user process 10
  • 11.
    Kernel Space   The kernelSpace is the space in memory where kernel processes run. The user has access to it only through the system call. 11
  • 12.
    System Call User Spaceand Kernel Space are in different spaces.  When a System Call is executed, the arguments to the call are passed from User Space to Kernel Space.  A user process becomes a kernel process when it executes a system call.  12
  • 13.
    User Space andKernel Space Relationship User Process User Space Kernel Space Data Flow Library Routine Syscall Dispatch Kernel Service 13
  • 14.
    Contents   What is Kernel? Kernel Architecture Overview  User Space  Kernel Space  Kernel Functional Overview  File System  Process Management  Device Driver  Memory Management  Networking 14
  • 15.
    Kernel Functional Overview File System Process Management  Device Driver  Memory Management  Networking  15
  • 16.
  • 17.
    Functional Layer & ArchitecturalLayer User Space System Call MM PM FS Hardware DM Net 17
  • 18.
    Contents   What is Kernel? Kernel Architecture Overview  User Space  Kernel Space  Kernel Functional Overview  File System  Process Management  Device Driver  Memory Management  Networking 18
  • 19.
    File System    It isresponsible for storing information on disk and retrieving and updating this information. The File System is accessed through system calls such as : open, read, write, … Example :  FAT16, FAT32, NTFS  ext2, ext3 … 19
  • 20.
    Type of Files  TheUnix system has the following types of files:  Ordinary  Contain information entered into them by a user, an application or …  Directory  Files Manage the cataloging of the file system  Special  Files Files (devices) Used to access the peripheral devices  FIFO Files for Pipes 20
  • 21.
    Extended File System / /bin/etc ls /dev … /usr /home ping A data.txt /root B pic.gif 21
  • 22.
    File System Structure BootSuper inode Block Block Block List List   Boot Block : information needs to boot the system Super Block : File System Specifications Size  Max. number of files  Free blocks  Free inodes    inode List Block List : The files data 22
  • 23.
    Inode Each file hasan inode structure that is identified by an i-number.  The inode contains the information required to access the file.  It doesn’t contain file name.  23
  • 24.
  • 25.
  • 26.
    Virtual File System Itmanages all the different file system.  It is an abstraction layer between the application program and the file system implementations.  26
  • 27.
    Virtual File System(Cont.)  It describes the system’s file in terms of superblocks and inodes (the same way as the Ext2). 27
  • 28.
    Virtual File System(Cont.) Inode cache  Directory Cache  28
  • 29.
    Contents   What is Kernel? Kernel Architecture Overview  User Space  Kernel Space  Kernel Functional Overview  File System  Process Management  Device Driver  Memory Management  Networking 29
  • 30.
    Process Management The UnixOS is a time-sharing system.  Every process is scheduled to run for a period of time (time slice).  Kernel creates, manages and deletes the processes  30
  • 31.
    Process Management (Cont.)    Everyprocess (except init) in the system is create as the result of a fork system call. The fork system call splits a process into two processes (Parent and Child). Each process has a unique identifier (Process ID). 31
  • 32.
    Process Structure  Each processis represented by a task_struct data structure.  It contains the specifications of each process such as:     State Scheduling information Identifier … 32
  • 33.
    Process Structure (cont.)  Thetask_vector is an array of pointers to every task_struct data structure in the system.  This means that the maximum number of processes in the system is limited by the size of the task vector 33
  • 34.
    Type of Processes  Running   Waiting   Theprocess is waiting for an event or for a resource. Stopped   The process is either running or it is ready to run. The process has been stopped, usually by receiving a signal. Zombie  This is a halted process which, for some reason, still has a task_struct data structure in the task vector. 34
  • 35.
    Contents   What is Kernel? Kernel Architecture Overview  User Space  Kernel Space  Kernel Functional Overview  File System  Process Management  Device Driver  Memory Management  Networking 35
  • 36.
    Device Driver    On ofthe purpose of an OS is to hide the system’s hardware from user. Instead of putting code to manage the HW controller into every application, the code is kept in the Linux kernel. It abstracts the handling of devices.  All HW devices look like regular files. 36
  • 37.
    Type of devices  Characterdevices A character device is one that can be accessed as a stream of bytes.  Example : Keyboard, Mouse, …  Block devices A block device can be accessed only as multiples of a block.  Example : disk, …  Network devices  They are created by Linux kernel. 37
  • 38.
    Major Number andMinor Number  Major Number  The major number identifies the driver associated with the device.  Minor Number  The minor number is used only by the driver specified by the major number; other parts of the kernel don't use it.  It is common for a driver to control several devices, the minor number provides a way for the driver to differentiate among them. 38
  • 39.
  • 40.
    Contents   What is Kernel? Kernel Architecture Overview  User Space  Kernel Space  Kernel Functional Overview  File System  Process Management  Device Driver  Memory Management  Networking 40
  • 41.
    Memory Management   Physical memoryis limited. Virtual memory is developed to overcome this limitation. 41
  • 42.
    Virtual memory      Large Addressspace Protection Memory mapping Fair physical memory allocation Shared virtual memory 42
  • 43.
  • 44.
    Swap memory  It isa configurable partition on disk treated in a manner similar to memory. 44
  • 45.
    Contents   What is Kernel? Kernel Architecture Overview  User Space  Kernel Space  Kernel Functional Overview  File System  Process Management  Device Driver  Memory Management  Networking 45
  • 46.
  • 47.
  • 48.
    BSD socket layer  Itis a general interface (abstract layer).  Used  in networking and IPC. Socket address families:  UNIX  INET  AX25  IPX  APPLETALK  X25 48
  • 49.
    What is socket? main() { FILE*fd; fd = fopen (…); process (fd); fclose (fd); } main() { int sockfd; sockfd = socket (…); process (sockfd); close (sockfd); } 49
  • 50.
    INET socket layer Itsupports the Internet address family.  Its interface with BSD socket layer is through a set of operation which is registered with BSD socket layer.  50
  • 51.
    Type of sockets  StreamSocket  Provide a reliable, sequenced, two-way connection (such as TCP).  Datagram Socket A connection-less and unreliable connection (such as UDP).  Raw Socket  Used for internal network protocols. 51
  • 52.