编辑推荐
适读人群 :本书可作为高等学校计算机科学与技术专业操作系统课程的教材,也可供其他专业学生参考。 ?Windows 8:详细介绍了Windows 8内核的各种关键技术。
?Android操作系统:详细介绍了Android移动平台的限制和运行环境。
?嵌入式Linux:详细介绍了嵌入式Linux的关键要素。
?虚拟机:新增了虚拟机操作系统设计问题的一章。
?多核设计问题:增加了关于操作系统设计问题的讨论。
?I/O标准化:更新了相应的接口内容。
?存储硬件:更新了存储硬件部分,包含了固态硬盘驱动器。
?容错:新增了介绍容错机制的一节。
内容简介
本书既是关于操作系统概念、结构和机制的教材,目的是尽可能清楚和全面地展示现代操作系统的本质和特点;也是讲解操作系统的经典教材,不仅系统地讲述了操作系统的基本概念、原理和方法,而且以当代*流行的操作系统Windows 8、UNIX、Android、Linux为例,展现了当代操作系统的本质和特点。全书共分背景知识、进程、内存、调度、输入/输出和文件、嵌入式系统六部分,内容包括计算机系统概述、操作系统概述、进程描述和控制、线程、并发性:互斥和同步、并发:死锁和饥饿、内存管理、虚拟内存、单处理器调度、多处理器和实时调度、I/O管理和磁盘调度、文件管理、嵌入式操作系统、虚拟机、计算机安全技术、分布式处理、客户/服务器和集群等。此外,本书配套网站提供了及时、生动的材料。
作者简介
William Stallings:美国圣母大学电子工程学士,麻省理工学院计算机科学博士,《密码术》期刊编委。美国多家高科技公司执行总监,政府机构、计算机软/硬件供应商顾问;曾为各种计算机和操作系统设计并实现TCP/IP和OSI协议套件;创建并维护了计算机科学专业学生资源网站ComputerScienceStudent.com。出版图书17种,内容涉及计算机安全、计算机网络和计算机系统结构等;在《IEEE进展》《ACM计算评论》和《密码术》等杂志上发表文章多篇;先后12次获美国年度*佳计算机科学教科书奖和学术作者协会奖。
目录
Online Resources
VideoNotes
Preface
About the Author
Chapter 0 Guide for Readers and Instructors 1
0.1 Outline of this Book 2
0.2 Example Systems 2
0.3 A Roadmap for Readers and Instructors 3
0.4 Internet and Web Resources 4
Part 1 Background 7
Chapter 1 Computer System Overview 7
1.1 Basic Elements 8
1.2 Evolution of the Microprocessor 10
1.3 Instruction Execution 10
1.4 Interrupts 13
1.5 The Memory Hierarchy 24
1.6 Cache Memory 27
1.7 Direct Memory Access 31
1.8 Multiprocessor and Multicore Organization 32
1.9 Recommended Reading 36
1.10 Key Terms, Review Questions, and Problems 36
1A Performance Characteristics of Two-Level Memories 39
Chapter 2 Operating System Overview 46
2.1 Operating System Objectives and Functions 47
2.2 The Evolution of Operating Systems 52
2.3 Major Achievements 61
2.4 Developments Leading to Modern Operating Systems 70
2.5 Fault Tolerance 73
2.6 OS Design Considerations for Multiprocessor and Multicore 76
2.7 Microsoft Windows Overview 79
2.8 Traditional UNIX Systems 86
2.9 Modern UNIX Systems 89
2.10 Linux 91
2.11 Android 96
2.12 Recommended Reading and Animations 102
2.13 Key Terms, Review Questions, and Problems 103
Part 2 Processes 105
Chapter 3 Process Description and Control 105
3.1 What Is a Process? 107
3.2 Process States 109
3.3 Process Description 124
3.4 Process Control 133
3.5 Execution of the Operating System 139
3.6 UNIX SVR4 Process Management 142
3.7 Summary 147
3.8 Recommended Reading and Animations 147
3.9 Key Terms, Review Questions, and Problems 148
Chapter 4 Threads 152
4.1 Processes and Threads 153
4.2 Types of Threads 159
4.3 Multicore and Multithreading 166
4.4 Windows 8 Process and Thread Management 171
4.5 Solaris Thread and SMP Management 178
4.6 Linux Process and Thread Management 182
4.7 Android Process and Thread Management 186
4.8 Mac OS X Grand Central Dispatch 190
4.9 Summary 193
4.10 Recommended Reading 193
4.11 Key Terms, Review Questions, and Problems 194
Chapter 5 Concurrency: Mutual Exclusion and Synchronization 199
5.1 Principles of Concurrency 202
5.2 Mutual Exclusion: Hardware Support 210
5.3 Semaphores 214
5.4 Monitors 227
5.5 Message Passing 233
5.6 Readers/Writers Problem 240
5.7 Summary 244
5.8 Recommended Reading and Animations 245
5.9 Key Terms, Review Questions, and Problems 246
Chapter 6 Concurrency: Deadlock and Starvation 259
6.1 Principles of Deadlock 260
6.2 Deadlock Prevention 269
6.3 Deadlock Avoidance 271
6.4 Deadlock Detection 277
6.5 An Integrated Deadlock Strategy 279
6.6 Dining Philosophers Problem 280
6.7 UNIX Concurrency Mechanisms 282
6.8 Linux Kernel Concurrency Mechanisms 286
6.9 Solaris Thread Synchronization Primitives 293
6.10 Windows 7 Concurrency Mechanisms 295
6.11 Android Interprocess Communication 299
6.12 Summary 300
6.13 Recommended Reading and Animations 301
6.14 Key Terms, Review Questions, and Problems 302
Part 3 Memory 309
Chapter 7 Memory Management 309
7.1 Memory Management Requirements 310
7.2 Memory Partitioning 314
7.3 Paging 325
7.4 Segmentation 328
7.5 Summary 330
7.6 Recommended Reading and Animations 330
7.7 Key Terms, Review Questions, and Problems 330
7A Loading and Linking 333
Chapter 8 Virtual Memory 340
8.1 Hardware and Control Structures 341
8.2 Operating System Software 358
8.3 UNIX and Solaris Memory Management 377
8.4 Linux Memory Management 383
8.5 Windows Memory Management 386
8.6 Android Memory Management 389
8.7 Summary 389
8.8 Recommended Reading and Animations 390
8.9 Key Terms, Review Questions, and Problems 391
Part 4 Scheduling 397
Chapter 9 Uniprocessor Scheduling 397
9.1 Types of Processor Scheduling 398
9.2 Scheduling Algorithms 402
9.3 Traditional UNIX Scheduling 424
9.4 Summary 426
9.5 Recommended Reading and Animations 427
9.6 Key Terms, Review Questions, and Problems 428
Chapter 10 Multiprocessor, Multicore, and Real-Time Scheduling 432
10.1 Multiprocessor and Multicore Scheduling 433
10.2 Real-Time Scheduling 446
10.3 Linux Scheduling 461
10.4 UNIX SVR4 Scheduling 465
10.5 UNIX FreeBSD Scheduling 466
10.6 Windows Scheduling 470
10.7 Summary 472
10.8 Recommended Reading 473
10.9 Key Terms, Review Questions, and Problems 473
Part 5 Input/Output and Files 477
Chapter 11 I/O Management and Disk Scheduling 477
11.1 I/O Devices 478
11.2 Organization of the I/O Function 480
11.3 Operating System Design Issues 483
11.4 I/O Buffering 486
11.5 Disk Scheduling 489
11.6 RAID 496
11.7 Disk Cache 505
11.8 UNIX SVR4 I/O 509
11.9 Linux I/O 512
11.10 Windows I/O 515
11.11 Summary 517
11.12 Recommended Reading and Animations 518
11.13 Key Terms, Review Questions, and Problems 519
Chapter 12 File Management 522
12.1 Overview 523
12.2 File Organization and Access 529
12.3 B-Trees 533
12.4 File Directories 536
12.5 File Sharing 541
12.6 Record Blocking 542
12.7 Secondary Storage Management 544
12.8 UNIX File Management 552
12.9 Linux Virtual File System 557
12.10 Windows File System 561
12.11 Android File Management 566
12.12 Summary 567
12.13 Recommended Reading 568
12.14 Key Terms, Review Questions, and Problems 568
Part 6 Embedded Systems 571
Chapter 13 Embedded Operating Systems 571
13.1 Embedded Systems 572
13.2 Characteristics of Embedded Operating Systems 573
13.3 Embedded Linux 576
13.4 TinyOS 577
13.5 Recommended Reading 587
13.6 Key Terms, Review Questions, and Problems 587
Chapter 14 Virtual Machines 590
14.1 Approaches to Virtualization 593
14.2 Processor Issues 596
14.3 Memory Management 598
14.4 I/O Management 600
14.5 VMware ESXi 602
14.6 Microsoft Hyper-V and Xen Variants 604
14.7 Java VM 606
14.8 Linux VServer Virtual Machine Architecture 606
14.9 Android Virtual Machine 609
14.10 Summary 611
14.11 Recommended Reading 612
14.12 Key Terms, Review Questions, and Problems 613
Chapter 15 Operating System Security 614
15.1 Intruders and Malicious Software 615
15.2 Buffer Overflow 619
15.3 Access Control 627
15.4 UNIX Access Control 635
15.5 Operating Systems Hardening 638
15.6 Security Maintenance 642
15.7 Windows Security 643
15.8 Summary 648
15.9 Recommended Reading 649
15.10 Key Terms, Review Questions, and Problems 649
Chapter 16 Distributed Processing, Client/Server, and Clusters 652
16.1 Client/Server Computing 653
16.2 Distributed Message Passing 664
16.3 Remote Procedure Calls 667
16.4 Clusters 671
16.5 Windows Cluster Server 676
16.6 Beowulf and Linux Clusters 678
16.7 Summary 680
16.8 Recommended Reading 681
16.9 Key Terms, Review Questions, and Problems 682
Appendices
Appendix A Topics in Concurrency A-1
Appendix B Programming and Operating System Projects B-1
References 685
Credits 699
Online Chapters and Appendices1
Chapter 17 Network Protocols
17.1 The Need for a Protocol Architecture 17-4
17.2 The TCP/IP Protocol Architecture 17-9
17.3 Sockets 17-19
17.4 Linux Networking 17-26
17.5 Summary 17-29
17.6 Recommended Reading and Web Sites 17-30
17.7 Key Terms, Review Questions, and Problems 17-31
17A The Trivial File Transfer Protocol 17-42
Chapter 18 Distributed Process Management
18.1 Process Migration 18-2
18.2 Distributed Global States 18-14
18.3 Distributed Mutual Exclusion 18-22
18.4 Distributed Deadlock 18-41
18.5 Summary 18-59
18.6 Recommended Reading 18-60
18.7 Key Terms, Review Questions, and Problems 18-61
Chapter 19 Overview of Probability and Stochastic Processes
19.1 Probability 19-2
19.2 Random Variables 19-10
19.3 Elementary Concepts of Stochastic Processes 19-19
19.4 Recommended Reading and Web Sites 19-34
19.5 Key Terms, Review Questions, and Problems 19-35
Chapter 20 Queueing Analysis
20.1 How Queues Behave―A Simple Example 20-3
20.2 Why Queuing Analysis? 20-8
20.3 Queueing Models 20-12
20.4 Single-Server Queues 20-24
20.5 Multiserver Queues 20-28
20.6 Examples 20-30
20.7 Queues with Priorities 20-38
20.8 Networks of Queues 20-40
20.9 Other Queueing Models 20-46
20.10 Estimating Model Parameters 20-48
20.11 Recommended Reading and Web Sites 20-53
20.12 Key Terms, Review Questions, and Problems 20-54
Programming Project One Developing a Shell
Programming Project Two The HOST Dispatcher Shell
Appendix C Topics in Computer Organization C-1
Appendix D Object-Oriented Design D-1
Appendix E Amdahl’s Law E-1
Appendix F Hash Tables F-1
Appendix G Response Time G-1
Appendix H Queueing System Concepts H-1
Appendix I The Complexity of Algorithms I-1
Appendix J Disk Storage Devices J-1
Appendix K Cryptographic Algorithms K-1
Appendix L Standards Organizations L-1
Appendix M Sockets: A Programmer’s Introduction M-1
Appendix N The International Reference Alphabet N-1
Appendix O BACI: The Ben-Ari Concurrent Programming System O-1
Appendix P Procedure Control P-1
Appendix Q Ecos Q-1
Glossary
VideoNotes
Locations of VideoNotes
http://www.pearsonhighered.com/stallings
Chapter 5 Concurrency: Mutual Exclusion and Synchronization 199
5.1 Illustration of Mutual Exclusion 208
5.2 Hardware Support for Mutual Exclusion 212
5.3 A Definition of Semaphore Primitives 216
5.4 A Definition of Binary Semaphore Primitives 217
5.6 Mutual Exclusion Using Semaphores 219
5.9 An Incorrect Solution to the Infinite-Buffer Producer/Consumer Problem
Using Binary Semaphores 222
5.10 A Correct Solution to the Infinite-Buffer Producer/Consumer Problem
Using Binary Semaphores 224
5.11 A Solution to the Infinite-Buffer Producer/Consumer Problem
Using Semaphores 225
5.13 A Solution to the Bounded-Buffer Producer/Consumer Problem
Using Semaphores 226
5.14 Two Possible Implementations of Semaphores 227
5.16 A Solution to the Bounded-Buffer Producer/Consumer Problem
Using a Monitor 230
5.17 Bounded-Buffer Monitor Code for Mesa Monitor 232
5.20 Mutual Exclusion Using Messages 238
5.21 A Solution to the Bounded-Buffer Producer/Consumer Problem
Using Messages 239
5.22 A Solution to the Readers/Writers Problem Using Semaphores:
Readers Have Priority 241
5.23 A Solution to the Readers/Writers Problem Using Semaphores:
Writers Have Priority 243
5.24 A Solution to the Readers/Writers Problem Using Message Passing 244
5.25 An Application of Coroutines 248
Chapter 6 Concurrency: Deadlock and Starvation 259
6.9 Deadlock Avoidance Logic 276
6.12 A First Solution to the Dining Philosophers Problem 281
6.13 A Second Solution to the Dining Philosophers Problem 282
6.14 A Solution to the Dining Philosophers Problem Using a Monitor 283
6.18 Another Solution to the Dining Philosophers Problem Using a Monitor 307
Chapter 13 Embedded Operating Systems 571
13.6 Condition Variable Example Code 589
Chapter 18 Distributed Process Management
18.11 Token.Passing Algorithm (for Process Pi) 40
18.14 A Distributed Deadlock Detection Algorithm 50
Appednix A Topics in Concurrency A-1
A.1 Mutual Exclusion Attempts A-3
A.2 Dekker’s Algorithm A-6
A.3 Peterson’s Algorithm for Two Processes A-7
A.5 An Unfair Barbershop A-17
A.6 A Fair Barbershop A-20
前言/序言
Preface
Since the seventh edition of this book was published, the field has seen continued innovations and improvements. In this new edition, I try to capture these changes while maintaining a broad and comprehensive coverage of the entire field. To begin the process of revision, the seventh edition of this book was extensively reviewed by a number of professors who teach the subject and by professionals working in the field. The result is that, in many places, the narrative has been clarified and tightened, and illustrations have been improved.
Beyond these refinements to improve pedagogy and user friendliness, the technical content of the book has been updated throughout, to reflect the ongoing changes in this exciting field, and the instructor and student support has been expanded. The most noteworthy changes are as follows:
? Windows 8: Windows 8 is Microsoft’s latest OS offering for PCs, workstations, and servers, which includes a number of changes to the internal architecture.
The new edition provides details on Windows 8 internals in all of the key technology areas covered in this book, including process/thread management, scheduling, memory management, security, file systems, and I/O.
? Android operating system: Android is the fastest growing mobile platform. The real-world constraints and operating environment of mobile devices are quite different from traditional desktop or server computers. It is important for students to learn this new environment.
? Embedded Linux: The use of a minimal version of Linux for embedded systems has grown in popularity. This new edition provides an overview of the key elements of the embedded Linux approach.
? Virtual machines: Server virtualization and other forms of virtual machines are becoming increasingly widespread. A new chapter deals with the operating system design issues for virtual machines.
? Multicore design issues: The dominant computer architecture is now multicore. This raises new OS design issues that are addressed in this new edition.
? I/O standards: The book has been updated to reflect the latest developments, including Thunderbolt.
? Storage hardware: The discussion of storage hardware has been updated and now includes discussion of solid-state drives.
? Fault tolerance: The ACM/IEEE Computer Science Curricula 2013 lists fault tolerance as one of the core topics for an OS course. A new section provides an overview of fault tolerance. Objectives
This book is about the concepts, structure, and mechanisms of operating systems. Its purpose is to present, as clearly and completely as possible, the nature and characteristics of modern-day operating systems.
This task is challenging for several reasons. First, there is a tremendous range and variety of computer systems for which operating systems are designed. These include embedded systems, smart phones, single-user workstations and personal computers, medium-sized shared systems, large mainframe and supercomputers, and specialized machines such as real-time systems. The variety is not just in the capacity and speed of machines, but in applications and system support requirements.
Second, the rapid pace of change that has always characterized computer systems continues with no letup. A number of key areas in operating system design are of recent origin, and research into these and other new areas continues.
In spite of this variety and pace of change, certain fundamental concepts apply consistently throughout. To be sure, the application of these concepts depends on the current state of technology and the particular application requirements. The intent of this book is to provide a thorough discussion of the fundamentals of operating system design and to relate these to contemporary design issues and to current directions in the development of operating systems. Example Systems
This text is intended to acquaint the reader with the design principles and implementation issues of contemporary operating systems. Accordingly, a purely conceptual or theoretical treatment would be inadequate. To illustrate the concepts and
深入探索计算机系统的内在脉络与设计哲学 本书旨在为读者揭示现代计算机系统最核心的运作机制,它并非局限于某一特定操作系统的具体指令集或命令行操作,而是着眼于贯穿所有主流操作系统背后,驱动其得以高效、稳定运行的普适性原理和设计思想。通过对操作系统核心概念的深入剖析,本书将带领读者穿越抽象的表象,直抵那支撑起数字世界的基石。 一、 进程管理:生命线的 orchestrator 在计算机系统中,进程是程序执行的动态实例。本书将详细阐述进程的生命周期,从创建、就绪、运行、阻塞到终止的每一个环节,都将被细致描绘。我们将探讨进程控制块(PCB)这一关键数据结构,它是操作系统管理进程的“身份证”,记录着进程的一切信息。 进程调度: 如何在有限的CPU资源上,公平且有效地分配给众多竞争的进程?本书将深入研究各种调度算法,包括先来先得(FCFS)、短作业优先(SJF)、优先级调度、轮转法(Round Robin)等,并分析它们的优缺点,以及在不同场景下的适用性。我们将了解如何平衡吞吐量、响应时间、周转时间和等待时间这些衡量调度效率的关键指标。 进程同步与通信: 当多个进程需要协同工作,或者共享数据时,如何避免数据冲突和竞态条件?本书将介绍信号量(Semaphores)、互斥锁(Mutexes)、条件变量(Condition Variables)等经典同步机制,并探讨死锁(Deadlock)的产生条件、检测与预防方法。同时,我们也将学习进程间通信(IPC)的各种形式,如管道(Pipes)、消息队列(Message Queues)、共享内存(Shared Memory)等,它们是实现进程间信息交换和协调的有效手段。 二、 内存管理:无限空间的魔法师 内存是程序运行的直接载体,高效的内存管理直接关系到系统的性能和稳定性。本书将深入剖析内存管理的各个方面。 地址重定位: 程序在编译和加载时,其地址通常是逻辑地址,而实际运行时需要映射到物理地址。本书将讲解如何进行地址重定位,以确保程序的正确执行。 内存分配策略: 内存空间是有限的,如何有效地分配和回收内存给各个进程?我们将探讨首次适应(First-Fit)、最佳适应(Best-Fit)、最坏适应(Worst-Fit)等连续内存分配算法,并分析它们可能带来的内部碎片(Internal Fragmentation)和外部碎片(External Fragmentation)问题。 虚拟内存: 虚拟内存技术是现代操作系统的一大创举,它允许程序使用比实际物理内存更大的地址空间。本书将详细介绍页式管理(Paging)和段式管理(Segmentation)等虚拟内存的实现方式,以及页表(Page Table)、段表(Segment Table)等数据结构的作用。我们将深入理解页面置换算法(Page Replacement Algorithms),如最优页面置换算法(OPT)、先进先出(FIFO)、最近最少使用(LRU)、时钟算法(Clock Algorithm)等,它们是决定虚拟内存性能的关键。此外,工作集模型(Working Set Model)和缺页中断(Page Fault)处理机制也将得到详尽的解析。 三、 文件系统:数据的永恒殿堂 文件系统是操作系统中管理持久化数据的重要组成部分,它为用户和应用程序提供了组织、存储、检索和管理文件的机制。 文件结构与属性: 本书将探讨文件的逻辑结构(如普通文件、目录文件、设备文件等)以及文件的物理存储结构。我们将了解文件的基本属性,如文件名、大小、创建时间、访问权限等,以及它们在文件系统中是如何表示和管理的。 目录结构: 如何组织和管理海量的文件?本书将介绍各种目录结构,如单层目录、二级目录、树形目录和无环图目录,并分析它们的优劣。 文件访问方法: 顺序访问、直接访问、索引顺序访问等不同的文件访问方式将得到详细讲解,并分析它们对性能的影响。 文件系统的实现: 从磁盘块的分配(如位图法、链表法)到文件系统的组织(如FAT、i-node),本书将深入浅出地揭示文件系统在底层是如何工作的。我们将了解文件系统的挂载(Mounting)、卸载(Unmounting)过程,以及如何保证文件系统的一致性和可靠性,包括日志文件系统(Journaling File Systems)等现代技术。 四、 输入/输出(I/O)管理:连接物理与虚拟的桥梁 I/O设备是计算机与外界交互的窗口,高效的I/O管理是提升系统整体性能的关键。 I/O硬件接口: 本书将介绍各种I/O设备的类型,以及它们与CPU和内存之间的通信方式,包括端口I/O、内存映射I/O和DMA(Direct Memory Access)等。 I/O软件层次: 从用户空间的应用程序到设备驱动程序,I/O软件被组织成多个层次。我们将解析每个层次的功能,以及它们如何协同工作。 I/O设备驱动程序: 设备驱动程序是连接操作系统与具体硬件的桥梁。本书将探讨驱动程序的设计原则和关键技术,包括中断处理、缓冲(Buffering)和缓存(Caching)策略,以最大化I/O设备的吞吐量和最小化延迟。 磁盘调度: 磁盘作为重要的I/O设备,其访问速度直接影响系统性能。本书将介绍各种磁盘调度算法,如FCFS、SSTF、SCAN、C-SCAN、LOOK、C-LOOK等,并分析它们在减少磁头移动时间方面的 hiệu quả。 五、 死锁、安全性与保护:系统安全的坚实盾牌 在多任务、共享资源的操作系统环境中,死锁、安全性和保护机制是确保系统正常运行和数据不被非法访问的关键。 死锁: 我们将深入探讨死锁产生的四个必要条件(互斥、占有并等待、非抢占、循环等待),并学习如何通过死锁预防、死锁避免、死锁检测与恢复等策略来应对死锁问题。 安全性: 本书将引入安全性的概念,探讨如何保护系统免受恶意软件和非法访问的侵害。我们将了解访问控制矩阵(Access Control Matrix)、访问控制列表(ACL)和能力列表(Capability Lists)等安全模型。 保护: 保护机制是实现安全性的具体手段。我们将学习如何通过域(Domains)、对象(Objects)和访问权限(Rights)来限制进程对资源的访问。 六、 分布式系统基础:走向协同计算的未来 随着计算能力的不断提升和网络技术的飞速发展,分布式系统已成为现代计算的重要形态。本书将为读者勾勒分布式系统的基本轮廓。 分布式系统的概念与挑战: 何为分布式系统?它又面临哪些独特的挑战,如并发性、故障容忍性、通信延迟等? 分布式进程通信: 在分布式环境中,进程之间的通信与单机系统有所不同。我们将探讨远程过程调用(RPC)、消息传递等分布式通信机制。 分布式文件系统: 如何在多台机器上统一管理文件?本书将介绍分布式文件系统的设计思想和实现方法。 分布式共享内存: 模拟共享内存的机制,实现分布式环境下数据的透明访问。 七、 操作系统设计哲学与现代趋势 除了对核心概念的深入讲解,本书还将引导读者思考操作系统设计的底层哲学。 不同设计风格的权衡: 宏内核(Monolithic Kernels)与微内核(Microkernels)的优劣对比,以及它们的适用场景。 实时操作系统(RTOS): 针对特定时间约束的应用场景,实时操作系统的设计原则。 嵌入式操作系统: 资源受限的嵌入式环境对操作系统提出的特殊要求。 现代操作系统的演进: 虚拟机(Virtualization)、容器化(Containerization)等新技术对操作系统设计的影响,以及未来操作系统的发展趋势。 本书内容丰富,逻辑清晰,旨在为计算机科学与技术、软件工程等专业的学生以及对操作系统感兴趣的从业人员提供一套系统、深入的学习资源。通过对这些基本原理和设计思想的掌握,读者将能够更深刻地理解计算机系统的运作方式,并为设计、开发和优化更先进的软件系统奠定坚实的基础。