现代操作系统(英文版)(第4版)

现代操作系统(英文版)(第4版) pdf epub mobi txt 电子书 下载 2026

出版者:机械工业出版社
作者:Andrew S.Tanenbaum
出品人:
页数:1070
译者:
出版时间:2017-11-1
价格:120.9
装帧:平装
isbn号码:9787111581659
丛书系列:经典原版书库
图书标签:
  • 操作系统
  • 计算机
  • 英文原版
  • 计算机,操作系统
  • 教材
  • 计算机系统结构
  • 计算机科学
  • 编程
  • 现代操作系统
  • 英文版
  • 第4版
  • 操作系统
  • 计算机科学
  • 计算机系统
  • 软件工程
  • 大学教材
  • 系统编程
想要找书就要到 图书目录大全
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

《现代操作系统(英文版)(第4版)》是操作系统领域的经典教材,主要内容包括进程与线程、内存管理、文件系统、输入/输出、死锁、虚拟化和云、多处理机系统、安全,以及关于UNIX、Linux、Android和Windows的实例研究等。第4版对知识点进行了全面更新,反映了当代操作系统的发展与动向。《现代操作系统(英文版)(第4版)》适合作为高等院校计算机专业的操作系统课程教材,也适合相关技术人员参考。

深入理解计算机底层逻辑:操作系统原理与实践 本书名称: 现代操作系统:原理与实践(第X版) 目标读者: 计算机科学、软件工程等相关专业的高年级本科生、研究生,以及希望深入理解操作系统核心机制的系统程序员和技术爱好者。 内容概述: 本书全面、深入地探讨了现代操作系统的核心概念、设计原理以及在实际应用中的工程实现。它不仅仅是一本理论教材,更是一本引导读者理解计算机系统如何高效、安全地管理硬件资源,并为上层应用提供稳定运行环境的实用指南。全书以清晰的逻辑结构,从底层硬件交互开始,逐步深入到复杂系统的调度、并发控制、内存管理、虚拟化技术以及现代分布式系统中的操作系统角色。 第一部分:基础架构与硬件交互 本部分奠定理解操作系统的基石,侧重于操作系统与底层硬件之间的协同工作方式。 第一章:引言与系统概览 本章首先界定操作系统的角色和目标,阐述其作为硬件抽象层和资源管理器的重要性。我们将讨论操作系统的基本结构(内核态与用户态、系统调用接口),以及历史发展对当前架构的影响。重点分析中断(Interrupts)和陷阱(Traps)机制,这是操作系统接管控制权、实现多任务和异常处理的物理基础。 第二章:系统结构与引导过程 深入剖析操作系统的核心结构——内核。我们将比较单体内核、微内核、混合内核等主流设计范式及其优缺点。详细描述计算机系统从上电到操作系统完全加载并开始执行用户程序的全过程(Bootstrapping),包括 BIOS/UEFI 的作用、引导加载程序(Bootloader)的加载过程,以及内核的初始化步骤。 第三章:计算机体系结构基础 本章回顾与操作系统紧密相关的硬件特性。探讨处理器模式(保护环)、I/O 组织方式(轮询、中断驱动、DMA),以及现代 CPU 的缓存层次结构(L1/L2/L3 缓存)和内存管理单元(MMU)的基本工作原理。理解这些硬件特性是设计高效内存管理和缓存友好型系统的先决条件。 第二部分:进程管理与并发控制 本部分聚焦于操作系统如何管理程序执行的实例,即进程,并处理多任务环境下的并发问题。 第四章:进程与线程 本章精确定义进程和线程的概念,区分它们在资源拥有和执行流上的差异。详细讲解进程控制块(PCB)的结构及其在上下文切换(Context Switching)中的作用。随后,深入探讨现代操作系统如何实现用户级线程和内核级线程的映射与调度。 第五章:处理机调度 调度是操作系统的核心职能之一。本章系统性地介绍各种 CPU 调度算法,包括非抢占式(如先来先服务 FCFS)和抢占式(如最短剩余时间优先 SRTF、时间片轮转 RR)。重点分析优先级调度、多级反馈队列(MLFQ)的设计哲学,并探讨实时系统(硬/软实时)的调度需求和特定算法(如 EDF、RMS)。讨论调度算法的性能评估指标,如周转时间、等待时间和响应时间。 第六章:同步与互斥 在多线程并发访问共享资源时,数据一致性成为关键挑战。本章深入探讨并发控制的基本问题。首先介绍经典的同步机制:互斥锁(Mutexes)和信号量(Semaphores),并提供使用这些工具解决生产者-消费者、读者-写者等经典同步问题的范例。随后,讲解更高层次的同步原语,如管程(Monitors)和条件变量,分析死锁的四个必要条件、预防、避免(如银行家算法)和检测与恢复策略。 第三部分:内存管理 内存是系统中最宝贵的资源之一。本部分详述操作系统如何高效、安全地为进程分配和管理主存。 第七章:内存抽象与保护 阐述地址空间的概念,区分逻辑地址和物理地址。详细介绍基于硬件的内存保护机制,如分段(Segmentation)和分页(Paging)。重点分析页表结构、多级页表、倒排页表的设计与实现,以及 TLB(快表)在加速地址翻译中的关键作用。 第八章:虚拟内存与页面置换 本章深入研究虚拟内存的实现原理,这是现代操作系统实现大地址空间和隔离进程的关键技术。讨论请求调页(Demand Paging)的工作流程。全面分析页面置换算法,包括最优(OPT)、先进先出(FIFO)、最近最少使用(LRU)及其在硬件中的高效近似实现(如工作集模型、时钟算法)。探讨抖动(Thrashing)现象及其预防措施。 第九章:内核内存分配 本章关注内核本身对内存的管理,这与用户进程的内存管理有所不同。讨论内核如何管理其内部数据结构,包括伙伴系统(Buddy System)用于大块内存分配,以及 Slab 或 Slub 分配器用于高效管理小尺寸、频繁分配的对象(如文件系统缓存、PCB)。 第四部分:文件系统与存储管理 本部分将视线转向持久化存储设备,探讨如何构建可靠、高效的文件系统。 第十章:文件系统接口与实现 阐述文件系统的基本概念:文件、目录结构和访问方法。对比各种目录组织形式(如单级、两级、树形结构)。深入分析文件系统在磁盘上的物理组织:块分配策略(连续、链接、索引分配),并详细介绍 i 节点(Inode)结构及其在定位文件数据块中的作用。 第十一章:磁盘管理与 I/O 调度 分析磁盘驱动器的物理特性(寻道时间、旋转延迟)。探讨 I/O 调度的目标与算法,如先来先服务(FCFS)、最短寻道时间优先(SSTF)、扫描(SCAN/Elevator)算法,及其在平衡吞吐量和公平性方面的取舍。讨论 RAID 级别(0, 1, 5, 6)的原理和容错机制。 第十二章:日志与一致性 本章聚焦于文件系统在发生系统崩溃或断电时的恢复能力。详细介绍日志(Journaling)技术的工作原理,包括写前日志(Write-Ahead Logging)如何保证文件系统元数据的原子性和一致性。讨论快照(Snapshots)的实现机制。 第五部分:高级主题与未来趋势 本部分将探讨现代系统架构下的操作系统特性,包括安全、虚拟化和分布式环境。 第十三章:安全与保护 讨论操作系统如何实现安全模型。涵盖访问控制列表(ACL)和能力表(Capability Lists)的区别与应用。深入分析域和模式的概念,重点介绍内核模式与用户模式的隔离是如何通过硬件(如保护环)强制执行的。讨论身份验证、授权和审计的基本框架。 第十四章:虚拟化技术 虚拟化是现代云计算的基础。本章阐述虚拟化(如全虚拟化、半虚拟化、硬件辅助虚拟化)的基本原理。重点讲解 Type-1(裸金属)和 Type-2(宿主型)管理程序的架构异同,以及虚拟化层如何处理敏感指令、I/O 拦截和内存地址的映射转换(Shadow Paging 或 EPT/RVI)。 第十五章:分布式与网络基础 虽然分布式系统超越了传统单机操作系统的范畴,但现代操作系统内核集成了关键的网络功能。本章介绍网络协议栈的操作系统层实现(如 TCP/IP 协议栈在内核中的实现框架)。讨论 RPC(远程过程调用)作为分布式应用的基础机制,以及操作系统在处理网络 I/O 时的非阻塞(Non-blocking I/O)和异步 I/O 模型。 结语: 本书通过对上述核心模块的深入剖析,旨在培养读者从系统程序员的角度思考问题,理解每一项抽象背后付出的工程权衡和性能代价。掌握这些原理,是构建高性能、高可靠性软件系统的关键能力。

