注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)Linux內(nèi)核分析及應(yīng)用

Linux內(nèi)核分析及應(yīng)用

Linux內(nèi)核分析及應(yīng)用

定 價(jià):¥79.00

作 者: 陳科 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): Linux/Unix技術(shù)叢書
標(biāo) 簽: 暫缺

ISBN: 9787111604082 出版時(shí)間: 2018-08-01 包裝: 平裝
開本: 16開 頁(yè)數(shù): 274 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書由架構(gòu)師親力打造,分享了他十多年后端開發(fā)經(jīng)驗(yàn),特別是圍繞Linux系統(tǒng)進(jìn)行的服務(wù)開發(fā)經(jīng)驗(yàn)。本書共8章,主要內(nèi)容包括:第1章介紹Linux對(duì)進(jìn)程和線程的實(shí)現(xiàn)原理,并分析了Memcached和Nginx工作進(jìn)程池模型的實(shí)現(xiàn);第2章介紹并發(fā)的概念以及Linux中的并發(fā)相關(guān)工具,然后分析常見開源軟件的并發(fā)問(wèn)題;第3章介紹Linux是如何進(jìn)行內(nèi)存管理的,分析了Memcached和Redis的內(nèi)存管理機(jī)制。第4章介紹Linux系統(tǒng)對(duì)中斷進(jìn)行的封裝和實(shí)現(xiàn);第5章介紹I/O的全過(guò)程,以及某些開源系統(tǒng)中I/O相關(guān)調(diào)用的實(shí)現(xiàn)等;第6章介紹Linux文件系統(tǒng)的整體架構(gòu)及核心概念,然后介紹ext4文件系統(tǒng)的特點(diǎn),以及TFS小文件系統(tǒng)的設(shè)計(jì)思路;第7章介紹Linux進(jìn)程隔離技術(shù),以及Docker容器的部分實(shí)現(xiàn);第8章介紹Linux網(wǎng)絡(luò)層數(shù)據(jù)的流轉(zhuǎn)過(guò)程,以及l(fā)vs如何在netfilter上定制,后分析了Nginx服務(wù)器socket監(jiān)聽初始化的過(guò)程。

作者簡(jiǎn)介

  陳科 曾在阿里巴巴等多家互聯(lián)網(wǎng)公司擔(dān)任架構(gòu)師、技術(shù)總監(jiān)等職位,參與設(shè)計(jì)和開發(fā)了多個(gè)應(yīng)對(duì)高并發(fā)、高可用的互聯(lián)網(wǎng)系統(tǒng),對(duì)Linux系統(tǒng)以及圍繞Linux生態(tài)體系的開源軟件有深入研究,熱愛分享,在UPYUN、DBA+、高可用架構(gòu)群等組織的會(huì)議或者討論組中做過(guò)專題分享。

圖書目錄

