猜你喜欢
openEuler操作系统

openEuler操作系统

书籍作者:任炬 ISBN:9787302563280
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:1189
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书是一部系统解析操作系统原理及openEuler核心技术著作。为便于读者高效学习,本书结合openEuler中的实现代码,详细介绍了操作系统的基本原理和核心技术。全书共分为10章: 第1章操作系统概述,介绍了操作系统的基本概念、发展历史、基本功能、设计目标、发展趋势,以及openEuler简介; 第2章鲲鹏处理器,介绍了鲲鹏处理器的体系架构、CPU编程模型、CPU访存原理,以及鲲鹏处理器与openEuler; 第3章进程与线程,介绍了进程的概念、进程描述、进程控制、系统调用、进程切换机制及线程; 第4章CPU调度,介绍了调度性能指标、常见调度算法、多核调度策略及CFS调度器; 第5章内存管理,介绍了虚拟内存、分页机制、地址转换加速机制、多级页表及物理内存扩充机制; 第6章线程/进程间通信,介绍了互斥与锁、自旋锁、同步与信号量、共享内存、消息传递等机制及内存屏障技术; 第7章文件系统,介绍了文件系统的基本实现、I/O性能优化、崩溃一致性及虚拟文件系统; 第8章跨机器通信,介绍了TCP/IP协议栈、openEuler的网络子系统架构、网卡驱动程序、套接字、数据传输路径及新型网络加速技术; 第9章系统虚拟化,介绍了虚拟机监视器的基本概念和基本任务、基于Linux内核的虚拟机监视器及容器技术; 第10章openEuler智能调优——ATune,介绍了ATune的基本原理及其智能决策和自动调优两个核心模块的关键技术。

本书适合作为广大高校计算机专业操作系统课程的辅助教材,也可以作为操作系统内核开发者的自学参考用书。


作者简介

张尧学:中国工程院院士,清华大学计算机系教授,湖南省科协主席,教育部软件工程专业教学指导委员会主任委员。长期从事操作系统、新型网络计算模式、计算机网络等领域研究。以第一完成人获得国家自然科学一等奖1项(2014年),国家技术发明二等奖1项(2004年),国家科学技术进步二等奖2项(2001年和1998年),省部级奖励5项,何梁何利科学与技术进步奖(2005年)。曾任中南大学校长(2011—2017年)。现担任Chinese Journal of Electronics主编,曾主编《计算机操作系统》等多本畅销教材。任炬 中南大学计算机学院教授,湖南省杰出青年基金获得者,中国科协青年托举人才,湖南省湖湘青年英才。研究方向包括物联网、操作系统、网络计算、网络大数据等。在国际著名期刊和会议上发表80多篇论文,曾获2019年IEEE TCSC早期职业成就奖以及多个国际会议最佳论文奖。现任IEEE TVT和PPNA两个国际期刊编委,曾任多个国际会议主席、程序委员会主席、领域主席等职务。

任炬:中南大学计算机学院教授,湖南省杰出青年基金获得者,中国科协青年托举人才,湖南省湖湘青年英才。研究方向包括物联网、操作系统、网络计算、网络大数据等。在国际著名期刊和会议上发表80多篇论文,曾获2019年IEEE TCSC早期职业成就奖以及多个国际会议最佳论文奖。现任IEEE TVT和PPNA两个国际期刊编委,曾任多个国际会议主席、程序委员会主席、领域主席等职务。


编辑推荐

华为公司官方出品!著名计算机科学家张尧学院士主编!深入解析操作系统原理及openEuler核心技术!华为技术有限公司 创立于1987年,是全球领先的ICT(Information and Communications Technology,信息和通信技术)基础设施和智能终端提供商,致力于把数字世界带入每个人、每个家庭、每个组织,构建万物互联的智能世界。目前,华为约有19.4万名员工,业务遍及170多个国家和地区,为30多亿人提供服务。华为在通信网络、IT、智能终端和云服务等领域为客户提供有竞争力、安全可信赖的产品、解决方案与服务,与生态伙伴开放合作,持续为客户创造价值,释放个人潜能,丰富家庭生活,激发组织创新。华为坚持围绕客户需求持续创新,加大基础研究投入,厚积薄发,推动世界进步。

前言

序:openEuler推动开源创新

Linux作为使用最广泛的操作系统发展了近30年,已经成为IT(Information Technology)产业最基础的平台。openEuler是一个基于Linux Kernel(内核)的开源社区,也是一个开放创新的平台,不但承载着对鲲鹏等多种芯片架构的支持,而且承载着对操作系统、体系架构未来的探索任务。openEuler社区最终会成为一个引领技术创新的开源生态系统。开源是一种产业生态的建设模式,在世界范围内,越来越多的公司利用开源促进产业链生态的建设,甚至引导产业的发展方向,形成了从开源社区到基于开源的企业级产品与服务的生态链。