作者简介

作者:(荷兰)安德鲁 S.塔嫩鲍姆(Andrew S.Tanenbaum) (荷兰)赫伯特·博斯(Herbert Bos)

安德鲁 S.塔嫩鲍姆(Andrew S.Tanenbaum),阿姆斯特丹自由大学教授。荷兰皇家艺术与科学院教授。他撰写的计算机教材享誉全球,被翻译为20种语言在各国大学中使用。他开发的MINIX操作系统是一个开源项目,专注于高可靠性、灵活性及安全性。他曾赢得享有盛名的欧洲研究理事会卓越贡献奖,以及ACM和IEEE的诸多奖项。

赫伯特·博斯(Herbert Bos),阿姆斯特丹自由大学教授。他是一名全方位的系统专家。尤其是在安全和UNIX方面。目前致力于系统与网络安全领域的研究,2011年因在恶意软件反向工程方面的贡献而获得ERC奖。

目录信息

目录
1 INTRODUCTION 1
1.1 WHAT IS AN OPERATING SYSTEM 3
1.1.1 The Operating System as an Extended Machine 4
1.1.2 The Operating System as a Resource Manager 5
1.2 HISTORY OF OPERATING SYSTEMS 6
1.2.1 The First Generation (1945–55): Vacuum Tubes 7
1.2.2 The Second Generation (1955–65): Transistors and Batch Systems 8
1.2.3 The Third Generation (1965–1980): ICs and Multiprogramming 9
1.2.4 The Fourth Generation (1980–Present): Personal Computers 14
1.2.5 The Fifth Generation (1990–Present): Mobile Computers 19
1.3 COMPUTER HARDWARE REVIEW 20
1.3.1 Processors 21
1.3.2 Memory 24
1.3.3 Disks 27
1.3.4 I/O Devices 28
1.3.5 Buses 31
1.3.6 Booting the Computer 34
1.4 THE OPERATING SYSTEM ZOO 35
1.4.1 Mainframe Operating Systems 35
1.4.2 Server Operating Systems 35
1.4.3 Multiprocessor Operating Systems 36
1.4.4 Personal Computer Operating Systems 36
1.4.5 Handheld Computer Operating Systems 36
1.4.6 Embedded Operating Systems 36
1.4.7 Sensor—Node Operating Systems 37
1.4.8 Real—Time Operating Systems 37
1.4.9 Smart Card Operating Systems 38
1.5 OPERATING SYSTEM CONCEPTS 38
1.5.1 Processes 39
1.5.2 Address Spaces 41
1.5.3 Files 41
1.5.4 Input/Output 45
1.5.5 Protection 45
1.5.6 The Shell 45
1.5.7 Ontogeny Recapitulates Phylogeny 46
1.6 SYSTEM CALLS 50
1.6.1 System Calls for Process Management 53
1.6.2 System Calls for File Management 56
1.6.3 System Calls for Directory Management 57
1.6.4 Miscellaneous System Calls 59
1.6.5 The Windows Win32 API 60
1.7 OPERATING SYSTEM STRUCTURE 62
1.7.1 Monolithic Systems 62
1.7.2 Layered Systems 63
1.7.3 Microkernels 65
1.7.4 Client—Server Model 68
1.7.5 Virtual Machines 68
1.7.6 Exokernels 72
1.8 THE WORLD ACCORDING TO C 73
1.8.1 The C Language 73
1.8.2 Header Files 74
1.8.3 Large Programming Projects 75
1.8.4 The Model of Run Time 76
1.9 RESEARCH ON OPERATING SYSTEMS 77
1.10 OUTLINE OF THE REST OF THIS BOOK 78
1.11 METRIC UNITS 79
1.12 SUMMARY 80
2 PROCESSES AND THREADS 85
2.1 PROCESSES 85
2.1.1 The Process Model 86
2.1.2 Process Creation 88
2.1.3 Process Termination 90
2.1.4 Process Hierarchies 91
2.1.5 Process States 92
2.1.6 Implementation of Processes 94
2.1.7 Modeling Multiprogramming 95
2.2 THREADS 97
2.2.1 Thread Usage 97
2.2.2 The Classical Thread Model 102
2.2.3 POSIX Threads 106
2.2.4 Implementing Threads in User Space 108
2.2.5 Implementing Threads in the Kernel 111
2.2.6 Hybrid Implementations 112
2.2.7 Scheduler Activations 113
2.2.8 Pop—Up Threads 114
2.2.9 Making Single—Threaded Code Multithreaded 115
2.3 INTERPROCESS COMMUNICATION 119
2.3.1 Race Conditions 119
2.3.2 Critical Regions 121
2.3.3 Mutual Exclusion with Busy Waiting 121
2.3.4 Sleep and Wakeup 127
2.3.5 Semaphores 130
2.3.6 Mutexes 132
2.3.7 Monitors 137
2.3.8 Message Passing 144
2.3.9 Barriers 146
2.3.10 Avoiding Locks: Read—Copy—Update 148
2.4 SCHEDULING 148
2.4.1 Introduction to Scheduling 149
2.4.2 Scheduling in Batch Systems 156
2.4.3 Scheduling in Interactive Systems 158
2.4.4 Scheduling in Real—Time Systems 164
2.4.5 Policy Versus Mechanism 165
2.4.6 Thread Scheduling 165
2.5 CLASSICAL IPC PROBLEMS 167
2.5.1 The Dining Philosophers Problem 167
2.5.2 The Readers and Writers Problem 169
2.6 RESEARCH ON PROCESSES AND THREADS 172
2.7 SUMMARY 173
3 MEMORY MANAGEMENT 181
3.1 NO MEMORY ABSTRACTION 182
3.2 A MEMORY ABSTRACTION: ADDRESS SPACES 185
3.2.1 The Notion of an Address Space 185
3.2.2 Swapping 187
3.2.3 Managing Free Memory 190
3.3 VIRTUAL MEMORY 194
3.3.1 Paging 195
3.3.2 Page Tables 198
3.3.3 Speeding Up Paging 201
3.3.4 Page Tables for Large Memories 205
3.4 PAGE REPLACEMENT ALGORITHMS 209
3.4.1 The Optimal Page Replacement Algorithm 209
3.4.2 The Not Recently Used Page Replacement Algorithm 210
3.4.3 The First—In, First—Out (FIFO) Page Replacement Algorithm 211
3.4.4 The Second—Chance Page Replacement Algorithm 211
3.4.5 The Clock Page Replacement Algorithm 212
3.4.6 The Least Recently Used (LRU) Page Replacement Algorithm 213
3.4.7 Simulating LRU in Software 214
3.4.8 The Working Set Page Replacement Algorithm 215
3.4.9 The WSClock Page Replacement Algorithm 219
3.4.10 Summary of Page Replacement Algorithms 221
3.5 DESIGN ISSUES FOR PAGING SYSTEMS 222
3.5.1 Local versus Global Allocation Policies 222
3.5.2 Load Control 225
3.5.3 Page Size 225
3.5.4 Separate Instruction and Data Spaces 227
3.5.5 Shared Pages 228
3.5.6 Shared Libraries 229
3.5.7 Mapped Files 231
3.5.8 Cleaning Policy 232
3.5.9 Virtual Memory Interface 232
3.6 IMPLEMENTATION ISSUES 233
3.6.1 Operating System Involvement with Paging 233
3.6.2 Page Fault Handling 234
3.6.3 Instruction Backup 235
3.6.4 Locking Pages in Memory 236
3.6.5 Backing Store 237
3.6.6 Separation of Policy and Mechanism 239
3.7 SEGMENTATION 240
3.7.1 Implementation of Pure Segmentation 243
3.7.2 Segmentation with Paging: MULTICS 243
3.7.3 Segmentation with Paging: The Intel x86247
3.8 RESEARCH ON MEMORY MANAGEMENT 252
3.9 SUMMARY 253
4 FILE SYSTEMS 263
4.1 FILES 265
4.1.1 File Naming 265
4.1.2 File Structure 267
4.1.3 File Types 268
4.1.4 File Access 269
4.1.5 File Attributes 271
4.1.6 File Operations 271
4.1.7 An Example Program Using File—System Calls 273
4.2 DIRECTORIES 276
4.2.1 Single—Level Directory Systems 276
4.2.2 Hierarchical Directory Systems 276
4.2.3 Path Names 277
4.2.4 Directory Operations 280
4.3 FILE—SYSTEM IMPLEMENTATION 281
4.3.1 File—System Layout 281
4.3.2 Implementing Files 282
4.3.3 Implementing Directories 287
4.3.4 Shared Files 290
4.3.5 Log—Structured File Systems 293
4.3.6 Journaling File Systems 294
4.3.7 Virtual File Systems 296
4.4 FILE—SYSTEM MANAGEMENT AND OPTIMIZATION 299
4.4.1 Disk—Space Management 299
4.4.2 File—System Backups 306
4.4.3 File—System Consistency 312
4.4.4 File—System Performance 314
4.4.5 Defragmenting Disks 319
4.5 EXAMPLE FILE SYSTEMS 320
4.5.1 The MS—DOS File System 320
4.5.2 The UNIX V7 File System 323
4.5.3 CD—ROM File Systems 325
4.6 RESEARCH ON FILE SYSTEMS 331
4.7 SUMMARY 332
5 INPUT/OUTPUT 337
5.1 PRINCIPLES OF I/O HARDWARE 337
5.1.1 I/O Devices 338
5.1.2 Device Controllers 339
5.1.3 Memory—Mapped I/O 340
5.1.4 Direct Memory Access 344
5.1.5 Interrupts Revisited 347
5.2 PRINCIPLES OF I/O SOFTWARE 351
5.2.1 Goals of the I/O Software 351
5.2.2 Programmed I/O 352
5.2.3 Interrupt—Driven I/O 354
5.2.4 I/O Using DMA 355
5.3 I/O SOFTWARE LAYERS 356
5.3.1 Interrupt Handlers 356
5.3.2 Device Drivers 357
5.3.3 Device—Independent I/O Software 361
5.3.4 User—Space I/O Software 367
5.4 DISKS 369
5.4.1 Disk Hardware 369
5.4.2 Disk Formatting 375
5.4.3 Disk Arm Scheduling Algorithms 379
5.4.4 Error Handling 382
5.4.5 Stable Storage 385
5.5 CLOCKS 388
5.5.1 Clock Hardware 388
5.5.2 Clock Software 389
5.5.3 Soft Timers 392
5.6 USER INTERFACES: KEYBOARD, MOUSE, MONITOR 394
5.6.1 Input Software 394
5.6.2 Output Software 399
5.7 THIN CLIENTS 416
5.8 POWER MANAGEMENT 417
5.8.1 Hardware Issues 418
5.8.2 Operating System Issues 419
5.8.3 Application Program Issues 425
5.9 RESEARCH ON INPUT/OUTPUT 426
5.10 SUMMARY 428
6 DEADLOCKS 435
6.1 RESOURCES 436
6.1.1 Preemptable and Nonpreemptable Resources 436
6.1.2 Resource Acquisition 437
6.2 INTRODUCTION TO DEADLOCKS 438
6.2.1 Conditions for Resource Deadlocks 439
6.2.2 Deadlock Modeling 440
6.3 THE OSTRICH ALGORITHM 443
6.4 DEADLOCK DETECTION AND RECOVERY 443
6.4.1 Deadlock Detection with One Resource of Each Type 444
6.4.2 Deadlock Detection with Multiple Resources of Each Type 446
6.4.3 Recovery from Deadlock 448
6.5 DEADLOCK AVOIDANCE 450
6.5.1 Resource Trajectories 450
6.5.2 Safe and Unsafe States 452
6.5.3 The Banker’s Algorithm for a Single Resource 453
6.5.4 The Banker’s Algorithm for Multiple Resources 454
6.6 DEADLOCK PREVENTION 456
6.6.1 Attacking the Mutual—Exclusion Condition 456
6.6.2 Attacking the Hold—and—Wait Condition 456
6.6.3 Attacking the No—Preemption Condition 457
6.6.4 Attacking the Circular Wait Condition 457
6.7 OTHER ISSUES 458
6.7.1 Two—Phase Locking 458
6.7.2 Communication Deadlocks 459
6.7.3 Livelock 461
6.7.4 Starvation 463
6.8 RESEARCH ON DEADLOCKS 464
6.9 SUMMARY 464
7 VIRTUALIZATION AND THE CLOUD 471
7.1 HISTORY 473
7.2 REQUIREMENTS FOR VIRTUALIZATION 474
7.3 TYPE 1 AND TYPE 2 HYPERVISORS 477
7.4 TECHNIQUES FOR EFFICIENT VIRTUALIZATION 478
7.4.1 Virtualizing the Unvirtualizable 479
7.4.2 The Cost of Virtualization 482
7.5 ARE HYPERVISORS MICROKERNELS DONE RIGHT 483
7.6 MEMORY VIRTUALIZATION 486
7.7 I/O VIRTUALIZATION 490
7.8 VIRTUAL APPLIANCES 493
7.9 VIRTUAL MACHINES ON MULTICORE CPUS 494
7.10 LICENSING ISSUES 494
7.11 CLOUDS 495
7.11.1 Clouds as a Service 496
7.11.2 Virtual Machine Migration 496
7.11.3 Checkpointing 497
7.12 CASE STUDY: VMWARE 498
7.12.1 The Early History of VMware 498
7.12.2 VMware Workstation 499
7.12.3 Challenges in Bringing Virtualization to the x86500
7.12.4 VMware Workstation: Solution Overview 502
7.12.5 The Evolution of VMware Workstation 511
7.12.6 ESX Server: VMware’s type 1 Hypervisor 512
7.13 RESEARCH ON VIRTUALIZATION AND THE CLOUD 514
8 MULTIPLE PROCESSOR SYSTEMS 517
8.1 MULTIPROCESSORS 520
8.1.1 Multiprocessor Hardware 520
8.1.2 Multiprocessor Operating System Types 530
8.1.3 Multiprocessor Synchronization 534
8.1.4 Multiprocessor Scheduling 539
8.2 MULTICOMPUTERS 544
8.2.1 Multicomputer Hardware 545
8.2.2 Low—Level Communication Software 550
8.2.3 User—Level Communication Software 552
8.2.4 Remote Procedure Call 556
8.2.5 Distributed Shared Memory 558
8.2.6 Multicomputer Scheduling 563
8.2.7 Load Balancing 563
8.3 DISTRIBUTED SYSTEMS 566
8.3.1 Network Hardware 568
8.3.2 Network Services and Protocols 571
8.3.3 Document—Based Middleware 576
8.3.4 File—System—Based Middleware 577
8.3.5 Object—Based Middleware 582
8.3.6 Coordination—Based Middleware 584
8.4 RESEARCH ON MULTIPLE PROCESSOR SYSTEMS 587
8.5 SUMMARY 588
9 SECURITY 593
9.1 THE SECURITY ENVIRONMENT 595
9.1.1 Threats 596
9.1.2 Attackers 598
9.2 OPERATING SYSTEMS SECURITY 599
9.2.1 Can We Build Secure Systems 600
9.2.2 Trusted Computing Base 601
9.3 CONTROLLING ACCESS TO RESOURCES 602
9.3.1 Protection Domains 602
9.3.2 Access Control Lists 605
9.3.3 Capabilities 608
9.4 FORMAL MODELS OF SECURE SYSTEMS 611
9.4.1 Multilevel Security 612
9.4.2 Covert Channels 615
9.5 BASICS OF CRYPTOGRAPHY 619
9.5.1 Secret—Key Cryptography 620
9.5.2 Public—Key Cryptography 621
9.5.3 One—Way Functions 622
9.5.4 Digital Signatures 622
9.5.5 Trusted Platform Modules 624
9.6 AUTHENTICATION 626
9.6.1 Authentication Using a Physical Object 633
9.6.2 Authentication Using Biometrics 636
9.7 EXPLOITING SOFTWARE 639
9.7.1 Buffer Overflow Attacks 640
9.7.2 Format String Attacks 649
9.7.3 Dangling Pointers 652
9.7.4 Null Pointer Dereference Attacks 653
9.7.5 Integer Overflow Attacks 654
9.7.6 Command Injection Attacks 655
9.7.7 Time of Check to Time of Use Attacks 656
9.8 INSIDER ATTACKS 657
9.8.1 Logic Bombs 657
9.8.2 Back Doors 658
9.8.3 Login Spoofing 659
9.9 MALWARE 660
9.9.1 Trojan Horses 662
9.9.2 Viruses 664
9.9.3 Worms 674
9.9.4 Spyware 676
9.9.5 Rootkits 680
9.10 DEFENSES 684
9.10.1 Firewalls 685
9.10.2 Antivirus and Anti—Antivirus Techniques 687
9.10.3 Code Signing 693
9.10.4 Jailing 694
9.10.5 Model—Based Intrusion Detection 695
9.10.6 Encapsulating Mobile Code 697
9.10.7 Java Security 701
9.11 RESEARCH ON SECURITY 703
9.12 SUMMARY 704
10 CASE STUDY 1: UNIX, LINUX, AND ANDROID 713
10.1 HISTORY OF UNIX AND LINUX 714
10.1.1 UNICS 714
10.1.2 PDP—11 UNIX 715
10.1.3 Portable UNIX 716
10.1.4 Berkeley UNIX 717
10.1.5 Standard UNIX 718
10.1.6 MINIX 719
10.1.7 Linux 720
10.2 OVERVIEW OF LINUX 723
10.2.1 Linux Goals 723
10.2.2 Interfaces to Linux 724
10.2.3 The Shell 725
10.2.4 Linux Utility Programs 728
10.2.5 Kernel Structure 730
10.3 PROCESSES IN LINUX 733
10.3.1 Fundamental Concepts 733
10.3.2 Process—Management System Calls in Linux 735
10.3.3 Implementation of Processes and Threads in Linux 739
10.3.4 Scheduling in Linux 746
10.3.5 Booting Linux 751
10.4 MEMORY MANAGEMENT IN LINUX 753
10.4.1 Fundamental Concepts 753
10.4.2 Memory Management System Calls in Linux 756
10.4.3 Implementation of Memory Management in Linux 758
10.4.4 Paging in Linux 764
10.5 INPUT/OUTPUT IN LINUX 767
10.5.1 Fundamental Concepts 767
10.5.2 Networking 769
10.5.3 Input/Output System Calls in Linux 770
10.5.4 Implementation of Input/Output in Linux 771
10.5.5 Modules in Linux 774
10.6 THE LINUX FILE SYSTEM 775
10.6.1 Fundamental Concepts 775
10.6.2 File—System Calls in Linux 780
10.6.3 Implementation of the Linux File System 783
10.6.4 NFS: The Network File System 792
10.7 SECURITY IN LINUX 798
10.7.1 Fundamental Concepts 798
10.7.2 Security System Calls in Linux 800
10.7.3 Implementation of Security in Linux 801
10.8 ANDROID 802
10.8.1 Android and Google 803
10.8.2 History of Android 803
10.8.3 Design Goals 807
10.8.4 Android Architecture 809
10.8.5 Linux Extensions 810
10.8.6 Dalvik 814
10.8.7 Binder IPC 815
10.8.8 Android Applications 824
10.8.9 Intents 836
10.8.10 Application Sandboxes 837
10.8.11 Security 838
10.8.12 Process Model 844
10.9 SUMMARY 848
11 CASE STUDY 2: WINDOWS 8
11.1 HISTORY OF WINDOWS THROUGH WINDOWS 8.1857
11.1.11980s: MS—DOS 857
11.1.21990s: MS—DOS—based Windows 859
11.1.32000s: NT—based Windows 859
11.1.4 Windows Vista 862
11.1.52010s: Modern Windows 863
11.2 PROGRAMMING WINDOWS 864
11.2.1 The Native NT Application Programming Interface 867
11.2.2 The Win32 Application Programming Interface 871
11.2.3 The Windows Registry 875
11.3 SYSTEM STRUCTURE 877
11.3.1 Operating System Structure 877
11.3.2 Booting Windows 893
11.3.3 Implementation of the Object Manager 894
11.3.4 Subsystems, DLLs, and User—Mode Services 905
11.4 PROCESSES AND THREADS IN WINDOWS 908
11.4.1 Fundamental Concepts 908
11.4.2 Job, Process, Thread, and Fiber Management API Calls 914
11.4.3 Implementation of Processes and Threads 919
11.5 MEMORY MANAGEMENT 927
11.5.1 Fundamental Concepts 927
11.5.2 Memory—Management System Calls 931
11.5.3 Implementation of Memory Management 932
11.6 CACHING IN WINDOWS 942
11.7 INPUT/OUTPUT IN WINDOWS 943
11.7.1 Fundamental Concepts 944
11.7.2 Input/Output API Calls 945
11.7.3 Implementation of I/O 948
11.8 THE WINDOWS NT FILE SYSTEM 952
11.8.1 Fundamental Concepts 953
11.8.2 Implementation of the NT File System 954
11.9 WINDOWS POWER MANAGEMENT 964
11.10 SECURITY IN WINDOWS 8966
11.10.1 Fundamental Concepts 967
11.10.2 Security API Calls 969
11.10.3 Implementation of Security 970
11.10.4 Security Mitigations 972
11.11 SUMMARY 975
12 OPERATING SYSTEM DESIGN 981
12.1 THE NATURE OF THE DESIGN PROBLEM 982
12.1.1 Goals 982
12.1.2 Why Is It Hard to Design an Operating System 983
12.2 INTERFACE DESIGN 985
12.2.1 Guiding Principles 985
12.2.2 Paradigms 987
12.2.3 The System—Call Interface 991
12.3 IMPLEMENTATION 993
12.3.1 System Structure 993
12.3.2 Mechanism vs.Policy 997
12.3.3 Orthogonality 998
12.3.4 Naming 999
12.3.5 Binding Time 1001
12.3.6 Static vs.Dynamic Structures 1001
12.3.7 Top—Down vs.Bottom—Up Implementation 1003
12.3.8 Synchronous vs.Asynchronous Communication 1004
12.3.9 Useful Techniques 1005
12.4 PERFORMANCE 1010
12.4.1 Why Are Operating Systems Slow 1010
12.4.2 What Should Be Optimized 1011
12.4.3 Space—Time Trade—offs 1012
12.4.4 Caching 1015
12.4.5 Hints 1016
12.4.6 Exploiting Locality 1016
12.4.7 Optimize the Common Case 1017
12.5 PROJECT MANAGEMENT 1018
12.5.1 The Mythical Man Month 1018
12.5.2 Team Structure 1019
12.5.3 The Role of Experience 1021
12.5.4 No Silver Bullet 1021
12.6 TRENDS IN OPERATING SYSTEM DESIGN 1022
12.6.1 Virtualization and the Cloud 1023
12.6.2 Manycore Chips 1023
12.6.3 Large—Address—Space Operating Systems 1024
12.6.4 Seamless Data Access 1025
12.6.5 Battery—Powered Computers 1025
12.6.6 Embedded Systems 1026
12.7 SUMMARY 1027
13 READING LIST AND BIBLIOGRAPHY 1031
13.1 SUGGESTIONS FOR FURTHER READING 1031
13.1.1 Introduction 1031
13.1.2 Processes and Threads 1032
13.1.3 Memory Management 1033
13.1.4 File Systems 1033
13.1.5 Input/Output 1034
13.1.6 Deadlocks 1035
13.1.7 Virtualization and the Cloud 1035
13.1.8 Multiple Processor Systems 1036
13.1.9 Security 1037
13.1.10 Case Study 1: UNIX, Linux, and Android 1039
13.1.11 Case Study 2: Windows 81040
13.1.12 Operating System Design 1040
13.2 ALPHABETICAL BIBLIOGRAPHY 1041
INDEX 1071
· · · · · · (收起)

