Linux操作系統(tǒng)應(yīng)用與開發(fā)教程(21世紀高等學(xué)校計算機專業(yè)實用規(guī)劃教材)
定 價:49.5 元
- 作者:邱鐵
- 出版時間:2016/7/8
- ISBN:9787302440321
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP316.89
- 頁碼:374
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書針對學(xué)習(xí)者如何快速掌握Linux應(yīng)用、開發(fā)、內(nèi)核編程與高級編程,以新的Linux內(nèi)核版本3.0.x~3.19.x為依據(jù),設(shè)計典型實例,并對開發(fā)場景進行詳細講解。在內(nèi)容設(shè)計上,本書采取了循序漸進的原則,對Linux系統(tǒng)知識進行精心策劃,使Linux初學(xué)者能夠以“Linux應(yīng)用基礎(chǔ)→編程開發(fā)→內(nèi)核源碼與場景分析→高級編程”為主線,以階梯式前進的方式進行學(xué)習(xí)。本書立足于基礎(chǔ),實例經(jīng)典,深入實踐。讀者可以在較低起點下進行高效的理論與實踐學(xué)習(xí),為Linux系統(tǒng)應(yīng)用與開發(fā)打下堅實的基礎(chǔ)。本書可作為高等院校計算機、信息類大學(xué)生、研究生進行操作系統(tǒng)學(xué)習(xí)和開發(fā)的教材或參考書,也可作為Linux開發(fā)人員參考用書和廣大的Linux愛好者自學(xué)教程。
以新的Linux內(nèi)核版本3.0.x~3.19.x為依據(jù),設(shè)計典型實例,并對開發(fā)場景進行詳細講解;
在內(nèi)容設(shè)計上,本書采取了循序漸進的原則,對Linux系統(tǒng)知識進行精心策劃;
以“Linux應(yīng)用基礎(chǔ)→編程開發(fā)→內(nèi)核源碼與場景分析→圖形界面高級編程”階梯前進的方式對Linux知識進行系統(tǒng)化組織;
讀者能夠低起點、高效率的學(xué)習(xí)理論、深入實踐,為Linux系統(tǒng)應(yīng)用與開發(fā)打下堅實的基礎(chǔ);
立足于基礎(chǔ),實例經(jīng)典,深入實踐。
第1部分 Linux系統(tǒng)應(yīng)用篇
第1章 Linux的安裝與配置 2
1.1 旅程開始 2
1.2 本書使用Linux環(huán)境介紹 2
1.3 Linux的安裝 4
1.3.1 獲取Ubuntu 14.04 4
1.3.2 選擇安裝平臺 4
1.3.3 進入Ubuntu 14.04的安裝程序 9
1.3.4 安裝Ubuntu 14.04 10
1.4 Linux的配置 19
1.4.1 認識Gnome桌面環(huán)境 19
1.4.2 Ubuntu的配置 22
1.4.3 軟件安裝與升級 24
第2章 Linux常用命令訓(xùn)練 26
2.1 關(guān)于Shell 26
2.2 文件操作命令 27
2.2.1 調(diào)用終端控制臺 27
2.2.2 文件瀏覽 27
2.2.3 文件復(fù)制 29
2.2.4 文件移動 29
2.2.5 文件鏈接 30
2.2.6 文件刪除 30
2.2.7 文件壓縮和備份 31
2.2.8 修改文件屬性 32
2.2.9 文件搜索 34
2.3 目錄操作 36
2.3.1 創(chuàng)建目錄 37
2.3.2 刪除目錄 37
2.3.3 修改當前目錄 37
2.3.4 查看當前目錄 37
2.4 用戶與系統(tǒng)操作 38
2.4.1 用戶切換 38
2.4.2 用戶信息修改 39
2.4.3 關(guān)閉系統(tǒng) 39
2.5 獲得幫助 40
2.5.1 獲取簡要幫助 40
2.5.2 獲得詳細幫助 40
2.6 變量、流、管道操作 41
2.6.1 變量賦值 41
2.6.2 變量的使用 41
2.6.3 流輸出 42
2.6.4 流的重定向 44
2.6.5 管道 45
2.7 進程操作 45
2.7.1 進程查看 46
2.7.2 發(fā)送信號 46
2.7.3 進程切換 47
2.8 網(wǎng)絡(luò)操作 48
2.8.1 網(wǎng)絡(luò)配置 48
2.8.2 ping 48
2.8.3 ARP 49
2.8.4 FTP 50
2.9 其他命令 50
2.9.1 日歷 50
2.9.2 命令歷史記錄 51
2.9.3 后臺操作 51
2.10 思考與練習(xí) 52
第3章 vi/vim編輯器的使用 53
3.1 vi的介紹 53
3.2 vi操作模式 53
3.3 vi的命令 54
3.3.1 狀態(tài)切換命令 54
3.3.2 文件保存與退出 54
3.3.3 光標移動 54
3.3.4 編輯操作 55
3.3.5 字符串搜索替換 55
3.3.6 撤銷與重做 55
3.4 啟動vi編輯器 56
3.5 使用vi進行文字錄入 56
3.6 使用vi修改文本 57
3.7 思考與練習(xí) 58
第4章 Shell程序設(shè)計 59
4.1 Shell編程簡介 59
4.2 系統(tǒng)變量 59
4.3 條件測試 60
4.3.1 文件狀態(tài)測試 60
4.3.2 邏輯操作 60
4.3.3 字符串測試 61
4.3.4 數(shù)值測試 61
4.4 Shell流程控制語句 61
4.4.1 if語句 61
4.4.2 case語句 62
4.4.3 while語句 62
4.4.4 for語句 63
4.5 Shell編程中的常用命令與符號 63
4.5.1 read命令 63
4.5.2 select命令 63
4.5.3 大括號 64
4.5.4 引號 64
4.5.5 注釋 65
4.6 函數(shù) 65
4.7 應(yīng)用實例訓(xùn)練 65
4.8 思考與練習(xí) 67
第5章 GCC的安裝 68
5.1 GCC簡介 68
5.2 解壓縮工具tar 68
5.3 在Linux下使用源代碼安裝軟件的基本步驟 69
5.4 獲得GCC軟件包 70
5.5 解壓縮軟件包 72
5.6 對源文件進行配置 72
5.7 編譯GCC 74
5.8 安裝GCC 75
5.9 測試GCC安裝結(jié)果 76
5.10 思考與練習(xí) 77
第6章 GNU開發(fā)工具鏈的使用 78
6.1 gcc命令的使用 78
6.2 調(diào)試工具gdb 79
6.2.1 gdb簡介 79
6.2.2 gdb的使用方法 79
6.3 代碼管理make 81
6.3.1 make簡介 81
6.3.2 Makefile文件的格式 82
6.3.3 Makefile文件的一些特性 83
6.3.4 make命令的使用 85
6.4 實例訓(xùn)練 85
6.4.1 編寫程序 87
6.4.2 調(diào)試程序 95
6.4.3 編寫Makefile 98
6.5 思考與練習(xí) 99
第2部分 編程開發(fā)篇
第7章 Linux常用C函數(shù) 102
7.1 使用函數(shù)庫 102
7.2 字符操作 103
7.3 字符串操作 107
7.3.1 數(shù)據(jù)類型轉(zhuǎn)換 108
7.3.2 字符串數(shù)據(jù)處理 111
7.4 數(shù)學(xué)計算操作 116
7.5 數(shù)據(jù)結(jié)構(gòu)與算法操作 118
7.6 日期時間操作 123
7.7 實例訓(xùn)練 125
7.7.1 任務(wù)分析 125
7.7.2 編寫程序 127
7.7.3 編譯、運行 134
7.8 思考與練習(xí) 135
第8章 進程操作 136
8.1 Linux進程工作原理 136
8.2 進程操作函數(shù) 137
8.3 信號量 144
8.4 信號量操作的函數(shù) 145
8.5 應(yīng)用實例訓(xùn)練 146
8.5.1 問題分析 147
8.5.2 代碼編寫 147
8.5.3 編譯與運行 152
8.6 思考與練習(xí) 153
第9章 信號與定時器 154
9.1 進程間通信與信號 154
9.2 Linux系統(tǒng)中的信號 154
9.3 信號操作相關(guān)數(shù)據(jù)結(jié)構(gòu) 155
9.4 信號操作相關(guān)函數(shù) 156
9.5 定時器操作相關(guān)函數(shù) 160
9.6 應(yīng)用實例訓(xùn)練 161
9.6.1 程序分析 162
9.6.2 程序編寫 163
9.6.3 編譯與運行 166
9.7 思考與練習(xí) 167
第10章 內(nèi)存管理與用戶操作 168
10.1 Linux內(nèi)存管理 168
10.2 內(nèi)存操作相關(guān)函數(shù) 169
10.3 Linux系統(tǒng)中的用戶操作 175
10.4 用戶管理相關(guān)數(shù)據(jù)結(jié)構(gòu) 176
10.5 用戶管理相關(guān)函數(shù) 177
10.6 用戶組管理相關(guān)函數(shù) 182
10.7 應(yīng)用實例訓(xùn)練 184
10.7.1 編寫代碼 185
10.7.2 編譯與運行 193
10.8 思考與練習(xí) 194
第11章 文件操作 195
11.1 Linux的文件系統(tǒng) 195
11.2 文件操作相關(guān)函數(shù) 197
11.2.1 文件控制 197
11.2.2 目錄操作 200
11.2.3 文件流讀寫控制 204
11.2.4 文件讀寫操作 211
11.3 應(yīng)用實例訓(xùn)練 217
11.3.1 程序分析 217
11.3.2 程序編寫 218
11.3.3 編譯與運行 225
11.4 思考與練習(xí) 225
第3部分 Linux內(nèi)核篇
第12章 Linux內(nèi)核裁剪與編譯 228
12.1 內(nèi)核編譯選項 228
12.1.1 常規(guī)設(shè)置 228
12.1.2 可加載模塊支持 229
12.1.3 處理器類型及特性 229
12.1.4 可執(zhí)行文件格式 229
12.1.5 網(wǎng)絡(luò)支持 229
12.1.6 設(shè)備驅(qū)動程序選項 230
12.1.7 文件系統(tǒng) 231
12.1.8 對于其他配置選項的說明 231
12.2 內(nèi)核編譯與定制 231
12.2.1 獲得Linux內(nèi)核與補丁 231
12.2.2 準備編譯需要的工具 233
12.2.3 解壓內(nèi)核 234
12.2.4 給內(nèi)核打補丁 234
12.2.5 設(shè)定編譯選項 235
12.2.6 編譯與安裝內(nèi)核 237
12.3 安裝引導(dǎo)配置 238
12.3.1 創(chuàng)建initramfs 238
12.3.2 設(shè)置grub 239
12.3.3 啟動選項 239
12.4 思考與練習(xí) 240
第13章 模塊機制與操作 241
13.1 關(guān)于內(nèi)核編程 241
13.2 Linux的模塊機制 241
13.2.1 Linux內(nèi)核結(jié)構(gòu) 241
13.2.2 模塊的實現(xiàn) 242
13.2.3 Linux模塊導(dǎo)出符號表 244
13.2.4 模塊參數(shù) 244
13.2.5 模塊使用計數(shù) 245
13.3 內(nèi)核調(diào)試函數(shù)printk( ) 245
13.4 應(yīng)用實例訓(xùn)練 247
13.4.1 編寫模塊源程序 247
13.4.2 Linux kernel 2.6.26之前版本模塊編譯、安裝及退出 251
13.4.3 Linux kernel2.6.26以后版本模塊編譯、安裝及退出 253
13.5 思考與練習(xí) 256
第14章 Linux中斷管理 257
14.1 Linux中斷原理 257
14.1.1 中斷控制器 257
14.1.2 中斷處理 258
14.1.3 中斷處理的下半部機制 261
14.2 Tasklet實例解析 262
14.2.1 編寫測試函數(shù) 262
14.2.2 編寫Makefile 263
14.2.3 實驗結(jié)果分析 263
14.3 在嵌入式Linux下開中斷實例解析 264
14.3.1 硬件電路組成 264
14.3.2 編寫中斷服務(wù)模塊 265
14.3.3 結(jié)果分析 267
14.4 思考與練習(xí) 268
第15章 系統(tǒng)調(diào)用 269
15.1 系統(tǒng)調(diào)用原理 269
15.2 系統(tǒng)調(diào)用函數(shù)分析 270
15.2.1 系統(tǒng)調(diào)用入口函數(shù) 270
15.2.2 系統(tǒng)調(diào)用表 273
15.3 添加系統(tǒng)調(diào)用實例訓(xùn)練 275
15.4 思考與練習(xí) 277
第16章 內(nèi)存管理 278
16.1 關(guān)于Linux的內(nèi)存管理 278
16.1.1 動態(tài)存儲管理 279
16.1.2 頁面管理 279
16.1.3 slab分配模式 280
16.2 Linux的內(nèi)存管理函數(shù) 281
16.3 實例訓(xùn)練與分析 282
16.3.1 在用戶空間用valloc/malloc分配內(nèi)存 282
16.3.2 在內(nèi)核空間用kmalloc/vmalloc分配內(nèi)存 282
16.4 思考與練習(xí) 290
第17章 時鐘定時管理 291
17.1 內(nèi)核定時器分類 291
17.1.1 實時時鐘RTC 291
17.1.2 時間戳計數(shù)器TSC 291
17.1.3 可編程間隔定時器PIT 291
17.1.4 SMP系統(tǒng)上的本地APIC定時器 292
17.1.5 高精度計時器 293
17.2 內(nèi)核時鐘管理分析 293
17.2.1 時鐘源及其初始化 293
17.2.2 軟定時器 295
17.3 應(yīng)用實例訓(xùn)練 296
17.3.1 編寫測試實例 296
17.3.2 編寫Makefile 298
17.3.3 編譯及運行結(jié)果 298
17.4 思考與練習(xí) 299
第18章 設(shè)備驅(qū)動程序的編寫 300
18.1 Linux驅(qū)動程序 300
18.1.1 驅(qū)動程序分類 300
18.1.2 驅(qū)動程序開發(fā)的注意事項 301
18.1.3 設(shè)備目錄 301
18.2 Linux驅(qū)動數(shù)據(jù)結(jié)構(gòu)分析 302
18.2.1 Linux驅(qū)動核心結(jié)構(gòu)體 302
18.2.2 設(shè)備的內(nèi)核操作函數(shù) 304
18.3 驅(qū)動程序?qū)嵗?xùn)練 306
18.3.1 以模塊的方式加載驅(qū)動程序 306
18.3.2 測試驅(qū)動程序 311
18.4 編譯時向內(nèi)核添加新設(shè)備 312
18.5 思考與練習(xí) 315
第4部分 高級編程篇
第19章 Qt圖形界面設(shè)計 318
19.1 X-Windows概述 318
19.2 Qt編程 318
19.2.1 概述 318
19.2.2 Qt Creator 319
19.2.3 Qt信號與Slot機制 319
19.3 Qt安裝方法 321
19.4 應(yīng)用實例訓(xùn)練 324
19.4.1 創(chuàng)建工程目錄打開Qt Creator 324
19.4.2 新建工程 324
19.4.3 繪制窗體 325
19.4.4 編寫代碼 327
19.4.5 編譯運行 330
19.5 思考與練習(xí) 330
第20章 MySQL數(shù)據(jù)庫設(shè)計與編程 331
20.1 MySQL的特性 331
20.2 數(shù)據(jù)庫編程概述 333
20.3 Qt中的數(shù)據(jù)庫編程 333
20.3.1 QSqlDriver 333
20.3.2 QSqlDatabase 334
20.3.3 QSqlQuery 336
20.4 應(yīng)用實例訓(xùn)練 338
20.4.1 數(shù)據(jù)庫的建立 338
20.4.2 應(yīng)用程序的建立 344
20.4.3 運行結(jié)果 351
20.5 思考與練習(xí) 353
第21章 網(wǎng)絡(luò)通信高級編程 354
21.1 網(wǎng)絡(luò)編程概述 354
21.2 Socket編程模型 355
21.3 Qt網(wǎng)絡(luò)編程中用到的類和方法 355
21.3.1 QtcpSocket 355
21.3.2 QTcpServer 357
21.3.3 QThread 359
21.4 應(yīng)用實例訓(xùn)練 359
21.4.1 建立工程 360
21.4.2 數(shù)據(jù)結(jié)構(gòu)設(shè)計 362
21.4.3 界面設(shè)計 367
21.4.4 動作設(shè)計 368
21.4.5 編譯與運行 372
21.5 思考與練習(xí) 374
后記 375
Linux操作系統(tǒng)應(yīng)用與開發(fā)教程