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