读后感

评分

第一次读的是第二版,在初中的时候,当时只会c需要,在做游戏汉化的破解工作,直接撸了一遍,一个初中生都能读的懂,我想很少有教材能讲的如此的通俗,与之相对书中大量的背景概述,可能并不是适合已经工作的人去读,毕竟时间少。第二次读是大学读的第三版,校招前并没有选择干...  

评分

这篇书评主要想写给自己看。还记得当时翻开这本书之前,对操作系统的满心敬畏,心中只想赶快开始去学习其中的知识,期待赶快明白操作系统到底是怎么回事,操作系统到底为我们做了些什么。现在看完了这本书,并没有像想象中那样对操作系统了然于胸。反而是徒增了更多困惑,知道...  

评分

评分

第2章 进程与线程 2.1 进程 2.2 线程 2.3 进程间通信 2.4 经典的IPC问题 2.5 调度 2.6 有关进程和线程的研究 2.7 小结 习题 第3章 死锁 3.1 资源 3.2 死锁概述 3.3 驼鸟算法 3.4 死锁检测和死锁恢复 3.5 死锁避免 3.6 死锁预防 3.7 其他问题 3.8 有关死锁的研究 3.9 小结 目前...  

评分

本人非计算机科班毕业,但对操作系统比较感兴趣,一直在看robert love的linux kernel development,但是一直感觉效果不好,估计是因为对操作系统的概念没有系统的认识的缘故。今天买了这本,是看着Andrew的大名买的。原来也看过第一章,但是当时对计算机进程什么的就根本没有具...  

