书籍详情
openEuler操作系统(第2版)
作者:任炬、张尧学
出版社:清华大学出版社
出版时间:2022-03-01
ISBN:9787302602941
定价:¥109.00
购买这本书可以去
内容简介
本书是一部系统解析操作系统原理及 openEuler核心技术的著作。为便于读者高效学习,本书结合 openEuler中的实现代码,详细介绍操作系统的基本原理和核心技术。全书分为12章:第1章介绍操作系 统的基本概念、发展历史、基本功能、设计目标、主流操作系统、发展趋势,以及 openEuler操作系统;第2 章介绍鲲鹏处理器的体系架构、CPU 编程模型、CPU 访存原理,以及鲲鹏处理器与openEuler;第3章介绍 进程的概念、进程的描述、进程的控制、系统调用、进程切换及线程;第4章介绍调度性能指标、常见的调度 算法、多核调度及 CFS调度;第5章介绍虚拟内存、分页机制、地址转换加速机制、多级页表及物理内存扩 充机制;第6章介绍互斥与锁、自旋锁、同步与信号量、共享内存、消息传递等机制及内存屏障技术;第7 章介绍文件系统的基本实现、I/O 性能优化、崩溃一致性及虚拟文件系统;第8章介绍 TCP/IP协议栈、 openEuler的网络子系统架构、网卡驱动程序、套接字、数据的传输路径及新型网络加速技术;第9章介绍 虚拟机监视器的基本概念和基本任务、openEuler的虚拟化平台———StratoVirt;第10章介绍容器的基本 原理与构建过程及华为容器引擎iSulad;第11章介绍可信计算相关知识、可信平台模块规范、系统启动路 径及openEuler的可信启动实现技术;第12章介绍 A-Tune的基本原理及其智能决策和自动调优两个核 心模块的关键技术。 本书适合作为广大高校计算机专业操作系统课程的教辅教材,也可以作为操作系统内核开发者的自 学参考用书。
作者简介
张尧学 中国工程院院士,清华大学计算机系教授,教育部软件工程专业教指委主任委员,国务院学位委员会计算机学科评议组召集人。长期从事操作系统、新型网络计算模式、计算机网络等领域的研究。以完成人获得国家自然科学奖一等奖1项(2014年),国家技术发明奖二等奖1项(2004年),国家科技进步奖二等奖2项(2001年和1998年),省部级奖励5项,何梁何利基金科学与技术进步奖(2005年)。曾任中南大学校长(2011—2017年)。现担任《电子学报》(英文版)主编。任炬清华大学计算机系副教授,博士生导师,国家优秀青年基金获得者,湖南省杰出青年基金获得者。研究方向包括物联网、操作系统、边缘计算等。在国际著名期刊及会议上发表论文100余篇。曾获IEEE通信学会亚太区青年学者奖、IEEE可拓展计算专委会早期职业成就奖等荣誉。担任《电子学报》(中文版和英文版)、IEEE Transactions on Vehicular Technology等多个国内外重要期刊编委,曾任多个国际会议主席、程序委员会主席、领域主席等职务。
目录
第1章操作系统概述00
1.1操作系统的基本概念00
1.2操作系统的发展历史00
1.2.1手工操作时代00
1.2.2批处理系统00
1.2.3多道程序系统00
1.2.4分时操作系统00
1.2.5实时操作系统00
1.3操作系统的基本功能00
1.4操作系统的设计目标00
1.5主流的操作系统0
1.5.1终端操作系统0
1.5.2服务器操作系统0
1.6操作系统的发展趋势0
1.6.1微内核0
1.6.2库操作系统0
1.6.3外内核0
1.6.4多内核0
1.6.5离散化内核0
1.7openEuler操作系统简介0
本章小结0
第2章鲲鹏处理器0
2.1鲲鹏处理器概述0
2.2体系架构0
2.3CPU编程模型0
2.3.1中断与异常0
2.3.2异常级别0
2.3.3寄存器0
2.3.4指令集0
2.4CPU访存原理0
2.4.1存储器的层次结构0
2.4.2内存0
2.4.3内存管理单元0
2.5鲲鹏处理器与openEuler0
本章小结0
第3章进程与线程0
3.1进程的概念0
3.1.1程序: 从源代码到执行0
3.1.2程序的并发执行与进程抽象0
3.2进程的描述0
3.2.1进程控制块0
3.2.2进程状态0
3.3进程的控制 0
3.3.1进程控制原语0
3.3.2进程创建0
3.3.3程序装载0
3.3.4进程终止0
3.3.5openEuler中的进程树0
3.4系统调用0
3.4.1基本概念0
3.4.2系统调用的实现0
3.5进程切换 0
3.5.1基本原理0
3.5.2进程切换过程0
3.6线程0
3.6.1基本概念0
3.6.2线程模型0
3.6.3openEuler中线程的实现0
本章小结0
第4章CPU调度0
4.1调度性能指标0
4.2常见的调度算法0
4.2.1先进先出0
4.2.2短进程优先
4.2.3轮转调度
4.2.4优先级调度
4.3多核调度
4.3.1多核调度的背景
4.3.2多核调度策略
4.4CFS调度
4.4.1调度策略和进程类别
4.4.2调度类
4.4.3调度队列和调度实体
4.4.4CFS调度策略
4.4.5调度过程
本章小结
第5章内存管理
5.1内存访问: 从直接到间接
5.1.1程序中的内存访问
5.1.2虚拟内存
5.2分页
5.2.1基本思想
5.2.2空闲页框管理
5.2.3地址转换
5.2.4内存访问控制
5.3更快的地址转换
5.3.1TLB与局部性原理
5.3.2TLB结构
5.3.3TLB替换
5.4更小的页表
5.4.1多级页表
5.4.2openEuler中的多级页表
5.4.3标准大页
5.5物理内存扩充
5.5.1请求调页
5.5.2交换空间
5.5.3openEuler中页交换的实现
5.5.4页置换策略
本章小结
第6章线程/进程间通信
6.1互斥与锁
6.1.1竞态条件
6.1.2原子性与互斥
6.1.3互斥的实现: 控制中断
6.1.4互斥的实现: 锁
6.2自旋锁
6.2.1基本思想
6.2.2Qspinlock
6.2.3NUMAAware Qspinlock
6.3同步与信号量
6.3.1基本思想
6.3.2信号量的实现
6.3.3生产者与消费者问题
6.4共享内存
6.4.1基本思想
6.4.2共享内存的实现
6.5消息传递
6.5.1基本思想
6.5.2消息传递的实现
6.6内存屏障
6.6.1现代CPU对程序执行的影响
6.6.2内存屏障指令
6.6.3内存顺序模型
6.6.4openEuler中内存屏障的应用
本章小结
第7章文件系统
7.1文件系统概述
7.1.1硬件基础
7.1.2文件系统中的基本概念
7.1.3openEuler中的文件系统
7.1.4Ext4文件系统的发展历程
7.2文件系统的基本实现
7.2.1数据结构及其磁盘布局
7.2.2文件的读取和写入
7.3I/O性能优化
7.3.1缓存与缓冲
7.3.2多级索引与Extent
7.4崩溃一致性
7.4.1简介
7.4.2文件系统检查器
7.4.3日志
7.5虚拟文件系统
7.5.1简介
7.5.2数据结构
本章小结
第8章跨机器通信
8.1计算机网络
8.1.1简介
8.1.2TCP/IP协议栈
8.2网络子系统
8.2.1硬件视角
8.2.2软件视角
8.3网卡驱动程序
8.3.1简介
8.3.2驱动程序的注册与注销
8.3.3设备初始化
8.3.4设备的打开与关闭
8.4套接字
8.4.1简介
8.4.2Socket的连接
8.4.3数据的传输
8.5数据的传输路径
8.5.1数据报文收发的整体流程
8.5.2接收报文的阶段: NIC→Rx ring
8.5.3接收报文的第二阶段: Rx ring→sk_buff
8.5.4接收报文的第三阶段: sk_buff→进程
8.6新型网络加速技术
8.6.1RDMA
8.6.2DPDK
8.6.3智能网卡
8.6.4SDN
本章小结
第9章系统虚拟化
9.1虚拟机监视器
9.1.1基本概念
9.1.2虚拟化的好处
9.1.3虚拟化的类型
9.2基于Linux内核的虚拟机监视器
9.2.1VHE
9.2.2QEMU
9.2.3KVM
9.2.4StratoVirt
9.2.5Libvirt
9.3CPU虚拟化
9.3.1基本思想
9.3.2虚拟机受限制的执行
9.3.3上下文切换
9.4内存虚拟化
9.4.1基本思想
9.4.2地址映射
9.4.3截获访存请求
9.5I/O虚拟化
9.5.1三个基本任务
9.5.2三种实现方式
9.6openEuler的虚拟化平台——StratoVirt
9.6.1StratoVirt的介绍
9.6.2CPU虚拟化的实现
9.6.3内存虚拟化的实现
9.6.4I/O虚拟化的实现
9.6.5StratoVirt的其他特性
本章小结
第10章容器
10.1容器概述
10.1.1容器的基本概念
10.1.2容器的发展历史
10.1.3容器的应用场景
10.1.4容器引擎iSulad
10.2命名空间(namespace)
10.2.1命名空间简介
10.2.2命名空间使用举例
10.2.3命名空间的实现
10.3控制组(cgroups)
10.3.1cgroups简介
10.3.2cgroups使用举例
10.3.3cgroups的实现
10.3.4CPU子系统对CPU资源的管理
10.3.5cgroups V2
10.4容器镜像
10.4.1容器镜像简介
10.4.2镜像的构成方式和底层原理
10.4.3容器镜像的构建模型和构建流程
10.4.4常用的镜像构建工具
10.4.5容器镜像的分发
10.5容器引擎iSulad原理剖析
10.5.1iSulad架构简介
10.5.2容器与镜像操作示例
10.5.3实现原理剖析
10.6容器集群的管理
10.6.1容器集群管理系统——Kubernetes
10.6.2云提供商的容器集群管理平台
本章小结
第11章可信启动
11.1可信计算
11.1.1可信计算的背景
11.1.2可信计算相关的概念
11.2可信平台模块
11.2.1TPM规范简介
11.2.2TPM硬件模块
11.2.3TPM架构及相关组件
11.2.4命令处理流程
11.3启动路径与可信启动
11.3.1BIOS与UEFI
11.3.2启动路径的安全挑战
11.3.3可信启动介绍
11.3.4openEuler的可信启动
本章小结
第12章openEuler智能调优——ATune
12.1基本原理
12.2智能决策
12.3自动调优
本章小结
参考文献
附录A缩略语
1.1操作系统的基本概念00
1.2操作系统的发展历史00
1.2.1手工操作时代00
1.2.2批处理系统00
1.2.3多道程序系统00
1.2.4分时操作系统00
1.2.5实时操作系统00
1.3操作系统的基本功能00
1.4操作系统的设计目标00
1.5主流的操作系统0
1.5.1终端操作系统0
1.5.2服务器操作系统0
1.6操作系统的发展趋势0
1.6.1微内核0
1.6.2库操作系统0
1.6.3外内核0
1.6.4多内核0
1.6.5离散化内核0
1.7openEuler操作系统简介0
本章小结0
第2章鲲鹏处理器0
2.1鲲鹏处理器概述0
2.2体系架构0
2.3CPU编程模型0
2.3.1中断与异常0
2.3.2异常级别0
2.3.3寄存器0
2.3.4指令集0
2.4CPU访存原理0
2.4.1存储器的层次结构0
2.4.2内存0
2.4.3内存管理单元0
2.5鲲鹏处理器与openEuler0
本章小结0
第3章进程与线程0
3.1进程的概念0
3.1.1程序: 从源代码到执行0
3.1.2程序的并发执行与进程抽象0
3.2进程的描述0
3.2.1进程控制块0
3.2.2进程状态0
3.3进程的控制 0
3.3.1进程控制原语0
3.3.2进程创建0
3.3.3程序装载0
3.3.4进程终止0
3.3.5openEuler中的进程树0
3.4系统调用0
3.4.1基本概念0
3.4.2系统调用的实现0
3.5进程切换 0
3.5.1基本原理0
3.5.2进程切换过程0
3.6线程0
3.6.1基本概念0
3.6.2线程模型0
3.6.3openEuler中线程的实现0
本章小结0
第4章CPU调度0
4.1调度性能指标0
4.2常见的调度算法0
4.2.1先进先出0
4.2.2短进程优先
4.2.3轮转调度
4.2.4优先级调度
4.3多核调度
4.3.1多核调度的背景
4.3.2多核调度策略
4.4CFS调度
4.4.1调度策略和进程类别
4.4.2调度类
4.4.3调度队列和调度实体
4.4.4CFS调度策略
4.4.5调度过程
本章小结
第5章内存管理
5.1内存访问: 从直接到间接
5.1.1程序中的内存访问
5.1.2虚拟内存
5.2分页
5.2.1基本思想
5.2.2空闲页框管理
5.2.3地址转换
5.2.4内存访问控制
5.3更快的地址转换
5.3.1TLB与局部性原理
5.3.2TLB结构
5.3.3TLB替换
5.4更小的页表
5.4.1多级页表
5.4.2openEuler中的多级页表
5.4.3标准大页
5.5物理内存扩充
5.5.1请求调页
5.5.2交换空间
5.5.3openEuler中页交换的实现
5.5.4页置换策略
本章小结
第6章线程/进程间通信
6.1互斥与锁
6.1.1竞态条件
6.1.2原子性与互斥
6.1.3互斥的实现: 控制中断
6.1.4互斥的实现: 锁
6.2自旋锁
6.2.1基本思想
6.2.2Qspinlock
6.2.3NUMAAware Qspinlock
6.3同步与信号量
6.3.1基本思想
6.3.2信号量的实现
6.3.3生产者与消费者问题
6.4共享内存
6.4.1基本思想
6.4.2共享内存的实现
6.5消息传递
6.5.1基本思想
6.5.2消息传递的实现
6.6内存屏障
6.6.1现代CPU对程序执行的影响
6.6.2内存屏障指令
6.6.3内存顺序模型
6.6.4openEuler中内存屏障的应用
本章小结
第7章文件系统
7.1文件系统概述
7.1.1硬件基础
7.1.2文件系统中的基本概念
7.1.3openEuler中的文件系统
7.1.4Ext4文件系统的发展历程
7.2文件系统的基本实现
7.2.1数据结构及其磁盘布局
7.2.2文件的读取和写入
7.3I/O性能优化
7.3.1缓存与缓冲
7.3.2多级索引与Extent
7.4崩溃一致性
7.4.1简介
7.4.2文件系统检查器
7.4.3日志
7.5虚拟文件系统
7.5.1简介
7.5.2数据结构
本章小结
第8章跨机器通信
8.1计算机网络
8.1.1简介
8.1.2TCP/IP协议栈
8.2网络子系统
8.2.1硬件视角
8.2.2软件视角
8.3网卡驱动程序
8.3.1简介
8.3.2驱动程序的注册与注销
8.3.3设备初始化
8.3.4设备的打开与关闭
8.4套接字
8.4.1简介
8.4.2Socket的连接
8.4.3数据的传输
8.5数据的传输路径
8.5.1数据报文收发的整体流程
8.5.2接收报文的阶段: NIC→Rx ring
8.5.3接收报文的第二阶段: Rx ring→sk_buff
8.5.4接收报文的第三阶段: sk_buff→进程
8.6新型网络加速技术
8.6.1RDMA
8.6.2DPDK
8.6.3智能网卡
8.6.4SDN
本章小结
第9章系统虚拟化
9.1虚拟机监视器
9.1.1基本概念
9.1.2虚拟化的好处
9.1.3虚拟化的类型
9.2基于Linux内核的虚拟机监视器
9.2.1VHE
9.2.2QEMU
9.2.3KVM
9.2.4StratoVirt
9.2.5Libvirt
9.3CPU虚拟化
9.3.1基本思想
9.3.2虚拟机受限制的执行
9.3.3上下文切换
9.4内存虚拟化
9.4.1基本思想
9.4.2地址映射
9.4.3截获访存请求
9.5I/O虚拟化
9.5.1三个基本任务
9.5.2三种实现方式
9.6openEuler的虚拟化平台——StratoVirt
9.6.1StratoVirt的介绍
9.6.2CPU虚拟化的实现
9.6.3内存虚拟化的实现
9.6.4I/O虚拟化的实现
9.6.5StratoVirt的其他特性
本章小结
第10章容器
10.1容器概述
10.1.1容器的基本概念
10.1.2容器的发展历史
10.1.3容器的应用场景
10.1.4容器引擎iSulad
10.2命名空间(namespace)
10.2.1命名空间简介
10.2.2命名空间使用举例
10.2.3命名空间的实现
10.3控制组(cgroups)
10.3.1cgroups简介
10.3.2cgroups使用举例
10.3.3cgroups的实现
10.3.4CPU子系统对CPU资源的管理
10.3.5cgroups V2
10.4容器镜像
10.4.1容器镜像简介
10.4.2镜像的构成方式和底层原理
10.4.3容器镜像的构建模型和构建流程
10.4.4常用的镜像构建工具
10.4.5容器镜像的分发
10.5容器引擎iSulad原理剖析
10.5.1iSulad架构简介
10.5.2容器与镜像操作示例
10.5.3实现原理剖析
10.6容器集群的管理
10.6.1容器集群管理系统——Kubernetes
10.6.2云提供商的容器集群管理平台
本章小结
第11章可信启动
11.1可信计算
11.1.1可信计算的背景
11.1.2可信计算相关的概念
11.2可信平台模块
11.2.1TPM规范简介
11.2.2TPM硬件模块
11.2.3TPM架构及相关组件
11.2.4命令处理流程
11.3启动路径与可信启动
11.3.1BIOS与UEFI
11.3.2启动路径的安全挑战
11.3.3可信启动介绍
11.3.4openEuler的可信启动
本章小结
第12章openEuler智能调优——ATune
12.1基本原理
12.2智能决策
12.3自动调优
本章小结
参考文献
附录A缩略语
猜您喜欢