0% found this document useful (0 votes)
153 views46 pages

Case Study 1: LINUX: Modern Operating Systems

The document discusses the history and design of Linux operating systems. It provides details on Linux utilities, kernel structure, processes, memory management, networking, I/O systems, and file systems. Diagrams and figures are included to illustrate Linux concepts such as process creation, signals, system calls, scheduling, booting, memory allocation, and the ext2 file system layout.

Uploaded by

Tejaswi Yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
153 views46 pages

Case Study 1: LINUX: Modern Operating Systems

The document discusses the history and design of Linux operating systems. It provides details on Linux utilities, kernel structure, processes, memory management, networking, I/O systems, and file systems. Diagrams and figures are included to illustrate Linux concepts such as process creation, signals, system calls, scheduling, booting, memory allocation, and the ext2 file system layout.

Uploaded by

Tejaswi Yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 46

MODERN OPERATING SYSTEMS

Third Edition
ANDREW S. TANENBAUM

Chapter 10
Case Study 1: LINUX

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
History of UNIX and Linux

UNICS
PDP-11 UNIX
Portable UNIX
Berkeley UNIX
Standard UNIX
MINIX
Linux

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
UNIX/Linux Goals

Designed by programmers, for programmers


Designed to be:

Simple
Elegant
Consistent
Powerful
Flexible

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Interfaces to Linux

Figure 10-1. The layers in a Linux system.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Linux Utility Programs (1)

Categories of utility programs:

File and directory manipulation commands.


Filters.
Program development tools, such as editors and
compilers.
Text processing.
System administration.
Miscellaneous.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Linux Utility Programs (2)

Figure 10-2. A few of the common Linux


utility programs required by POSIX.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Kernel Structure

Figure 10-3. Structure of the Linux kernel


Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Processes in Linux

Figure 10-4. Process creation in Linux.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Signals in Linux (1)

Figure 10-5. The signals required by POSIX.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Process Management
System Calls in Linux

Figure 10-6. Some system calls relating to processes.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
A Simple Linux Shell

Figure 10-7. A highly simplified shell.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Implementation of Processes and Threads
Categories of information in the process descriptor:
Scheduling parameters
Memory image
Signals
Machine registers
System call state
File descriptor table
Accounting
Kernel stack
Miscellaneous

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Implementation of Exec

Figure 10-8. The steps in executing the command


ls typed to the shell.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Clone System Call

Figure 10-9. Bits in the sharing_flags bitmap.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Scheduling in Linux (1)

Three classes of threads for scheduling purposes:

Real-time FIFO.
Real-time round robin.
Timesharing.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Scheduling in Linux (2)

Figure 10-10. Illustration of Linux runqueue and priority arrays.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Booting Linux

Figure 10-11. The sequence of processes used to


boot some Linux systems.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Memory Management in Linux (1)

Figure 10-12. (a) Process As virtual address space. (b) Physical


memory. (c) Process Bs virtual address space.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Memory Management in Linux (2)

Figure 10-13. Two processes can share a mapped file.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Memory Management
System Calls in Linux

Figure 10-14. Some system calls relating to memory


management.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Physical Memory Management (1)

Linux distinguishes between three memory zones:

ZONE_DMA - pages that can be used for DMA


operations.
ZONE_NORMAL - normal, regularly mapped pages.
ZONE_HIGHMEM - pages with high-memory
addresses, which are not permanently mapped.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Physical Memory Management (2)

Figure 10-15. Linux main memory representation.


Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Physical Memory Management (3)

Figure 10-16. Linux uses four-level page tables.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Memory Allocation Mechanisms

Figure 10-17. Operation of the buddy algorithm.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Page Replacement Algorithm

Figure 10-18. Page states considered in the page


frame replacement algorithm.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Networking (1)

Figure 10-19. The uses of sockets for networking.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Networking (2)

Types of networking:

Reliable connection-oriented byte stream.


Reliable connection-oriented packet stream.
Unreliable packet transmission.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Input/Output System Calls in Linux

Figure 10-20. The main POSIX calls for managing the terminal.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Major Device Table

Figure 10-21. Some of the file operations supported


for typical character devices.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Implementation of
Input/Output in Linux (2)

Figure 10-22. The Linux I/O system showing one file system
in detail.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Linux File System (1)

Figure 10-23. Some important directories


found in most Linux systems.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Linux File System (2)

Figure 10-24. (a) Before linking. (b) After linking.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Linux File System (3)

Figure 10-25. (a) Separate file systems. (b) After mounting.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Linux File System (4)

Figure 10-26. (a) A file with one lock.


(b) Addition of a second lock. (c) A third lock.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
File System Calls in Linux (1)

Figure 10-27. System calls relating to files.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
File System Calls in Linux (2)

Figure 10-28. The fields returned by the stat system call.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
File System Calls in Linux (3)

Figure 10-29. System calls relating to directories.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Linux Virtual File System

Figure 10-30. File system abstractions supported by the VFS.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Linux Ext2 File System (1)

Figure 10-31. Disk layout of the Linux ext2 file system.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Linux Ext2 File System (2)

Figure 10-32. (a) A Linux directory with three files. (b) The same
directory after the file voluminous has been removed.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Linux Ext2 File System (3)

Figure 10-33. Some fields in the i-node structure in Linux

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
The Linux Ext2 File System (4)

Figure 10-34. The relation between the file descriptor table, the
open file description table, and the i-node table.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
NFS Protocols

Figure 10-35. Examples of remote mounted file systems.


Directories shown as squares, files shown as circles.
Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
NFS Implementation

Figure 10-36. The NFS layer structure


Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Security In Linux

Figure 10-37. Some example file protection modes.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639
Security System Calls in Linux

Figure 10-38. system calls relating to security.

Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

You might also like