用户评价

评分

哇,拿到这本《现代操作系统(英文版)(第4版)》的时候,简直就是如获至宝!首先,它的厚度就足以让人感到内容的扎实,翻开扉页,那精美的排版和清晰的字体就让人心生好感。我一直对计算机底层运作原理非常着迷,而操作系统正是连接硬件与应用程序的枢纽,它的重要性不言而喻。这本书的封面设计虽然简洁,却透露出一种专业和权威感,没有过多的花哨修饰,正是我想象中一本严谨技术书籍该有的样子。拿到手里,那沉甸甸的质感,仿佛握住了整个计算机世界的基石。我之前也看过一些关于操作系统的介绍性书籍,但总是觉得停留在概念层面,无法深入理解其背后的机制。而这本书,从它厚重的篇幅和严谨的标题,我就预感它将是一次深度探索的开始。我特别期待它能够清晰地阐述进程管理、内存管理、文件系统以及I/O系统等核心概念,并且能够通过具体的案例和算法来解释这些原理是如何实现的。英文原版也正是我所追求的,能够避免翻译过程中可能出现的理解偏差,直接接触到作者最原始的思考和表达。当然,对于我这样一个非计算机专业出身的读者来说,可能在某些地方会需要花费更多的时间去消化,但我相信,这本书所带来的知识深度和广度,绝对值得我投入这份时间和精力。我已经在我的书桌上为它腾出了最显眼的位置,迫不及待地想开始我的学习之旅了。

