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

UNIX/Linux Goals: Designed by Programmers, For Programmers Designed To Be

UNIX/Linux was designed by programmers for programmers to be simple, elegant, consistent, powerful and flexible. It utilizes various utility programs for file manipulation, text processing, programming and system administration. The Linux kernel structure includes modules for hardware management, process scheduling, memory management, and networking.

Uploaded by

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

UNIX/Linux Goals: Designed by Programmers, For Programmers Designed To Be

UNIX/Linux was designed by programmers for programmers to be simple, elegant, consistent, powerful and flexible. It utilizes various utility programs for file manipulation, text processing, programming and system administration. The Linux kernel structure includes modules for hardware management, process scheduling, memory management, and networking.

Uploaded by

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

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 A’s virtual address space. (b) Physical
memory. (c) Process B’s 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.
• first 16MB, from old ISA bus
• ZONE_NORMAL - normal, regularly mapped pages.
• above 16 MB and below 896MB
• ZONE_HIGHMEM - pages with high-memory
addresses, which are not permanently mapped.
• above 896 MB (1 GB – 128 MB = 896 MB)

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 Tanenbaum,
detail.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