Contents 目  錄
前言
第1章 進(jìn)程與線程 1
1.1 進(jìn)程和線程的概念 1
1.1.1 進(jìn)程的歷史 1
1.1.2 線程的不同玩法 3
1.2 Linux對(duì)進(jìn)程和線程的實(shí)現(xiàn) 5
1.2.1 Linux中的進(jìn)程實(shí)現(xiàn) 6
1.2.2 進(jìn)程創(chuàng)建之后 12
1.2.3 內(nèi)核線程和進(jìn)程的區(qū)別 13
1.2.4 用戶線程庫(kù)pthread 15
1.3 進(jìn)程的調(diào)度 16
1.3.1 進(jìn)程調(diào)度機(jī)制的架構(gòu) 16
1.3.2 進(jìn)程切換的原理 19
1.3.3 調(diào)度中的CPU親和度 21
1.4 在應(yīng)用程序中管理進(jìn)程和線程 22
1.4.1 Memcached線程池模型分析 22
1.4.2 Nginx進(jìn)程模型分析 24
1.5 處理進(jìn)程和線程的相關(guān)工具 25
1.5.1 開發(fā)環(huán)境調(diào)試線程 25
1.5.2 進(jìn)程崩潰調(diào)試方法 26
1.5.3 strace工具 28
1.5.4 SystemTap工具 29
1.5.5 DTrace工具 30
1.6 本章小結(jié) 32
第2章 并發(fā) 33
2.1 什么是并發(fā) 34
2.1.1 并發(fā)是如何產(chǎn)生的 34
2.1.2 并發(fā)會(huì)帶來(lái)什么問(wèn)題 34
2.1.3 如何解決并發(fā)帶來(lái)的問(wèn)題 35
2.2 操作系統(tǒng)會(huì)在哪些場(chǎng)景遇到并發(fā) 35
2.3 Linux中并發(fā)工具的實(shí)現(xiàn) 37
2.3.1 原子變量 37
2.3.2 自旋鎖 38
2.3.3 信號(hào)量 42
2.3.4 互斥鎖 43
2.3.5 讀寫鎖 43
2.3.6 搶占 44
2.3.7 per-cpu變量 45
2.3.8 RCU機(jī)制 48
2.3.9 內(nèi)存屏障 51
2.4 常見開源軟件中的并發(fā)問(wèn)題分析 54
2.4.1 Nginx原子性 54
2.4.2 Memcached中的互斥鎖 55
2.4.3 Redis無(wú)鎖解決方案 56
2.4.4 Linux中驚群?jiǎn)栴}分析 57
2.4.5 解決MyCat同步問(wèn)題 65
2.4.6 false-sharing問(wèn)題解決方案 67
2.5 本章小結(jié) 69
第3章 內(nèi)存管理 70
3.1 為什么需要內(nèi)存管理 71
3.2 MMU和地址空間 73
3.2.1 虛擬地址、線性地址、物理地址 73
3.2.2 MMU的內(nèi)存管理機(jī)制 74
3.3 Linux中的分段和分頁(yè)機(jī)制 79
3.3.1 分段機(jī)制 79
3.3.2 分頁(yè)機(jī)制 80
3.4 Linux的內(nèi)存管理 82
3.4.1 物理內(nèi)存管理 83
3.4.2 進(jìn)程地址空間管理 86
3.5 Linux的內(nèi)存分配和管理 89
3.5.1 物理內(nèi)存分配算法 89
3.5.2 slab分配器 95
3.5.3 內(nèi)核態(tài)內(nèi)存管理 105
3.5.4 用戶態(tài)內(nèi)存申請(qǐng) 109
3.6 棧內(nèi)存分配和管理 109
3.7 內(nèi)存管理案例分析 110
3.7.1 Memcached內(nèi)存管理機(jī)制分析 110
3.7.2 Redis內(nèi)存管理機(jī)制分析 113
3.8 本章小結(jié) 115
第4章 中斷機(jī)制 116
4.1 x86系統(tǒng)的中斷機(jī)制 116
4.1.1 x86中斷架構(gòu) 117
4.1.2 x86在保護(hù)模式下的中斷 117
4.2 Linux對(duì)中斷的支持和實(shí)現(xiàn) 119
4.2.1 初始化IRQ中斷門 120
4.2.2 中斷響應(yīng)流程 120
4.2.3 中斷回調(diào)handler注冊(cè)過(guò)程 122
4.3 Linux加速中斷處理的機(jī)制 122
4.3.1 軟中斷 122
4.3.2 tasklet 126
4.3.3 工作隊(duì)列 128
4.4 系統(tǒng)調(diào)用 132
4.5 時(shí)鐘中斷 134
4.6 信號(hào)處理機(jī)制 135
4.7 Nginx信號(hào)處理機(jī)制 139
4.8 本章小結(jié) 141
第5章 輸入輸出 142
5.1 I/O在Linux中的生命周期 143
5.1.1 vfs層 143
5.1.2 文件系統(tǒng)層 144
5.1.3 Block層 152
5.1.4 scsi層 156
5.1.5 I/O流程總結(jié) 157
5.2 I/O調(diào)度器 159
5.3 多隊(duì)列機(jī)制 161
5.4 I/O多路復(fù)用實(shí)現(xiàn) 163
5.5 Redis對(duì)epoll的封裝 170
5.6 Nginx文件異步I/O 175
5.7 tail指令為何牛 177
5.8 零拷貝技術(shù)應(yīng)用分析 179
5.8.1 mmap 180
5.8.2 sendf?ile 181
5.8.3 mmap和sendf?ile在開源軟件中的使用 183
5.9 本章小結(jié) 186
第6章 文件系統(tǒng) 187
6.1 Linux文件系統(tǒng)架構(gòu) 187
6.2 文件系統(tǒng)的主要功能 189
6.2.1 文件系統(tǒng)的安裝 190
6.2.2 文件路徑查找 191
6.3 ext4文件系統(tǒng) 201
6.3.1 磁盤布局 201
6.3.2 inode定位 203
6.3.3 碎片問(wèn)題解決方案 204
6.3.4 extent tree結(jié)構(gòu) 204
6.4 淘寶TFS小文件系統(tǒng)分析 206
6.5 本章小結(jié) 207
第7章 Linux的進(jìn)程隔離技術(shù)與Docker容器 208
7.1 虛擬化相關(guān)技術(shù) 208
7.2 Linux進(jìn)程隔離技術(shù) 209
7.2.1 chroot 209
7.2.2 namespace 210
7.2.3 cgroup 212
7.3 Docker容器的部分實(shí)現(xiàn) 219
7.3.1 新版Docker架構(gòu) 220
7.3.2 containerd的實(shí)現(xiàn) 221
7.4 本章小結(jié) 241
第8章 Linux網(wǎng)絡(luò)層數(shù)據(jù)流分析 242
8.1 數(shù)據(jù)在網(wǎng)絡(luò)層的流轉(zhuǎn) 242
8.1.1 sk_buff結(jié)構(gòu) 243
8.1.2 數(shù)據(jù)流轉(zhuǎn)過(guò)程 244
8.2 socket接口層的實(shí)現(xiàn) 248
8.2.1 socket系統(tǒng)初始化 248
8.2.2 socket創(chuàng)建 250
8.2.3 socket綁定 251
8.2.4 socket監(jiān)聽 253
8.2.5 socket接受連接 254
8.2.6 新連接的到來(lái) 257
8.2.7 socket整體流程 259
8.3 netf?ilter和lvs 260
8.3.1 netf?ilter 260
8.3.2 lvs 263
8.4 網(wǎng)絡(luò)相關(guān)的一些參數(shù) 265
8.4.1 Java socket相關(guān)的參數(shù) 265
8.4.2 Linux TCP相關(guān)隊(duì)列 267
8.5 Nginx服務(wù)器監(jiān)聽socket初始化過(guò)程 268
8.6 本章小結(jié) 274

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)