评分

这本书的出版绝对是操作系统领域的一件大事,尤其是它已经更新到第四版,这本身就证明了其内容的经久不衰和持续的生命力。作为一个长期关注操作系统发展动向的爱好者,我一直都在寻找一本能够系统性地梳理和讲解现代操作系统设计思想和技术细节的权威著作,而《现代操作系统(英文版)(第4版)》在我看来,就是这样的存在。我非常欣赏作者在处理复杂概念时所展现出的逻辑清晰和深入浅出的能力,据我所知,这本书的作者在学术界和工业界都有着深厚的造诣,这使得他的讲解既有理论的高度,又有实践的接地气。我尤其关注书中对并发和同步机制的阐述,这部分内容常常是操作系统设计的难点和重点。如何有效地管理多个进程或线程,如何避免竞态条件和死锁,这些都是理解现代多任务处理系统的关键。我也对书中可能涉及的分布式操作系统和新型操作系统架构的讨论充满期待,毕竟随着云计算、大数据等技术的发展,操作系统的形态也在不断演变。这本书的到来,无疑为我提供了一个绝佳的机会,去深入了解这些前沿的操作系统理论和实践。我已经在计划如何安排我的阅读时间,并且准备了一些辅助工具,比如概念图和笔记,希望能更有效地吸收书中的知识。

