- 经典教材:操作系统领域的“圣经”,奠定理论基础。
- 现代优秀教材更新,更贴近当代操作系统设计。
- 国内优秀教材:适合中文学习者和国内高校课程。
- 经典论文:操作系统发展史上的里程碑,理解核心思想的源泉。
- 在线资源与社区:获取最新信息和实践的平台。
经典教材
这些教材是操作系统领域的基石,虽然部分内容略显陈旧,但其阐述的核心思想和原理至今仍是现代操作系统设计的根基。

《Operating System Concepts》
- 中文名:《操作系统概念》
- 作者:Abraham Silberschatz, Peter Baer Galvin, Greg Gagne
- 俗称:“恐龙书”(Dinosaur Book),因为封面上的恐龙。
- 特点:全球范围内最流行的操作系统教科书之一,内容全面、系统、权威,涵盖了从进程管理、内存管理、文件系统到I/O系统的所有核心主题,语言平实,配有大量图示和例子。
- 版本:建议阅读最新版(如第10版或更高),以获取更新的案例和内容。
《Modern Operating Systems》
- 中文名:《现代操作系统》
- 作者:Andrew S. Tanenbaum
- 俗称:“Tanenbaum OS”。
- 特点:理论结合实践的代表,作者在书中详细阐述了自己设计并实现的 Minix 操作系统,这使得抽象的概念变得具体可感,书中对微内核和宏内核的论述非常经典,对分布式操作系统也有深入探讨。
- 版本:最新版为第4版,内容更新至云计算、虚拟化等现代主题。
《The Design and Implementation of the 4.4BSD Operating System》
- 中文名:《4.4BSD操作系统设计与实现》
- 作者:Marshall Kirk McKusick, Keith Bostic, Michael J. Karels, John S. Quarterman
- 俗称:“圣经书”(The Bible of BSD)。
- 特点:这不仅仅是一本教材,更是一份高质量的源码级文档,它详细讲解了4.4BSD-Lite版本的内核设计,包括进程、虚拟内存、I/O、网络子系统等,如果你想深入理解一个成熟的类Unix操作系统是如何工作的,这本书是必读之作。
- 注意较为硬核,适合有一定基础的学习者。
《Operating Systems: Three Easy Pieces》
- 中文名:《操作系统:三个简单的部分》
- 作者:Remzi H. Arpaci-Dusseau, Andrea C. Arpaci-Dusseau
- 特点:一本非常现代且友好的免费在线书籍,它将操作系统分为三个核心部分:虚拟化(Processes & Threads)、并发(Concurrency)和持久化(Persistence),写作风格风趣幽默,用大量生活中的例子来解释复杂概念,配有大量的课后习题和实验项目(基于 xv6 或 Pintos)。
- 获取:官方网站 提供免费PDF下载,强烈推荐作为入门或进阶读物。
现代优秀教材
这些教材更侧重于当代操作系统面临的新挑战,如虚拟化、分布式系统、云计算等。
《Distributed Systems: Concepts and Design》
- 中文名:《分布式系统:概念与设计》
- 作者:George Coulouris, Jean Dollimore, Tim Kindberg
- 特点:分布式系统领域的经典教材,现代操作系统越来越需要处理分布式任务,本书深入讲解了透明性、可扩展性、容错性等核心概念,以及时间、同步、复制、一致性和容错等关键技术。
- 版本:最新版为第5版,内容涵盖云计算、大数据等分布式应用。
《QEMU/KVM 源码剖析与实践》
- 作者:李强
- 特点:对于想深入理解现代虚拟化技术的读者来说,这本书是绝佳选择,它以 QEMU/KVM 为例,详细剖析了全虚拟化和半虚拟化的实现原理,涵盖了设备模拟、I/O 路径、内存管理等高级主题,是国内少有的、专注于虚拟化源码分析的著作。
国内优秀教材
这些教材语言更贴近国内教学环境,适合作为中文学习者的主要参考书。
《计算机操作系统》
- 作者:汤子瀛
- 俗称:“汤小丹”,国内高校广泛使用的经典教材。
- 特点严谨,体系完整,非常适合考研和应付国内高校的操作系统课程,虽然案例可能稍显陈旧,但基础理论部分讲解得非常扎实。
《操作系统教程》
- 作者:庞丽萍
- 特点:另一本国内非常流行的教材,内容组织清晰,逻辑性强,对进程同步、死锁等难点问题有深入浅出的讲解。
经典论文
阅读经典论文是理解操作系统设计思想演进的最好方式,它们定义了现代计算机的基石。
-
"The Structure of the 'THE' Multiprogramming System" (1967) - Dijkstra
(图片来源网络,侵删)- 意义:首次提出了具有分层结构的操作系统概念,对系统设计产生了深远影响。
-
"Cooperating Sequential Processes" (1965) - Dijkstra
- 意义:提出了信号量 机制,是解决进程同步与互斥问题的里程碑式工作。
-
"A Hierarchical Extension of THE Operating System" (1968) - Dijkstra
- 意义:提出了死锁避免的“银行家算法”。
-
"Program Structure and Control Structures" (1968) - Dijkstra
- 意义:首次提出 GOTO 语句有害 的观点,倡导结构化编程。
-
"The UNIX Time-Sharing System" (1974) - Ritchie & Thompson
(图片来源网络,侵删)- 意义:Unix 操作系统的开山之作,简洁、优雅的设计哲学影响了后续几乎所有的类Unix系统(Linux, macOS等)。
-
"An Architectural Path to High-Trust Computing" (1991) - Anderson et al.
- 意义:提出了能力安全模型,为现代微内核和容器技术(如Docker, gVisor)提供了理论基础。
-
"Journeling File System" (1994) - Seltzer & McKusick
- 意义:介绍了日志文件系统的设计思想,极大地提高了文件系统的健壮性和恢复速度,是现代文件系统的标配。
-
"The Linux Kernel Module Programming Guide"
- 意义:虽然不是严格意义上的学术论文,但它是学习Linux内核模块编程最经典的入门指南,是理论与实践的完美结合。
在线资源与社区
-
MIT 6.S081 (formerly 6.828) - Introduction to Operating Systems
- 特点:麻省理工学院开设的明星操作系统课程,课程基于教学内核 xv6(一个简化版的V6 Unix),学生需要通过阅读和修改xv6源码来完成实验,课程网站提供全部讲义、实验指导和源码。
- 获取:课程官网
-
Reading-List - OS Course at CMU
- 特点:卡内基梅隆大学的操作系统课程阅读列表,汇集了大量经典和前沿的论文,是研究生的绝佳参考资料。
- 获取:课程阅读列表
-
LWN.net
- 特点:Linux内核开发领域最权威的新闻和文章网站,每周更新的内核版块详细解读了最新内核版本中的新特性和技术实现,是紧跟Linux内核发展的不二之选。
-
GitHub
- 特点:寻找和学习现代操作系统项目源码的最佳平台。
- 推荐项目:
- xv6-riscv: 一个教学用的RISC-V架构的Unix-like操作系统。
- rCore-Tutorial-v3: 一个用Rust语言从零开始实现的教学操作系统。
- Linux Kernel: 直接阅读Linux内核源码是最高阶的学习方式。
学习建议
- 初学者:建议从 《Operating Systems: Three Easy Pieces》 或 《现代操作系统》 入手,建立对操作系统的宏观认识,可以结合 MIT 6.S081 的实验进行动手实践。
- 进阶者:精读 《操作系统概念》 和 《4.4BSD操作系统设计与实现》,深入理解内核各个子系统的设计细节和实现,大量阅读经典论文,追溯核心思想的起源。
- 研究者/开发者:直接阅读Linux内核源码,并关注 LWN.net 和相关会议(如OSDI, SOSP)的最新研究论文,投身于前沿技术探索。
希望这份参考文献列表对你的学习和研究有所帮助!
