The Manual includes an expansive introduction to Linux and working in the Linux environment.Twelve exercises provide hands-on learning by allowing students to work on programs that implement key theoretical operating system conceptsThe makeup of the manual allows students to learn concepts on a modern operating system Linux-while at the same time viewing the source code.
1. The Evolution of Linux 2. General Kernel R 2.1 Resource Abstraction 2.2 Sharing Resources 2.2.1 Managing Competition for Resources 2.2.2 Exclusive Use of a Resource 2.2.3 Managed Sharing 2.3 A Partition of OS Functions 3. Kernel Organization 3.1 Interrupts 3.2 Using Kernel Services 3.3 Serial Execution 3.4 Daemons 3.5 The Booting Procedure 3.5.1 The Boot Sector 3.5.2 Starting the Kernel 3.6 Logging In to the Machine 3.7 Control Flow in the Machine 4. Process and Resource Management 4.1 Running the Process Manager 4.1.1 System Call 4.1.2 Interrupts 4.2 Creating a New Task 4.3 The Scheduler 4.4 IPC and Synchronization 4.5 Protection Mechanism 5. Memory Management 5.1 Managing the Virtual Address Space 5.2 The Secondary Memory 5.3 Handling Missing Pages 5.4 Address Translation 6. Device Management 6.1 The Device Driver 6.2 Handling Interrupts 7. File Management 7.1 Mounting the File System 7.2 Opening a File 7.3 Reading and Writing the File 7.4 The Ext2 File System 8. Learning More about Linux PART 2: EXERCISES 1 . Observing Linux Behavior Introduction Problem Statement Part A PartB PartC PartD Attacking the Problem The /proc File System Using argc and argv Organizing a Solution Saving Your Work in a Shared Laboratory 2. Shell Program Introduction Basic UNIX-Style Shell Operation Putting a Process in the Background I/O Redirection Shell Pipes Reading Multiple Input Steams Problem Statement Part A Part B Part C Attacking the Problem Organizing a Solution Part A Parts B and C 3. Kernel Timers Introduction How the Kernel Maintains the Time Per Process Timers Problem Statement Part A Part B Part C Attacking the Problem Organization of the Linux Source Code Signals Organizing a Solution 4. Kernel Modules Introduction Module Organization Module Installation and Removal Problem Statement Attacking the Problem The read() Procedure The End-of-File Condition Compiling a Module Installing and Removing a Module The Clock Resolution Question More Help 5. System Calls Introduction The System Call Linkage Defining the System Call Number Generating a System Call Stub Kernel Function Organization Referencing User-Space Memory Locations Problem Statement Part A Part B Attacking the Problem The Kernel printk().Function Organizing a Solution Rebuilding the Kernel Leaving a Clean Environment 6. Shared Memory Introduction The Shored Memory API The Implementation Problem Statement Attacking the Problem 7. Virtual Memory Introduction The Virtual Address Space Virtual Memory Areas Address Translation The Page Fault Handler prirnary, Memory Allocotion Problem Statement Part A: Instrurnent the Virtual Memory Manager Part B: Reporting the Performance Attacking the Problem 8. synchronization Mechanisms Introduction Blocking a Task Wait Queues Using Wait Queues Problem Statement part A Part B Attacking the Problem 9. The Schedulet Introduction Process Management Process States Scheduler Implementation Fair-Share Scheduling Problem Statement Part A Part B Attacking the Problem Planning a Solution Comparing Scheduler Performance l0. Device Drivers Introduction Driver Organization Loadable Kernel Module Drivers Example: A Disk Driver Problem Statement Part A Part B Attacking the Problem 11. File Systems Introduction The Virtual File System Directories Example: An MS-DOS File System Problem Statement Part A Part B Part C Attacking the Problem The MS-DOS Disk Format The MS-DOS FAT Using the Floppy Disk API Planning a Solution 12. File I/O Introduction The Open and Close Operations Read and Write Operations Block Allocation Buffer Management Problem Statement Part A Part B Part C Part D Attacking the Problem The Open() Function Caching the FAT A Solution Plan Further Study References Index