中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊
> >>
奔跑吧Linux 內核 入門篇

包郵 奔跑吧Linux 內核 入門篇

作者:張天飛
出版社:人民郵電出版社出版時間:2019-02-01
開本: 16開 頁數: 365
中 圖 價:¥50.8(5.7折) 定價  ¥89.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>
買過本商品的人還買了

奔跑吧Linux 內核 入門篇 版權信息

奔跑吧Linux 內核 入門篇 本書特色

1.原理+基礎,從調試Linux內核到動手編寫一個簡單的內核模塊,真正從零開始學習Linux內核。 2.實驗+案例,70余個創新實驗貫穿全書,與你分享業內一線項目經驗。 3.課件+視頻,教學資源豐富,視頻講解透徹,與你共享精品在線配套資源(可在異步社區下載)。 4.涵蓋當前Linux社區中新的開發工具和社區運作方式,反映Linux內核社區新發展。

奔跑吧Linux 內核 入門篇 內容簡介

本書是一本介紹Linux內核實踐的入門書,基于Linux 4.0內核,重點講解Linux內核的理論和實驗。本書分為12章,包括Linux系統入門、Linux內核基礎知識、內核編譯和調試、內核模塊、簡單的字符設備驅動、系統調用、內存管理、進程管理、同步管理、中斷管理、調試和性能優化,以及如何參與開源社區等內容。此外,本書還介紹了Linux內核社區常用的開發工具和理論,如Vim 8和git工具等。書中包括70多個實驗,幫助讀者深入理解Linux內核。

奔跑吧Linux 內核 入門篇 目錄

第 1章 Linux系統入門1
1.1 Linux的發展歷史 1
1.2 Linux發行版 2
1.2.1 Red Hat Linux 2
1.2.2 Debian Linux 3
1.2.3 SuSE Linux 4
1.2.4 優麒麟Linux 4
1.3 Linux內核 5
1.3.1 宏內核和微內核 5
1.3.2 Linux內核概貌 6
1.4 如何學習Linux內核 9
1.5 Linux內核實驗入門 10
1.5.1 實驗1:在虛擬機中安裝優麒麟Linux 18.04系統 10
1.5.2 實驗2:給優麒麟Linux系統更換“心臟” 14
1.5.3 實驗3:使用定制的內核runninglinuxkernel 15
1.5.4 實驗4:如何編譯和運行一個ARM Linux內核 19
第 2章 Linux內核基礎知識 22
2.1 Linux常用的編譯工具 22
2.1.1 GCC工具 22
2.1.2 ARM GCC 23
2.1.3 GCC編譯 24
2.2 Linux內核中常用的C語言技巧 25
2.3 Linux內核中常用的數據結構和算法 31
2.3.1 鏈表 31
2.3.2 紅黑樹 34
2.3.3 無鎖環形緩沖區 36
2.4 Vim工具的使用 38
2.4.1 Vim 8介紹 38
2.4.2 Vim的基本模式 38
2.4.3 Vim中3種模式的切換 39
2.4.4 Vim光標的移動 40
2.4.5 刪除、復制和粘貼 41
2.4.6 查找和替換 41
2.4.7 文件相關 41
2.5 git工具的使用 42
2.5.1 安裝git 43
2.5.2 git基本操作 43
2.5.3 分支管理 46
2.6 實驗 48
2.6.1 實驗1:GCC編譯 48
2.6.2 實驗2:內核鏈表 51
2.6.3 實驗3:紅黑樹 52
2.6.4 實驗4:使用Vim工具 52
2.6.5 實驗5:把Vim打造成一個強大的IDE編輯工具 52
2.6.6 實驗6:建立一個git本地倉庫 60
2.6.7 實驗7:解決合并分支沖突 62
2.6.8 實驗8:利用git來管理Linux內核開發 65
2.6.9 實驗9:利用git來管理項目代碼 67
第3章 內核編譯和調試 73
3.1 內核配置 73
3.1.1 內核配置工具 73
3.1.2 .config文件 74
3.2 實驗1:通過QEMU調試ARM Linux內核 76
3.3 實驗2:通過QEMU調試ARMv8的Linux內核 78
3.4 實驗3:通過Eclipse+QEMU單步調試內核 81
3.5 實驗4:在QEMU中添加文件系統的支持 85
第4章 內核模塊 86
4.1 從一個內核模塊開始 86
4.2 模塊參數 90
4.3 符號共享 92
4.4 實驗 93
4.4.1 實驗1:編寫一個簡單的內核模塊 93
4.4.2 實驗2:向內核模塊傳遞參數 95
4.4.3 實驗3:在模塊之間導出符號 95
第5章 簡單的字符設備驅動 96
5.1 實驗1:從一個簡單的字符設備開始 97
5.2 字符設備驅動詳解 102
5.2.1 字符設備驅動的抽象 102
5.2.2 設備號的管理 104
5.2.3 設備節點 104
5.2.4 字符設備操作方法集 105
5.3 實驗2:使用misc機制來創建設備 107
5.4 一個簡單的虛擬設備 109
5.4.1 實驗3:為虛擬設備編寫驅動 109
5.4.2 實驗4:使用KFIFO改進設備驅動 112
5.5 阻塞I O和非阻塞I O 115
5.5.1 實驗5:把虛擬設備驅動改成非阻塞模式 115
5.5.2 實驗6:把虛擬設備驅動改成阻塞模式 118
5.6 I O多路復用 122
5.6.1 Linux的I O多路復用 122
5.6.2 實驗7:向虛擬設備中添加I O多路復用支持 123
5.7 實驗8:為什么不能喚醒讀寫進程 128
5.8 實驗9:向虛擬設備中添加異步通知 129
5.9 本章小結 133
第6章 系統調用 134
6.1 系統調用概念 134
6.1.1 系統調用和POSIX標準 135
6.1.2 系統調用表 135
6.1.3 用程序訪問系統調用 136
6.1.4 新增系統調用 137
6.2 實驗 137
6.2.1 實驗1:在ARM32機器上新增一個系統調用 137
6.2.2 實驗2:在優麒麟Linux機器上新增一個系統調用 138

