\r\nThe 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 concepts The makeup of the manual allows students to learn concepts on a modern operating system Linux-while at the same time viewing the source code.
\r\n
\r\n
1. The Evolution of Linux
\r\n2. General Kernel R
\r\n2.1 Resource Abstraction
\r\n2.2 Sharing Resources
\r\n2.2.1 Managing Competition for Resources
\r\n2.2.2 Exclusive Use of a Resource
\r\n2.2.3 Managed Sharing
\r\n2.3 A Partition of OS Functions
\r\n3. Kernel Organization
\r\n3.1 Interrupts
\r\n3.2 Using Kernel Services
\r\n3.3 Serial Execution
\r\n3.4 Daemons
\r\n3.5 The Booting Procedure
\r\n3.5.1 The Boot Sector
\r\n3.5.2 Starting the Kernel
\r\n3.6 Logging In to the Machine
\r\n3.7 Control Flow in the Machine
\r\n4. Process and Resource Management
\r\n4.1 Running the Process Manager
\r\n4.1.1 System Call
\r\n4.1.2 Interrupts
\r\n4.2 Creating a New Task
\r\n4.3 The Scheduler
\r\n4.4 IPC and Synchronization
\r\n4.5 Protection Mechanism
\r\n5. Memory Management
\r\n5.1 Managing the Virtual Address Space
\r\n5.2 The Secondary Memory
\r\n5.3 Handling Missing Pages
\r\n5.4 Address Translation
\r\n6. Device Management
\r\n6.1 The Device Driver
\r\n6.2 Handling Interrupts
\r\n7. File Management
\r\n7.1 Mounting the File System
\r\n7.2 Opening a File
\r\n7.3 Reading and Writing the File
\r\n7.4 The Ext2 File System
\r\n8. Learning More about Linux
\r\nPART 2: EXERCISES
\r\n1 . Observing Linux Behavior
\r\nIntroduction Problem Statement Part A
\r\nPartB PartC PartD
\r\nAttacking the Problem The /proc File System
\r\nUsing argc and argv Organizing a Solution
\r\nSaving Your Work in a Shared Laboratory
\r\n2. Shell Program
\r\nIntroduction Basic UNIX-Style Shell Operation
\r\nPutting a Process in the Background I/O Redirection
\r\nShell Pipes Reading Multiple Input Steams
\r\nProblem Statement Part A Part B Part C
\r\nAttacking the Problem Organizing a Solution
\r\nPart A Parts B and C
\r\n3. Kernel Timers
\r\nIntroduction How the Kernel Maintains the Time
\r\nPer Process Timers Problem Statement Part A
\r\nPart B Part C Attacking the Problem
\r\nOrganization of the Linux Source Code Signals
\r\nOrganizing a Solution
\r\n4. Kernel Modules
\r\nIntroduction Module Organization
\r\nModule Installation and Removal Problem Statement
\r\nAttacking the Problem The read() Procedure
\r\nThe End-of-File Condition Compiling a Module
\r\nInstalling and Removing a Module
\r\nThe Clock Resolution Question More Help
\r\n5. System Calls
\r\nIntroduction The System Call Linkage
\r\nDefining the System Call Number
\r\nGenerating a System Call Stub
\r\nKernel Function Organization
\r\nReferencing User-Space Memory Locations
\r\nProblem Statement Part A Part B
\r\nAttacking the Problem The Kernel printk().Function
\r\nOrganizing a Solution Rebuilding the Kernel
\r\nLeaving a Clean Environment
\r\n6. Shared Memory
\r\nIntroduction The Shored Memory API
\r\nThe Implementation Problem Statement
\r\nAttacking the Problem
\r\n7. Virtual Memory
\r\nIntroduction The Virtual Address Space
\r\nVirtual Memory Areas Address Translation
\r\nThe Page Fault Handler prirnary, Memory Allocotion
\r\nProblem Statement
\r\nPart A: Instrurnent the Virtual Memory Manager
\r\nPart B: Reporting the Performance
\r\nAttacking the Problem
\r\n8. synchronization Mechanisms
\r\nIntroduction Blocking a Task Wait Queues
\r\nUsing Wait Queues Problem Statement
\r\npart A Part B Attacking the Problem
\r\n9. The Schedulet
\r\nIntroduction Process Management
\r\nProcess States Scheduler Implementation
\r\nFair-Share Scheduling Problem Statement
\r\nPart A Part B Attacking the Problem
\r\nPlanning a Solution Comparing Scheduler Performance
\r\nl0. Device Drivers
\r\nIntroduction Driver Organization
\r\nLoadable Kernel Module Drivers Example: A Disk Driver
\r\nProblem Statement Part A Part B
\r\nAttacking the Problem
\r\n11. File Systems
\r\nIntroduction The Virtual File System Directories
\r\nExample: An MS-DOS File System Problem Statement
\r\nPart A Part B Part C
\r\nAttacking the Problem The MS-DOS Disk Format
\r\nThe MS-DOS FAT Using the Floppy Disk API
\r\nPlanning a Solution
\r\n12. File I/O
\r\nIntroduction The Open and Close Operations
\r\nRead and Write Operations Block Allocation
\r\nBuffer Management Problem Statement
\r\nPart A Part B Part C Part D
\r\nAttacking the Problem The Open() Function
\r\nCaching the FAT A Solution Plan
\r\nFurther Study
\r\nReferences
\r\nIndex
\r\n
\r\n