Always Learning

Kernel Projects for Linux
Gary NuttUniversity of Colorado, Boulder

ISBN-10: 0201612437
ISBN-13:  9780201612431

Publisher:  Addison-Wesley
Copyright:  2001
Format:  Paper; 239 pp
Published:  07/19/2000
Status: Out of Print


We're sorry, this product is no longer available.
Please contact your Pearson rep if you are using this product and need instructor resources.


Print this content

In this section:


Description

This is a lab manual that provides a dozen specific lab exercises on Linux internals, illustrating how theoretical Operating System concepts are implemented in Linux. Part I presents an overview of the Linux kernel and how it handles key OS concepts such as: runtime organization and process, file, and device management. Part II presents a series of twelve progressively more difficult exercises that can be completed in a lab environment. This book can be used in conjunction with any core operating systems textbook, and is also available in a special academic package with Nutt: Operating Systems—A Modern Approach.


Features

  • Contains 12 lab exercises that utilize Linux internals to demonstrate key theoretical operating systems concepts.
  • Provides hands-on learning by allowing students to work on programs that implement the concepts that they learned in lectures and primary text readings.
  • Allows students to learn concepts on a modern operating system (Linux), while at the same time viewing the source code.
  • Includes a free copy of Mandrake Linux software.
  • Can be used in conjunction with any core operating system textbook.


Table of Contents

Part I. OVERVIEW OF LINUX.

1. The Evolution of Linux.

2. General Kernel Responsibilities.

Resource Abstraction.

Sharing Resource.

Managing Competition for Resources.

Exclusive Use of a Resource.

Managed Sharing.

A Partition of OS Functions.

3. Kernel Organization.

Interrupts.

Using Kernel Services.

Serial Execution.

Daemons.

The Booting Procedure.

The Boot Sector.

Starting the Kernel.

Logging In to the Machine.

Control Flow in the Machine.

4 Process and Resource Management.

Running the Process Manager.

System Call.

Interrupts.

Creating a New Task.

The Scheduler.

IPC and Synchronization.

Protection Mechanism.

5. Memory Management.

Managing the Virtual Address Space.

The Secondary Memory.

Handling Missing Pages.

Address Translation.

6. Device Management.

The Device Driver.

Handling Interrupts.

7. File Management.

Mounting the File System.

Opening a File.

Reading and Writing the File.

The Ext2 File System.

8. Learning More About Linux.

Part II. EXERCISES.

1. Observing Linux Behavior.

Introduction.

Problem Statement.

Part A

Part B.

Part C.

Part D.

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 Streams.

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.

Installation 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 Stud.

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 Shared Memory.

The Implementation.

Problem Statement.

Attacking the Problem.

7. Virtual Memory.

Introduction.

The Virtual Address Space.

Virtual Memory Areas.

Address Translation.

The Page Fault Handler.

Primary Memory Allocation.

Problem Statement.

Part A: Instrument 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 Scheduler.

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.

10. 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 FAT.

A Solution Plan.

Further Study.

References.

Index.



Back to top

Print this content

In this section:


Author Bios

Gary J. Nutt is a Professor of Computer Science at the University of Colorado. He has also worked as researcher at Xerox PARC and Bell Labs, and as a corporate Vice President and manager of the Boulder office of Interactive Systems. His research interests are in operating systems, distributed systems, performance, and collaboration technology. He teaches in these areas as well as object-oriented software and networks.



0201612437AB04062001


Backcover Copy

This is a lab manual that provides a dozen specific lab exercises on Linux internals, illustrating how theoretical Operating System concepts are implemented in Linux. Part I presents an overview of the Linux kernel and how it handles key OS concepts such as: runtime organization and process, file, and device management. Part II presents a series of twelve progressively more difficult exercises that can be completed in a lab environment. This book can be used in conjunction with any core operating systems textbook, and is also available in a special academic package with Nutt: Back to top

Print this content

In this section:

Online Solutions Manual
Nutt
©2001  |  Addison-Wesley  |  On-line Supplement  |  Live
ISBN-10: 0321357124  |  ISBN-13: 9780321357120

Show Downloadable Files
 | More Info

Back to top

Log in to the Instructor Resource Center

Login name: 

  Password: 

Forgot login/password?  |  Need to redeem an access code?

        

Instructor Resource Center File Download

This work is protected by local and international copyright laws and is provided solely for the use of instructors in teaching their courses and assessing student learning. Dissemination or sale of any part of this work (including on the World Wide Web) will destroy the integrity of the work and is not permitted. The work and materials from this site should never be made available to students except by instructors using the accompanying text in their classes. All recipients of this work are expected to abide by these restrictions and to honor the intended pedagogical purposes and the needs of other instructors who rely on these materials.

Cancel     I accept, proceed with download

Print this content

Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.

Back to top