openEuler操作系統(第2版)

任炬、張堯學

  • openEuler操作系統(第2版)-preview-1
  • openEuler操作系統(第2版)-preview-2
  • openEuler操作系統(第2版)-preview-3
openEuler操作系統(第2版)-preview-1

商品描述

本書是一部系統解析操作系統原理及 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的基本原理及其智能決策和自動調優兩個核 心模塊的關鍵技術。 本書適合作為廣大高校電腦專業操作系統課程的教輔教材,也可以作為操作系統內核開發者的自 學參考用書。

目錄大綱

CONTENTS

目錄

第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.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.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智能調優——ATune

12.1基本原理

12.2智能決策

12.3自動調優

本章小結

參考文獻

附錄A縮略語