现代操作系统:原理与实现

现代操作系统:原理与实现

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

因版权原因待上架

编辑推荐

以三个“面向”为导向,即面向经典基础理论与方法,面向国际前沿研究,面向工业界实践,深入浅出地介绍操作系统的理论、架构、设计方法与具体实现。本书是首本以ARM64为主体介绍操作系统的教材,将学术前沿与工业实践充分结合,不仅介绍了现有的Linux宏内核操作系统架构,而且介绍了微内核、外核等操作系统架构。

本书作者陈海波现为上海交通大学特聘教授、博导,并行与分布式系统研究所所长,领域操作系统教育部工程研究中心主任,国家杰出青年基金获得者,ACM杰出科学家,CCF杰出会员与杰出演讲者,不但有丰富的教学经验,而且在工业界还有丰富的带领团队研发操作系统的经验。因此本书不但介绍了现代操作系统的经典理论与方法,还结合前沿研究与工业界实践,介绍了真实场景下的应用、问题和解决方案。

为了帮助读者更好地理解操作系统的设计与实现,上海交通大学并行与分布式系统研究所团队还专门实现了一个小巧但具有较完整基础功能的微内核架构教学操作系统ChCore,并基于ChCore设计了一系列的课程实验。

拥有丰富的教辅材料:在“好大学在线”设置了MOOC课程;建设了课程网站,提供了与课程教学配套的讲义PPT与授课视频;搭建了在线社区,供大家讨论与答疑等。

结合作者在工业界长期担任技术和综合面试官的经验,将一些典型的操作系统相关的技术问题融入本书内容以及每章的课后思考题中,既可为工业界从事操作系统相关领域研发工作的专业人员提供参考,又可对希望从事相关领域研发工作的求职者有所帮助。

内容简介

本书以三个“面向”为导向,即面向经典基础理论与方法,面向国际前沿研究,面向工业界实践,深入浅出地介绍操作系统的理论、架构、设计方法与具体实现。本书是首本以ARM64为主体介绍操作系统的教材,将学术前沿与工业实践充分结合,不仅介绍了现有的Linux宏内核操作系统架构,而且介绍了微内核、外核等操作系统架构。

本书共分为三个部分,其中第一部分(操作系统基础)以纸质版的形式出版,第二部分(操作系统进阶)和第三部分(ChCore课程实验)则以电子版的形式在本书网站发布。第一部分共分为11章,内容包括:操作系统概述、硬件结构、操作系统结构、内存管理、进程与线程、操作系统调度、进程间通信、同步原语、文件系统与存储、设备管理和系统虚拟化。

本书包含大量插图、示例和练习,并融入了典型的操作系统相关的技术问题,既可以作为高等院校计算机专业本科生和研究生的操作系统课程教材,也可以作为工业界从事操作系统相关领域研发工作的专业人员的参考书。

作者简介

陈海波

上海交通大学特聘教授、博导,并行与分布式系统研究所所长,领域操作系统教育部工程研究中心主任,国家杰出青年基金获得者,ACM杰出科学家,CCF杰出会员与杰出演讲者。主要研究领域为操作系统和系统安全。曾获教育部技术发明一等奖(第一完成人)、全国优秀博士学位论文奖、CCF青年科学家奖。目前担任ACM SIGOPS ChinaSys主席、CCF系统软件专委会副主任、ACM旗舰杂志Communications of the ACM中国首位编委与Special Sections领域共同主席、ACM Transactions on Storage编委。曾任ACM SOSP 2017年大会共同主席、ACM CCS 2018系统安全领域主席、ACM SIGSAC奖励委员会委员。研究工作还获得了华为最个人贡献奖、金牌团队奖。按照csrankings.org的统计,其近5年(2015~2019)在操作系统领域高水平会议(SOSP/OSDI、EuroSys、USENIX ATC和FAST)上发表的论文数居世界第一。

夏虞斌

上海交通大学副教授、博导,CCF高级会员。主要研究领域为操作系统、体系结构和系统安全,曾任OSDI、EuroSys等多个国际会议的程序委员会委员。领导团队研发的安全操作系统T6获得2015年“挑战杯”全国大学生课外学术科技作品竞赛和中国大学生创业计划竞赛特等奖、2019年中国“互联网 ”大学生创新创业大赛全国银奖,并已实现产业化,实际部署设备数量过亿;基于RISC-V平台研发的可信执行环境软硬件系统“蓬莱”现已开源。

章节目录

序言一

序言二

前言

第一部分 操作系统基础

第1章 操作系统概述...............................................................2

1.1 简约但不简单:从Hello World说起..............................................2

1.2 什么是操作系统................................................................3

