0% found this document useful (0 votes)
19 views

Linux

The document provides an overview of the Linux kernel, including its architecture and key functional components. It describes the kernel space and user space, with the kernel space running essential processes and services. It outlines several important kernel functions - the file system, which manages storage and file access; process management, which creates and schedules processes; device drivers, which provide hardware abstraction; memory management; and networking functions.

Uploaded by

dh67rzfq4h
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views

Linux

The document provides an overview of the Linux kernel, including its architecture and key functional components. It describes the kernel space and user space, with the kernel space running essential processes and services. It outlines several important kernel functions - the file system, which manages storage and file access; process management, which creates and schedules processes; device drivers, which provide hardware abstraction; memory management; and networking functions.

Uploaded by

dh67rzfq4h
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 51

Contents

 What is Kernel ?
 Kernel Architecture Overview
 UserSpace
 Kernel Space
 Kernel Functional Overview
 FileSystem
 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
 UserSpace
 Kernel Space
 Kernel Functional Overview
 FileSystem
 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 Data Flow


Process

User Library Routine


Space
Kernel Space
Syscall Dispatch

Kernel
Service

13
Contents
 What is Kernel ?
 Kernel Architecture Overview
 UserSpace
 Kernel Space
 Kernel Functional Overview
 FileSystem
 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
FS PM
Hardware

DM Net

17
Contents
 What is Kernel ?
 Kernel Architecture Overview
 UserSpace
 Kernel Space
 Kernel Functional Overview
 FileSystem
 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 Files
 Contain information entered into them by a user, an
application or …
 Directory Files
 Manage the cataloging of the file system
 Special Files (devices)
 Used to access the peripheral devices
 FIFO Files for Pipes

20
Extended File System
/

/bin /etc /dev … /usr /home /root

ls ping A B

data.txt 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
inode Number
Name

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
 UserSpace
 Kernel Space
 Kernel Functional Overview
 FileSystem
 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.
 Itcontains 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
 The process is either running or it is ready to run.
 Waiting
 The process is waiting for an event or for a resource.
 Stopped
 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
 UserSpace
 Kernel Space
 Kernel Functional Overview
 FileSystem
 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
 Themajor 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
 UserSpace
 Kernel Space
 Kernel Functional Overview
 FileSystem
 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
 UserSpace
 Kernel Space
 Kernel Functional Overview
 FileSystem
 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() main()
{ {
FILE *fd; int sockfd;
fd = fopen (…); sockfd = socket (…);
process (fd); process (sockfd);
fclose (fd); 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

You might also like