Kernel Projects for Linux (Paperback)
暫譯: Linux 核心專案 (平裝本)

Gary Nutt

  • 出版商: Addison Wesley
  • 出版日期: 2000-07-29
  • 售價: $2,570
  • 貴賓價: 9.5$2,442
  • 語言: 英文
  • 頁數: 239
  • 裝訂: Paperback
  • ISBN: 0201612437
  • ISBN-13: 9780201612431
  • 相關分類: Linux
  • 已絕版

買這商品的人也買了...

相關主題

商品描述

 

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.

Back to Top


Appropriate Courses

Operating Systems (OS).

Back to Top

 

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.

Back to Top

 

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

 

 

商品描述(中文翻譯)

描述

這是一本實驗手冊,提供了十二個關於 Linux 內部結構的具體實驗,說明了理論操作系統概念如何在 Linux 中實現。第一部分介紹了 Linux 核心及其如何處理關鍵的操作系統概念,例如:運行時組織、進程、文件和設備管理。第二部分提供了一系列逐漸增加難度的十二個實驗,可以在實驗環境中完成。本書可以與任何核心操作系統教科書一起使用,並且也可與《Nutt: Operating Systems—A Modern Approach》特別學術包一起獲得。

適合的課程

操作系統 (OS)。

特點

- 包含 12 個實驗,利用 Linux 內部結構來演示關鍵的理論操作系統概念。
- 提供實作學習,讓學生能夠在實驗中操作實現他們在講座和主要文本閱讀中學到的概念的程序。
- 讓學生在學習現代操作系統 (Linux) 概念的同時,能夠查看源代碼。
- 包含 Mandrake Linux 軟體的免費副本。
- 可以與任何核心操作系統教科書一起使用。

目錄

第一部分:Linux 概述。

1. Linux 的演變。
2. 一般核心責任。
- 資源抽象。
- 資源共享。
- 管理資源競爭。
- 獨佔資源的使用。
- 管理共享。
- 操作系統功能的劃分。
3. 核心組織。
- 中斷。
- 使用核心服務。
- 串行執行。
- 守護進程。
- 啟動程序。
- 啟動扇區。
- 啟動核心。
- 登入機器。
- 機器中的控制流。
4. 進程和資源管理。
- 運行進程管理器。
- 系統調用。
- 中斷。
- 創建新任務。
- 調度程序。
- IPC 和同步。
- 保護機制。
5. 記憶體管理。
- 管理虛擬地址空間。
- 次級記憶體。
- 處理缺頁。
- 地址轉換。
6. 設備管理。
- 設備驅動程序。
- 處理中斷。
7. 文件管理。
- 挂載文件系統。
- 打開文件。
- 讀取和寫入文件。
- Ext2 文件系統。
8. 進一步了解 Linux。

第二部分:實驗。

1. 觀察 Linux 行為。
- 介紹。
- 問題陳述。
- A 部分
- B 部分。
- C 部分。
- D 部分。
- 解決問題。
- /proc 文件系統。
- 使用 argc 和 argv。
- 組織解決方案。
- 在共享實驗室中保存工作。
2. Shell 程序。
- 介紹。
- 基本 UNIX 風格的 Shell 操作。
- 將進程放入背景。
- I/O 重定向。
- Shell 管道。
- 讀取多個輸入流。
- 問題陳述。
- A 部分。
- B 部分。
- C 部分。
- 解決問題。
- 組織解決方案。
- A 部分。
- B 和 C 部分。
3. 核心計時器。
- 介紹。
- 核心如何維護時間。
- 每個進程計時器。
- 問題陳述。
- A 部分。
- B 部分。
- C 部分。
- 解決問題。
- Linux 源代碼的組織。
- 信號。
- 組織解決方案。
4. 核心模組。
- 介紹。
- 模組組織。
- 模組安裝和移除。
- 問題陳述。
- 解決問題。
- read() 程序。
- 文件結束條件。
- 編譯模組。
- 安裝和移除模組。
- 時鐘解析度問題。
- 更多幫助。
5. 系統調用。
- 介紹。
- 系統調用鏈接。
- 定義系統調用編號。
- 生成系統調用學習。
- 核心功能組織。
- 參考用戶空間記憶體位置。
- 問題陳述。
- A 部分。
- B 部分。
- 解決問題。
- 核心 printk() 函數。
- 組織解決方案。
- 重建核心。
- 保持乾淨的環境。
6. 共享記憶體。
- 介紹。
- 共享記憶體。
- 實現。
- 問題陳述。
- 解決問題。
7. 虛擬記憶體。
- 介紹。
- 虛擬地址空間。
- 虛擬記憶體區域。
- 地址轉換。
- 頁面錯誤處理程序。
- 主要記憶體分配。
- 問題陳述。
- A 部分:對虛擬記憶體管理器進行儀器化。