开源是一种协作创新模式,通过开源,软件开发的速度大大加快,产业标准的形成时间大大缩短。同时,开放协作的环境更容易激发创新的思维和创造的灵感,对于开源社区不断涌现的创新,我们已经喜闻乐见。

开源也是一种文化交流的方式,通过开源,可以集合全世界的智慧,在世界的不同角落,共同协作完成大型软件系统的开发和演进。这在很大程度上也加深了世界人民之间的沟通和了解。我始终相信,沟通与交流是全世界构建美好未来的钥匙。

华为公司持续投入基础软件的建设,现在将历史的积累贡献出来,创建了openEuler社区,并且基于openEuler操作系统编写了本书。全书深入地介绍了openEuler操作系统的设计原理与实现细节,并结合鲲鹏芯片对软硬件协同设计做了简明扼要的讲解。

我相信,本书仅仅是一个开始,读者想要真正学以致用就要参与到社区中去,希望广大师生能融入到openEuler社区中,去沟通、去分享、去贡献、去创造,共同推动操作系统研究的发展与创新。

华为云与计算BG总裁侯金龙

2020年8月


前言

操作系统作为最核心的基础软件,也被誉为计算机的“灵魂”。无论对于计算机相关专业的学生或研究人员,还是对于计算机应用开发人员,对操作系统原理的学习和理解都至关重要,而通过全面分析一个优秀操作系统的设计思路和实现方案来加深对操作系统原理的理解和应用,是操作系统学习过程中一个行之有效的方法。

本书以openEuler操作系统的具体设计与实现为例,详细介绍了当代操作系统的基本原理和核心思想。openEuler是华为公司发布的一个开源、免费的Linux发行版平台,其前身是华为公司历经近十年研制和发展的服务器操作系统EulerOS,以安全、稳定、高效为目标,成功支持了华为的各种产品和解决方案。本书作为第一本详细介绍openEuler操作系统技术原理的书籍,作者也希望能借此让更多读者和组织了解openEuler,共同推动openEuler社区的发展。

本书注重理论与实践的紧密结合,通过以实际案例来引出操作系统的基本原理,再以openEuler的具体实现来阐述操作系统的设计思想,让读者更深入理解操作系统核心技术的设计动机和实现方案。全书共分为10章,涵盖了操作系统概述、鲲鹏处理器、进程与线程、CPU调度、内存管理、线程/进程间通信、文件系统、跨机器通信、系统虚拟化以及openEuler智能调优——ATune等操作系统核心内容和openEuler操作系统的特色创新技术。

本书定位为操作系统课程的教学参考书,其主要受众包括计算机相关专业的本科生和研究生、从事计算机相关领域研究的专业人士及对计算机操作系统原理感兴趣的读者。因操作系统作为管理计算机硬件资源的核心软件,且现代操作系统设计往往与硬件特性结合紧密,所以读者在阅读此书前,除需要掌握基本的编程基础外(本书采用C语言),还需要了解一定的计算机组成原理和汇编语言知识。

作者首先要感谢华为公司张相锋博士、赵磊、朱晨及众多华为工程师在本书写作过程中提供的相关资料与技术支持。他们在本书的撰写和修订过程中,提出了非常详尽的意见和建议,对提升本书的质量提供了非常大的帮助。特别感谢中南大学透明计算实验室操作系统小组全体同学(卢军、高迎港、郭旭城、丁标、左倩、瞿沁麒、王恒宇、王灏洋)对本书撰写工作所做出的极大贡献。本书的筹备时间非常紧促且正值新冠疫情期间,大家共同全力以赴才保证了本书的顺利完成。感谢清华大学出版社盛东亮老师和钟志芳等老师的大力支持,他们细致且高效的工作保证了本书的质量,又让本书得以尽早与公众见面。

由于编者水平有限,书中难免有疏漏和不足之处,恳请读者批评指正!

作者

2020年8月


目录

第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操作系统的设计目标0

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.7openEluer操作系统简介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中线程的实现

本章小结

openEuler操作系统

目录

第4章CPU调度

4.1调度性能指标

4.2常见的调度算法

4.2.1先进先出

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.3NUMAAware 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.2KVM

9.2.3QEMU

9.2.4Libvirt

9.3CPU虚拟化

9.3.1基本思想

9.3.2受限制的执行

9.3.3上下文切换

9.3.4openEuler中的实现

9.4内存虚拟化

9.4.1基本思想

9.4.2地址映射

9.4.3访存请求截获

9.4.4openEuler中的实现

9.5I/O虚拟化

9.5.1三个基本任务

9.5.2三种实现方式

9.5.3openEuler中的实现

9.6容器

9.6.1简介

9.6.2命名空间

9.6.3控制组

9.6.4iSulad容器原理

本章小结

第10章openEuler智能调优——ATune

10.1基本原理

10.2智能决策

10.3自动调优

本章小结

参考文献

附录A缩略语

短评

物流很快。

2020-10-09 10:39:41

很不错的一本欧拉系统的书籍

2020-10-15 15:06:27

好书,值得购买,比较新,好好看看

2020-09-27 10:38:39

产品特色