评分

这本书绝对是那种让人一看就想深入研读的类型。拿到书本的时候,首先感受到的是纸张的质感和印刷的精美,这对于一本需要反复翻阅的技术书籍来说,是至关重要的。封面上“现代操作系统”这几个字,就足以勾起我对计算机底层运行机制的好奇心。我一直对操作系统如何调度CPU、如何分配内存、如何管理文件系统等核心问题充满疑问,而这本书,从它的名字和厚度来看,似乎能够解答我所有的疑惑。英文原版更是我学习的目标,我希望能够直接接触到作者最严谨的学术表达,避免翻译过程中可能出现的细微误差。我非常期待书中能够详细介绍进程与线程的概念,理解它们之间的区别与联系,以及操作系统是如何通过各种调度算法来优化系统性能的。内存管理也是我特别关注的部分,虚拟内存、分页、分段等技术是如何工作的,它们又是如何解决物理内存的局限性的,这些都是我想深入了解的。此外,文件系统的设计和实现,以及I/O管理的技术,也都是我迫切想掌握的知识点。这本书的第四版,说明它经过了多次的修订和完善,内容必然是与时俱进,涵盖了最新的操作系统发展趋势。我已经在我的学习计划中为这本书预留了充足的时间,并且准备好笔记本和笔,随时记录下重要的知识点和自己的思考。