第7章 內存管理 139
7.1 從硬件角度看內存管理 139
7.1.1 內存管理的“遠古時代” 139
7.1.2 分段機制 141
7.1.3 分頁機制 142
7.1.4 虛擬地址到物理地址的轉換 143
7.2 從軟件角度看內存管理 144
7.2.1 free命令 144
7.2.2 從應用編程角度看內存管理 145
7.2.3 從內存布局圖角度看內存管理 146
7.2.4 從進程角度看內存管理 150
7.3 物理內存管理 154
7.3.1 物理頁面 155
7.3.2 內存管理區 159
7.3.3 分配和釋放頁面 162
7.3.4 分配小塊內存 170
7.4 虛擬內存管理 177
7.4.1 進程地址空間 177
7.4.2 內存描述符mm_struct 178
7.4.3 VMA管理 180
7.4.4 malloc分配函數 183
7.4.5 mmap 185
7.5 缺頁異常 188
7.5.1 do_page_fault函數 189
7.5.2 匿名頁面缺頁異常 190
7.5.3 文件映射缺頁中斷 190
7.5.4 寫時復制缺頁異常 191
7.5.5 缺頁異常小結 192
7.6 內存短缺 193
7.6.1 頁面回收算法 193
7.6.2 OOM Killer機制 194
7.7 內存管理實驗 195
7.7.1 實驗1:查看系統內存信息 195
7.7.2 實驗2:獲取系統的物理內存信息 197
7.7.3 實驗3:分配內存 199
7.7.4 實驗4:slab 200
7.7.5 實驗5:VMA 201
7.7.6 實驗6:mmap 203
7.7.7 實驗7:映射用戶內存 203
7.7.8 實驗8:OOM 204
第8章 進程管理 205
8.1 進程 205
8.1.1 進程的來由 205
8.1.2 進程描述符 207
8.1.3 進程的生命周期 209
8.1.4 進程標識 212
8.1.5 進程間的家族關系 212
8.1.6 獲取當前進程 214
8.2 進程的創建和終止 216
8.2.1 寫時復制技術 216
8.2.2 fork()函數 217
8.2.3 vfork()函數 218
8.2.4 clone()函數 218
8.2.5 內核線程 219
8.2.6 do_fork()函數 219
8.2.7 終止進程 221
8.2.8 僵尸進程和托孤進程 222
8.2.9 進程0和進程1 222
8.3 進程調度 223
8.3.1 進程分類 224
8.3.2 進程優先級 224
8.3.3 時間片 225
8.3.4 經典調度算法 225
8.3.5 Linux O(n)調度算法 228
8.3.6 Linux O(1)調度算法 228
8.3.7 Linux CFS調度算法 228
8.3.8 進程切換 233
8.3.9 與調度相關的數據結構 239
8.4 多核調度 241
8.4.1 調度域和調度組 241
8.4.2 負載計算 244
8.4.3 負載均衡算法 245
8.5 實驗 246
8.5.1 實驗1:fork和clone 246
8.5.2 實驗2:內核線程 247
8.5.3 實驗3:后臺守護進程 247
8.5.4 實驗4:進程權限 247
8.5.5 實驗5:設置優先級 247
8.5.6 實驗6:per-cpu變量 248
第9章 同步管理 250
9.1 原子操作與內存屏障 251
9.1.1 原子操作 251
9.1.2 內存屏障 253
9.2 自旋鎖機制 254
9.2.1 自旋鎖定義 254
9.2.2 自旋鎖變種 256
9.2.3 自旋鎖和raw_spin_lock 257
9.2.4 自旋鎖的改進 257
9.3 信號量 258
9.4 互斥體 259
9.5 讀寫鎖 261
9.5.1 讀寫鎖定義 261
9.5.2 讀寫信號量 262
9.6 RCU 264
9.7 等待隊列 267
9.7.1 等待隊列頭 267
9.7.2 等待隊列節點 268
9.8 實驗 269
9.8.1 實驗1:自旋鎖 269
9.8.2 實驗2:互斥鎖 269
9.8.3 實驗3:RCU 269
第 10章 中斷管理 270
10.1 Linux中斷管理機制 270
10.1.1 ARM中斷控制器 271
10.1.2 硬件中斷號和Linux中斷號的映射 275
10.1.3 注冊中斷 276
10.2 軟中斷和tasklet 278
10.2.1 SoftIRQ軟中斷 279
10.2.2 tasklet 280
10.2.3 local_bh_disable local_bh_enable 281
10.2.4 本節小結 282
10.3 工作隊列機制 282
10.3.1 工作隊列類型 283
10.3.2 使用工作隊列 285
10.3.3 本節小結 285
10.4 實驗 286
10.4.1 實驗1:tasklet 286
10.4.2 實驗2:工作隊列 286
10.4.3 實驗3:定時器和內核線程 287
第 11章 調試和性能優化 288
11.1 printk和動態輸出 289
11.1.1 printk輸出函數 289
11.1.2 動態輸出 290
11.1.3 實驗1:printk 292
11.1.4 實驗2:動態輸出 292
11.2 proc和debugfs 293
11.2.1 proc文件系統 293
11.2.2 sys文件系統 295
11.2.3 debugfs 296
11.2.4 實驗3:procfs 297
11.2.5 實驗4:sysfs 298
11.2.6 實驗5:debugfs 300
11.3 ftrace 301
11.3.1 irqs跟蹤器 302
11.3.2 preemptoff跟蹤器 304
11.3.3 preemptirqsoff跟蹤器 305
11.3.4 function跟蹤器 306
11.3.5 動態ftrace 307
11.3.6 事件跟蹤 308
11.3.7 實驗6:使用frace 310
11.3.8 實驗7:添加一個新的跟蹤點 311
11.3.9 實驗8:使用示蹤標志 314
11.3.10 實驗9:使用kernelshark來分析數據 317
11.4 實驗10:分析oops錯誤 319
11.5 perf性能分析工具 323
11.5.1 實驗11:使用perf工具來進行性能分析 328
11.5.2 實驗12:采集perf數據生成火焰圖 329
11.6 內存檢測 329
11.6.1 實驗13:使用slub_debug檢查內存泄漏 330
11.6.2 實驗14:使用kmemleak檢查內存泄漏 335
11.6.3 實驗15:使用kasan檢查內存泄漏 337
11.6.4 實驗16:使用valgrind檢查內存泄漏 340
11.7 實驗17:kdump 342
11.8 性能和測試 348
11.8.1 性能測試概述 348
11.8.2 實驗18:使用lkp-tests工具進行性能測試 349
第 12章 開源社區 350
12.1 什么是開源社區 350
12.1.1 開源軟件的發展歷史 350
12.1.2 Linux基金會 351
12.1.3 開源協議 351
12.1.4 Linux內核社區 353
12.1.5 國內開源社區 354
12.2 參與開源社區 354
12.2.1 參與開源項目的好處 354
12.2.2 如何參與開源項目 355
12.3 實驗1:使用cppcheck檢查代碼 356
12.4 實驗2:提交第 一個Linux內核補丁 357
12.5 實驗3:管理和提交多個補丁組成的補丁集 359
12.6 實驗4:在Gitee中創建一個開源項目 363
參考文獻 366
展開全部