1.3 操作系统简史..................................................................6

1.4 操作系统接口..................................................................9

1.5 ChCore:一个简单的实验操作系统...............................................11

参考文献..........................................................................12

第2章 硬件结构..................................................................13

2.1 CPU与指令集架构..............................................................14

2.2 物理内存与CPU缓存...........................................................17

2.3 设备与中断...................................................................20

2.4 思考题.......................................................................22

参考文献..........................................................................22

第3章 操作系统结构..............................................................23

3.1 操作系统的机制与策略.........................................................24

3.2 操作系统复杂度管理方法.......................................................25

3.3 操作系统内核架构.............................................................274

3.4 操作系统框架结构.............................................................35

3.5 思考题.......................................................................39

参考文献..........................................................................40

第4章 内存管理..................................................................42

4.1 虚拟地址与物理地址...........................................................43

4.2 基于分页的虚拟内存...........................................................46

4.3 虚拟内存功能.................................................................58

4.4 物理内存分配与管理...........................................................62

4.5 案例分析:ChCore内存管理机制................................................70

4.6 思考题.......................................................................73

参考文献..........................................................................74

第5章 进程与线程................................................................76

5.1 进程.........................................................................76

5.2 案例分析:Linux的进程操作....................................................80

5.3 线程..........................................................................92

5.4 案例分析:ChCore的线程上下文.................................................99

5.5 纤程.........................................................................102

5.6 思考题.......................................................................106

参考文献..........................................................................107

第6章 操作系统调度..............................................................108

6.1 计算机调度简介...............................................................108

6.2 调度机制.....................................................................113

6.3 单核调度策略.................................................................117

6.4 多核调度策略.................................................................141

6.5 调度进阶机制.................................................................151

6.6 案例分析:现代调度器.........................................................155

6.7 思考题......................................................................162

参考文献.........................................................................163

第7章 进程间通信...............................................................165

7.1 进程间通信基础..............................................................165

7.2 宏内核进程间通信............................................................175

7.3 微内核进程间通信............................................................186

7.4 案例分析:Android Binder....................................................195

7.5 案例分析:ChCore 进程间通信机制.............................................201

7.6 思考题......................................................................203

参考文献.........................................................................203

第8章 同步原语.................................................................206

8.1 互斥锁......................................................................209

8.2 条件变量....................................................................219

8.3 信号量......................................................................223

8.4 读写锁......................................................................229

8.5 RCU.........................................................................233

8.6 管程........................................................................237

8.7 同步带来的问题..............................................................239

8.8 案例分析:Linux中的futex...................................................249

8.9 案例分析:ChCore中的同步原语................................................251

8.10 思考题.....................................................................252

参考文献.........................................................................254

第9章 文件系统.................................................................256

9.1 基于inode的文件系统........................................................257

9.2 虚拟文件系统................................................................266

9.3 其他文件系统................................................................284

9.4 案例分析:ChCore文件系统....................................................294

9.5 思考题.......................................................................296

参考文献..........................................................................297

第10章 设备管理.................................................................299

10.1 计算机设备的连接和通信......................................................300

10.2 设备的识别..................................................................303

10.3 设备的中断处理..............................................................306

10.4 设备驱动与驱动模型..........................................................314

10.5 案例分析:Linux设备驱动模型.................................................316

10.6 案例分析:Zircon的设备驱动模型..............................................323

10.7 案例分析:L4设备驱动模型....................................................327

10.8 案例分析:Linux的用户态驱动模型.............................................329

10.9 思考题.......................................................................332

参考文献...........................................................................333

第11章 系统虚拟化................................................................335

11.1 系统虚拟化技术概述...........................................................336

11.2 CPU虚拟化...................................................................338

11.3 内存虚拟化...................................................................347

11.4 I/O虚拟化...................................................................357

11.5 中断虚拟化...................................................................366

11.6 案例分析:QEMU/KVM...........................................................367

11.7 思考题.......................................................................372

参考文献...........................................................................373

缩略语.............................................................................375

在线章节

第二部分 操作系统进阶

第12章 多核与多处理器

第13章 文件系统崩溃一致性

第14章 网络协议栈与系统

第15章 轻量级虚拟化

第16章 操作系统安全

第17章 操作系统调测

第18章 形式化证明

第三部分 ChCore课程实验

第19章 Lab1:机器启动

第20章 Lab2:内存管理

第21章 Lab3:用户进程与异常处理

第22章 Lab4:多核处理

第23章 Lab5:文件系统与Shell

现代操作系统:原理与实现是2020年由机械工业出版社出版,作者陈海波。

得书感谢您对《现代操作系统:原理与实现》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。