评分

这本书的出版,对于每一个热爱计算机技术的学习者来说,都是一份宝贵的财富。我一直以来都对操作系统如何管理和协调硬件资源,如何为上层应用程序提供服务的原理感到着迷。而《现代操作系统(英文版)(第4版)》这个名字,就预示着它将提供一套全面、深入的解读。《现代操作系统》系列书籍的声誉我早有耳闻,而第四版的更新,更是让我对其内容的与时俱进充满信心。我特别期待书中能够详细阐述进程与线程的区别与联系,以及操作系统如何实现高效的进程调度和线程同步,这对于理解现代多任务处理系统至关重要。内存管理部分也是我极其关注的,虚拟内存的引入是如何解决物理内存的局限性?分页和分段的机制是怎样的?各种页面置换算法的性能又如何?这些都是我想深入探究的问题。此外,文件系统的设计与实现,包括目录结构、文件存储方式以及各种文件系统的特点,也是我想要重点学习的内容。这本书的第四版,无疑涵盖了当前操作系统领域的最新进展和最成熟的技术,这对于我来说,是一次与时俱进的系统学习。我已迫不及待地想要开始阅读,并准备好笔和纸,随时记录下我的理解和思考。

评分

这本书的封面虽然朴素,但其蕴含的知识分量却不可估量。我一直以来都对操作系统底层的工作原理有着强烈的好奇心,而《现代操作系统(英文版)(第4版)》这个标题,无疑精准地击中了我的兴趣点。我希望通过这本书,能够深入理解进程管理的核心概念,例如进程的创建、销毁、状态转换以及进程间通信(IPC)的各种方式。我对书中对CPU调度算法的详细介绍尤为期待,无论是早期的FCFS、SJF,还是后来的RR、MLFQ,我希望都能在书中找到清晰的解释和分析,并且了解它们在不同场景下的优劣。内存管理部分也是我非常关注的重点,虚拟内存的引入是如何解决物理内存不足的问题的?分页和分段技术是如何实现的?页面置换算法又是如何工作的?这些问题一直是我求知若渴的。此外,文件系统的设计和实现,包括文件组织的结构、目录管理、以及各种文件系统的性能特点,也都是我希望在书中有所收获的内容。这本书的第四版,意味着它汇集了操作系统领域的最新发展和成熟的技术,这对于我这样一个希望跟上技术步伐的学习者来说,无疑是极其宝贵的。我已经迫不及待地想投入其中,用我的笔记和思考,去一点一点地构建起我对现代操作系统的完整认知。

评分

拿到这本书的时候,就有一种“经典永流传”的感觉。我一直对操作系统内部的运作机制充满好奇,而《现代操作系统(英文版)(第4版)》这个标题,就仿佛是一个通往计算机世界核心的钥匙。我非常期待书中能够清晰地阐述进程管理,包括进程的状态、PCB(进程控制块)的结构、以及进程间通信(IPC)的多种机制,如管道、消息队列、共享内存等。CPU调度算法也是我想要深入理解的部分,我希望书中能详细讲解各种调度算法的原理、优缺点以及它们在实际系统中的应用。内存管理是操作系统的另一大核心,我非常关注虚拟内存是如何工作的,如何通过分页和分段技术来扩展物理内存,以及各种页面置换算法(如LRU、FIFO)的实现和性能分析。文件系统的设计和实现也是我非常感兴趣的领域,我希望书中能介绍不同的文件系统结构,目录管理的方法,以及文件系统的性能优化和可靠性保障。这本书的第四版,意味着它必然包含了大量最新的技术和理论,对于我这样一个希望系统学习操作系统的读者来说,这是一次绝佳的学习机会。我已经计划好要投入大量的精力和时间,去深入研读这本书,并且随时做好笔记,整理思路。