奔跑吧Linux 內核 入門篇 作者簡介

張天飛,筆名“笨叔叔”,Linux內核愛好者,從事Linux內核和驅動開發十余年,曾在多家芯片公司從事過手機芯片底層軟件開發和客戶支持工作。著有《奔跑吧 Linux內核》一書。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | 涿州网站建设_网站设计_网站制作_做网站_固安良言多米网络公司 | 安徽华耐泵阀有限公司-官方网站| 石家庄律师_石家庄刑事辩护律师_石家庄取保候审-河北万垚律师事务所 | 超声波清洗机-超声波清洗设备定制生产厂家 - 深圳市冠博科技实业有限公司 | 中式装修设计_全屋定制家具_实木仿古门窗花格厂家-喜迎门 | 吊篮式|移动式冷热冲击试验箱-二槽冷热冲击试验箱-广东科宝 | 无锡不干胶标签,卷筒标签,无锡瑞彩包装材料有限公司 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 东莞猎头公司_深圳猎头公司_广州猎头公司-广东万诚猎头提供企业中高端人才招聘服务 | 找果网 | 苹果手机找回方法,苹果iPhone手机丢了找回,认准找果网! | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 领袖户外_深度旅游、摄影旅游、小团慢旅行、驴友网 | 生物颗粒燃烧机-生物质燃烧机-热风炉-生物颗粒蒸汽发生器-丽水市久凯能源设备有限公司 | 南京种植牙医院【官方挂号】_南京治疗种植牙医院那个好_南京看种植牙哪里好_南京茀莱堡口腔医院 尼龙PA610树脂,尼龙PA612树脂,尼龙PA1010树脂,透明尼龙-谷骐科技【官网】 | 广州网站建设_小程序开发_番禺网站建设_佛山网站建设_粤联网络 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 隔离变压器-伺服变压器--输入输出电抗器-深圳市德而沃电气有限公司 | 桂林腻子粉_内墙外墙抗裂砂浆腻子粉推荐广西鑫达涂料厂家供应 | ?水马注水围挡_塑料注水围挡_防撞桶-常州瑞轩水马注水围挡有限公司 | 碳钢法兰厂家,非标法兰,定制异型,法兰生产厂家-河北九瑞管道 | 代做标书-代写标书-专业标书文件编辑-「深圳卓越创兴公司」 | 熔体泵_熔体出料泵_高温熔体泵-郑州海科熔体泵有限公司 | 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 合景一建-无尘车间设计施工_食品医药洁净车间工程装修总承包公司 | 吸污车_吸粪车_抽粪车_电动三轮吸粪车_真空吸污车_高压清洗吸污车-远大汽车制造有限公司 | 聚合氯化铝厂家-聚合氯化铝铁价格-河南洁康环保科技 | 执业药师报名条件,考试时间,考试真题,报名入口—首页 | 金属软管_不锈钢金属软管_巩义市润达管道设备制造有限公司 | 保定市泰宏机械制造厂-河北铸件厂-铸造厂-铸件加工-河北大件加工 | 沈阳建筑设计公司_加固改造设计_厂房设计_设计资质加盟【金辉设计】 | 硫酸亚铁-聚合硫酸铁-除氟除磷剂-复合碳源-污水处理药剂厂家—长隆科技 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 复合土工膜厂家|hdpe防渗土工膜|复合防渗土工布|玻璃纤维|双向塑料土工格栅-安徽路建新材料有限公司 | 皮带机_移动皮带机_大倾角皮带机_皮带机厂家 - 新乡市国盛机械设备有限公司 | 国际高中-国际学校-一站式择校服务-远播国际教育| elisa试剂盒价格-酶联免疫试剂盒-猪elisa试剂盒-上海恒远生物科技有限公司 | 螺杆泵_中成泵业| 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 |