
| 全书讨论了UNIX的开发技术和原理,考察了现代UNIX系统的最新发展,比较分析了由最重要的UNIX系统和变体所提供的最新特性。本书涵盖的内容包括体现了20世纪90年代UNIX系统结构特色的多项技术:多线程内核、多处理机和实时系统,以及分布式文件系统。 |
| Uresh Vahalia曾为几种UNIX变体开发过内核中的子系统。他在许多大学、企业里,以及会议上讲授过UNIX内核技术。目前他正在为EMC公司开发高性能的文件和视频服务器。
|
| 1 INTRODUCTION 1.1 Introduction 1.2 Th Mandate for Change 1.3 Looking Back, Looking Forward 1.4 The Scope of this Book 1.5 References 2 THE PROCESS AND THE KERNEL 2.1 Introduction 2.2 Mode, Space, and Context 2.3 The Process Abstraction 2.4 Executing in Kernel Mode 2.5 Synchronization 2.6 Process Scheduling 2.7 Signals 2.8 New Processes and Programs 2.9 Summary 2.10 Exercises 2.11 References 3 THREADS AND LIGHTWEIGHT PROCESSES 3.1 Introduction 3.2 Fundamental Abstractions 3.3 Lightweight Process Design--Issues to Consider 3.4 User-Level Threads Libraries 3.5 Scheduler Activations 3.6 Multithreading in Solarie and SVR4 3.7 Threads in Mach 3.8 Digital UNIX 3.9 Mach 3.0 Continuations 3.10 Summary 3.11 Exercises 3.12 References 4 SIGNALS AND SESSION MANAGEMENT 4.1 Introduction 4.2 Signal Generation and Handling 4.3 Unreliable Signals 4.4 Reliable Signals 4.5 Signals in SVR4 4.6 Signals Implementation 4.7 Exceptions 4.8 Mach Exception Handling 4.9 Process Groups and Terminal Management 4.10 The SVR4 Sessions Architecture 4.11 Summary 4.12 Exercises 4.13 References 5 PROCESS SCHEDULING 5.1 Introduction 5.2 Clock Interrupt Handling 5.3 Scheduler Goals 5.4 Traditional UNIX Scheduling 5.5 The SVR4 Scheduler 5.6 Solaris 2.x Scheduling Enhancements 5.7 Scheduling in Mach 5.8 The Digital UNIX Real-Time Scheduler 5.9 Other Scheduling Implementations 5.10 Summary 5.11 Exercises 5.12 References 6 INTERPROCESS COMMUNICATIONS 6.1 Introduction 6.2 Universal IPC Facilities 6.3 System V IPC 6.4 Mach IPC 6.5 Messages 6.6 Ports 6.7 Message Passing 6.8 Port Operations 6.9 Extensibility 6.10 Mach 3.0 Enhancements 6.11 Discussion 6.12 Summary 6.13 Exercises 6.14 References 7 SYNCHRONIZATION AND MULTIPROCESSING 7.1 Introduction 7.2 Synchronization in Traditional UNIX Kernels 7.3 Multiprocessor Systems 7.4 Multiprocessor Synchronization Issues 7.5 Semaphores 7.6 Spin Locks 7.7 Condition Variables 7.8 Resd-Writs Locks 7.g Reference Counts 7.10 Other Considerations 7.11 Case Studies 7.12 Summary 7.13 Exercises 7.14 References 8 FILE SYSTEM INTERFACE AND FRAMEWORK 8.1 Introduction 8.2 The User Interface to Files 8.3 File Systems 8.4 Special Files 8.5 File System Framework 8.6 The Vnode/Vfs Architecture 8.7 Implementation Overview 8.8 File-System-Dependent Objects 8.9 Mounting a File System 8.10 Operations on Files 8.11 Analysis 8.12 Summary 8.13 Exercises 8.14 References 9 FILE SYSTEM IMPLEMENTATIONS 9.1 Introduction 9.2 The System V File System (s5fs) 9.3 S5fs Kernel Organization 9.4 Analysis of s5fs 9.5 The Berkeley Fast File System 9.6 Hard Disk Structure 9.7 On-Disk Organization 9.8 FFS Functionality Enhancements 9.9 Analysis 9.10 Temporary File Systems 9.11 Special-Purpose File Systems 9.12 The Old Buffer Cache 9.13 Summary 9.14 Exercises 9.15 References 10 DISTRIBUTED FILE SYSTEMS 10.1 Introduction 10.2 General Characteristics of Distributed File Systems 10.3 Network File System (NFS) 10.4 The Protocol Suite 10.5 NFS Implementation 10.6 UNIX Semantics 10.7 NFS Performance 10.8 Dedicated NFS Servers 10.9 NFS Security 10.10 NFS Version 3 10.11 Remote File Sharing (RFS) 10.12 RFS Architecture 10.13 RFS Implementation 10.14 Client-Side Caching 10.15 The Andrew File System 10.16 AFS Implementation 10.17 AFS Shortcomings 10.18 The DCE Distributed File System (DCE DFS) 10.19 Summary 10.20 Exercises 10.21 References 11 ADVANCED FILE SYSTEMS 11.1 Introduction 11.2 Limitations of Traditional File Systems 11.3 File System Clustering (Sun-FFS) 11.4 The Journaling Approach 11.5 Log-Structured File Systems 1l.6 The 4.4BSD Log-Structured File System 11.7 Metedata Logging 11.8 The Episode File System 11.9 Watchdogs 11.10 The 4.4BSD Portal File System 11.11 Stackable File System Layers 11.12 The 4.4BSD File System Interface 11.13 Summary 11.14 Exercises 11.15 References 12 KERNEL MEMORY ALLOCATION 12.1 Introduction 12.2 Functional Requirements 12.3 Resource Map Allocator 12.4 Simple Power-of-Two Free Lists 12.5 The McKusick-Karels Allocator 12.6 The Buddy System 12.7 The SVR4 Lazy Buddy Algorithm 12.8 The Mach-OSF/1 Zone Allocator 12.9 A Hierarchical Allocator for Multiprocessors 12.10 The Solaris 2.4 Slab Allocator 12.11 Summary 12.12 Exercises 12.13 References 13 VIRTUAL MEMORY 13.1 Introduction 13.2 Demand Paging 13.3 Hardware Requirements 13.4 4.3BSD- A Case Study 13.5 4.3BSD Memory Management Operations 13.6 Analysis 13.7 Exercises 13.8 References 14 THE SVR4 VM ARCHITECTURE 14.1 Motivation 14.2 Memory-Mapped Files 14.3 VM Design Principles 14.4 Fundamental Abstractions 14.5 Segment Drivers 14.6 The Swap Layer 14.7 VM Operations 14.8 Interaction with the Vnode Subsystem 14.9 Virtual Swap Space in Solaris 14.10 Analysis 14.11 Performance Improvements 14.12 Summary 14.13 Exercises 14.14 References 15 MORE MEMORY MANAGEMENT TOPICS 15.1 Introduction 15.2 Mach Memory Management Design 15.3 Memory Sharing Facilities 15.4 Memory Objects and Pagers 15.5 External and Internal Pagers 15.6 Page Replacement 15.7 Analysis 15.8 Memory Management in 4.4BSD 15.9 Translation Lookaside Buffer (TLB) Consistency 15.10 TLB Shootdown in Mach 15.11 TLB Consistency in SVR4 and SVR4.2 UNIX 15.12 Other TLB Consistency Algorithms 15.13 Virtually Addressed Caches 15.14 Exercises 15.15 References 16 DEVICE DRIVERS AND I/O 16.1 Introduction 16.2 Overview 16.3 Device Driver Framework 16.4 The I/O Subsystem 16.5 The poll System Call 16.6 Block I/O 16.7 The DDI/DKI Specification 16.8 Newer SVR4 Releases 16.9 Future Directions 16.10 Summary 16.11 Exercises 16.12 References 17 STREAMS 17.1 Motivation 17.2 Overview 17.3 Messages and Queues 17.4 Stream I/O 17.5 Configuration and Setup 17.6 STREAMS ioctls 17.7 Memory Allocation 17.8 Multiplexing 17.9 FIFOs and Pipes 17.10 Networking Interfaces 17.11 Summary 17.12 Exercises 17.13 References Index |
商品评论(0条)