评分

这本书的厚重感本身就传递出一种“干货满满”的信号,这让我非常期待。我一直认为,要深入理解计算机科学,就必须掌握操作系统这门核心课程,而《现代操作系统(英文版)(第4版)》显然是该领域的标杆性著作。我非常好奇书中是如何处理并发和同步问题的,例如,在多线程环境下,如何保证数据的一致性?各种锁机制(如互斥锁、读写锁)是如何工作的?以及如何有效地防止死锁的发生?这些都是我希望在书中找到清晰解答的关键问题。除了进程和线程的管理,我对内存管理部分也充满了期待。虚拟内存的抽象是如何实现的?分页和分段的具体过程是怎样的?以及各种页面置换算法(如LRU、FIFO)的原理和性能表现,都是我想要深入学习的。文件系统也是操作系统的重要组成部分,我希望书中能详细阐述各种文件系统的设计理念,包括文件组织的结构、目录管理、以及文件系统的性能优化和可靠性保障。这本书的第四版,说明它已经经历了多次的迭代和更新,其内容必然是最符合当前技术发展趋势的。我已经准备好投入大量的时间和精力,去啃下这本“硬骨头”,相信它会为我打开一扇通往操作系统深度理解的大门。

评分

拿到这本《现代操作系统(英文版)(第4版)》时,一股学习的热情瞬间被点燃。我一直对计算机系统如何高效、有序地运行充满好奇,而操作系统正是这一切的核心。《现代操作系统》系列的名声在外,而第四版的更新,更是让我对其内容的权威性和前沿性充满期待。我希望书中能够清晰地解释进程与线程的概念,以及操作系统是如何实现它们的调度和同步的。特别是关于并发控制的讨论,例如互斥、信号量、条件变量等机制,我希望能够深入理解它们的工作原理和应用场景,以避免潜在的并发问题。内存管理也是我关注的焦点,虚拟内存的实现机制,包括分页、分段,以及页面置换算法的原理和性能,都是我想要深入学习的。此外,我对于文件系统的设计和实现,包括不同文件系统的结构、目录管理、以及文件系统的性能优化和可靠性保证,也抱有极大的兴趣。这本书的第四版,无疑是紧跟时代步伐的,它必然包含了最新的操作系统技术和发展趋势。我已经迫不及待地想要开始这段深度学习之旅,并且相信这本书将会成为我理解操作系统领域不可或缺的参考。

评分

这本书的到来,对我的学习生涯来说,无疑是意义非凡的。我一直认为,操作系统是连接硬件与软件的桥梁,理解它,就等于理解了计算机系统最核心的运行机制。《现代操作系统(英文版)(第4版)》这个标题,让我立刻感受到了其内容的深度和广度。我非常期待书中能够详尽地阐述进程的生命周期管理,包括进程的创建、终止,以及进程状态的转换,还有各种进程间通信(IPC)机制的实现细节。CPU调度算法的演进和不同算法的优劣分析,也是我想要重点学习的内容。在内存管理方面,我希望能够深入理解虚拟内存的原理,包括分页、分段技术,以及各种页面置换算法是如何工作的,它们又是如何影响系统性能的。文件系统的设计与实现,包括目录结构的组织、文件存储的管理、以及文件系统的安全性和可靠性,也是我非常感兴趣的方面。这本书的第四版,意味着它必然汇集了操作系统领域的最新成果和前沿技术,这对于我这样一个希望掌握最新知识的学习者来说,是极其宝贵的。我已经计划好,将这本书作为我近期学习的重点,并且会认真做好笔记,回顾和反思,力求真正掌握书中的每一个知识点。

评分

这本书的出现,简直就是给我这样一个对计算机系统怀有浓厚兴趣的读者注入了一剂强心针。我一直觉得,想要真正理解一个软件系统的运行,就必须先理解它所运行的操作系统。而《现代操作系统(英文版)(第4版)》这个名字,就已经足够吸引人了。我从这本书的书名和作者的声誉(当然,这需要自己去了解一下作者的背景)就能感受到它的专业性和权威性。我特别关注书中对于并发和同步机制的讲解,因为在多核处理器日益普及的今天,如何高效、安全地处理并发任务是操作系统设计中的核心挑战。我对书中可能提供的各种同步原语,例如互斥锁、信号量、条件变量等的详细解释和应用场景充满了期待。同时,我也希望这本书能深入剖析文件系统的结构和管理方式,了解不同文件系统的特点以及它们在性能、可靠性方面的权衡。此外,虚拟内存的实现机制,包括分页、分段以及页面置换算法,也是我想要深入学习的重点。这本书的第四版,意味着它涵盖了大量的现代操作系统设计理念和技术,这对于我来说,是一次与时俱进的学习机会。我已经迫不及待地想翻开它,开始我的探索之旅了,并且相信这本书会成为我学习路上的重要基石。

评分

文字太多了,读起来干巴巴的……很多概念和算法不容易理解。后面的case study倒还不错。

评分

文字太多了,读起来干巴巴的……很多概念和算法不容易理解。后面的case study倒还不错。

评分

文字太多了,读起来干巴巴的……很多概念和算法不容易理解。后面的case study倒还不错。

评分

文字太多了,读起来干巴巴的……很多概念和算法不容易理解。后面的case study倒还不错。

评分

文字太多了,读起来干巴巴的……很多概念和算法不容易理解。后面的case study倒还不错。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 book.wenda123.org All Rights Reserved. 图书目录大全 版权所有