Linux操作系統(tǒng)應(yīng)用編程
定 價(jià):59.8 元
- 作者:劉玓 陳佳 肖堃 丁熠
- 出版時(shí)間:2021/4/1
- ISBN:9787115559753
- 出 版 社:人民郵電出版社
- 中圖法分類:TP316.85
- 頁(yè)碼:252
- 紙張:
- 版次:01
- 開本:16開
本書從原理性和實(shí)用性出發(fā),從初學(xué)者的角度全面而詳細(xì)介紹了Linux操作系統(tǒng)的基本概念和常用命令的使用。闡述的內(nèi)容都是針對(duì)初學(xué)者完成日常工作所必需的各個(gè)方面,包括Linux的基本概念、常用命令、文件系統(tǒng)、屏幕編輯器、進(jìn)程管理、shell程序設(shè)計(jì)、數(shù)據(jù)管理工具、集成編譯工具、系統(tǒng)調(diào)用接口與應(yīng)用程序開發(fā)、進(jìn)程間通信和線程控制等,最后給出了一組綜合設(shè)計(jì)實(shí)驗(yàn)。本書各章都有大量的實(shí)例講述,各章末尾也有練習(xí)題,可幫助讀者由淺入深、循序漸進(jìn)地學(xué)習(xí)Linux操作系統(tǒng),理論聯(lián)系實(shí)際,快速上手實(shí)踐,逐步達(dá)到熟練掌握Linux操作系統(tǒng)的使用技巧以及提高應(yīng)用開發(fā)能力的目的。
1.作者為電子科技大學(xué)資深教授,選用真實(shí)教學(xué)素材。
2.注重教材的立體化配套資源,以方便教學(xué)。
3.注重實(shí)戰(zhàn),通過大量的實(shí)例引導(dǎo)學(xué)生快速上手。
4.配套綜合設(shè)計(jì)實(shí)驗(yàn),提高學(xué)生的動(dòng)手實(shí)踐能力。
本書編寫組成員現(xiàn)為電子科技大學(xué)信息與軟件工程學(xué)院操作系統(tǒng)課程組教師,長(zhǎng)期從事與操作系統(tǒng)密切相關(guān)的教學(xué)、科研、應(yīng)用開發(fā)和社會(huì)服務(wù)等方面的工作,主要研究領(lǐng)域包括操作系統(tǒng)、大型機(jī)系統(tǒng)、數(shù)據(jù)處理、云計(jì)算、嵌入式系統(tǒng)等。
編寫組成員曾先后參加完成了國(guó)家“六五”“七五”和“八五”科技攻關(guān)項(xiàng)目,對(duì)UNIX操作系統(tǒng)的內(nèi)核有深入的了解,屬于國(guó)內(nèi)最早一批從事該領(lǐng)域研究的人員。此后又參加完成多項(xiàng)涉及金融、航空、通信、鐵路、地質(zhì)和生產(chǎn)制造等領(lǐng)域的應(yīng)用開發(fā)工作,在UNIX/Linux操作系統(tǒng)應(yīng)用方面積累了豐富的經(jīng)驗(yàn)。
編寫組成員長(zhǎng)期講授“操作系統(tǒng)基礎(chǔ)”“UNIX/Linux操作系統(tǒng)內(nèi)核結(jié)構(gòu)”“UNIX/Linux操作系統(tǒng)基礎(chǔ)”“基于UNIX/Linux操作系統(tǒng)的編程技術(shù)”和“嵌入式系統(tǒng)”等課程,具有豐富的操作系統(tǒng)類課程的教學(xué)經(jīng)驗(yàn)。
2004年編寫組成員參與的“計(jì)算機(jī)操作系統(tǒng)系列課程改革與建設(shè)”獲電子科技大學(xué)優(yōu)秀教學(xué)成果獎(jiǎng);2005年“計(jì)算機(jī)操作系統(tǒng)”課程被評(píng)為四川省精品課程;2006年“計(jì)算機(jī)操作系統(tǒng)”課程被評(píng)為國(guó)家級(jí)精品課程。多人次獲得電子科技大學(xué)優(yōu)秀主講教師、專業(yè)核心課程骨干教師等稱號(hào)。
編寫組成員參與完成了國(guó)家級(jí)教改項(xiàng)目“大型主機(jī)應(yīng)用型創(chuàng)新人才培養(yǎng)模式的研究與實(shí)踐”,參與組建了國(guó)內(nèi)高校第一個(gè)大型主機(jī)系,率先系統(tǒng)地開設(shè)了“大型機(jī)操作系統(tǒng)”“z/Linux操作系統(tǒng)”“AIX操作系統(tǒng)”“大型機(jī)系統(tǒng)”和“大型機(jī)應(yīng)用基礎(chǔ)”等課程,并承擔(dān)完成了多門“教育部-IBM精品課程”建設(shè)任務(wù)。
第1章 Linux操作系統(tǒng)基礎(chǔ) 1
1.1 引言 1
1.1.1 什么是Linux 1
1.1.2 Linux的發(fā)展歷程 1
1.1.3 Linux操作系統(tǒng)的組成 2
1.1.4 Linux操作系統(tǒng)的版本 4
1.2 Linux操作系統(tǒng)的運(yùn)行模式與功能特征 5
1.2.1 Linux操作系統(tǒng)的運(yùn)行模式 5
1.2.2 Linux操作系統(tǒng)的功能特征 5
1.3 用戶與登錄 6
1.3.1 Linux用戶管理 6
1.3.2 登錄系統(tǒng) 7
1.4 Linux命令基礎(chǔ) 7
1.4.1 簡(jiǎn)單命令 7
1.4.2 通用命令格式 8
1.4.3 命令行更正和程序終止 8
1.4.4 聯(lián)機(jī)手冊(cè) 8
1.5 文件與進(jìn)程 8
1.6 練習(xí) 9
第2章 Linux文件系統(tǒng) 11
2.1 文件系統(tǒng)的結(jié)構(gòu) 11
2.1.1 組織結(jié)構(gòu) 11
2.1.2 起始目錄與當(dāng)前工作目錄 11
2.1.3 路徑名 12
2.1.4 標(biāo)準(zhǔn)目錄與文件 12
2.2 文件的定義與分類 13
2.2.1 文件的定義 13
2.2.2 文件的分類 13
2.3 目錄操作命令 14
2.3.1 創(chuàng)建目錄 14
2.3.2 刪除目錄 15
2.3.3 修改當(dāng)前目錄 15
2.3.4 查看當(dāng)前目錄 15
2.3.5 列出指定目錄 15
2.4 文件操作命令 17
2.4.1 顯示文件內(nèi)容 17
2.4.2 復(fù)制文件 17
2.4.3 移動(dòng)文件 18
2.4.4 刪除文件 18
2.4.5 打印文件 18
2.4.6 格式化輸出文件 18
2.4.7 鏈接文件 18
2.4.8 基本實(shí)用程序 19
2.5 文件的權(quán)限管理 20
2.5.1 文件的權(quán)限種類 20
2.5.2 文件權(quán)限的檢測(cè)與修改 21
2.5.3 文件所有權(quán)的修改 21
2.6 文件名置換 21
2.7 練習(xí) 22
第3章 vi編輯器 23
3.1 vi編輯器概述 23
3.1.1 vi編輯器的基本工作流程 23
3.1.2 vi編輯器的工作模式 23
3.2 vi編輯器的屏編工作模式 24
3.2.1 命令模式 24
3.2.2 文本輸入模式 24
3.3 屏編vi的使用方法 24
3.3.1 vi的啟動(dòng)與退出 24
3.3.2 vi的常用命令 25
3.4 行編edit的使用方法 26
3.4.1 進(jìn)入行編 26
3.4.2 退出行編 27
3.4.3 行編的常用命令 27
3.5 vi命令的選項(xiàng) 28
3.6 練習(xí) 28
第4章 Shell的交互功能和進(jìn)程管理 30
4.1 Shell的功能與分類 30
4.1.1 Shell的功能簡(jiǎn)介 30
4.1.2 Shell的分類 30
4.1.3 Shell的啟動(dòng)和執(zhí)行過程 31
4.1.4 Shell可識(shí)別的命令類型 32
4.2 Shell的內(nèi)部命令 34
4.3 標(biāo)準(zhǔn)輸入/輸出重定向 36
4.3.1 標(biāo)準(zhǔn)輸入/輸出 36
4.3.2 標(biāo)準(zhǔn)輸入重定向 37
4.3.3 標(biāo)準(zhǔn)輸出重定向 38
4.3.4 標(biāo)準(zhǔn)錯(cuò)誤輸出重定向 39
4.3.5 管道 40
4.4 Shell的變量 40
4.4.1 Shell的環(huán)境變量 40
4.4.2 Shell的系統(tǒng)變量 43
4.4.3 Shell的用戶自定義變量 45
4.4.4 清除變量 45
4.5 Shell的引用符 45
4.5.1 雙引號(hào)的使用 46
4.5.2 單引號(hào)的使用 46
4.5.3 反撇號(hào)的使用 47
4.5.4 花括號(hào)的使用 47
4.6 進(jìn)程的狀態(tài)和監(jiān)控 47
4.6.1 進(jìn)程的狀態(tài)及其轉(zhuǎn)換 48
4.6.2 獲取進(jìn)程狀態(tài)信息命令ps 49
4.6.3 暫停進(jìn)程運(yùn)行命令sleep 50
4.6.4 作業(yè)控制命令fg和jobs 50
4.6.5 終止進(jìn)程運(yùn)行命令kill 52
4.7 練習(xí) 54
第5章 Shell程序設(shè)計(jì) 55
5.1 Shell編程語言簡(jiǎn)介 55
5.1.1 編寫Shell腳本的基本過程 55
5.1.2 執(zhí)行Shell腳本 56
5.2 Shell語句的分類 57
5.2.1 說明性語句 58
5.2.2 功能性語句 58
5.2.3 結(jié)構(gòu)性語句 61
5.3 Shell的結(jié)構(gòu)性語句 61
5.3.1 測(cè)試語句test 61
5.3.2 條件語句if…then…fi 62
5.3.3 條件語句if…then…else…fi 63
5.3.4 多路分支語句case…esac 64
5.3.5 循環(huán)語句for…do…done 65
5.3.6 循環(huán)語句while…do…done 66
5.3.7 循環(huán)語句until…do…done 67
5.3.8 循環(huán)控制語句continue和break 68
5.4 Shell函數(shù) 69
5.5 命令組的應(yīng)用規(guī)則與限制 71
5.5.1 Shell命令組的標(biāo)準(zhǔn)輸出重定向 71
5.5.2 Shell命令組的標(biāo)準(zhǔn)輸入重定向 72
5.5.3 while命令組的循環(huán)條件 74
5.6 練習(xí) 74
第6章 數(shù)據(jù)查找和篩選工具 76
6.1 正則表達(dá)式 76
6.1.1 正則表達(dá)式的定義 76
6.1.2 正則表達(dá)式中的元字符 77
6.1.3 正則表達(dá)式應(yīng)用示例 77
6.2 流編輯器sed簡(jiǎn)介 78
6.2.1 什么是流編輯器 78
6.2.2 sed命令的基本格式 79
6.2.3 sed命令中的行編命令基本格式 79
6.2.4 sed命令的出錯(cuò)信息和退出狀態(tài) 80
6.2.5 sed命令應(yīng)用示例 81
6.3 數(shù)據(jù)處理器awk簡(jiǎn)介 82
6.3.1 數(shù)據(jù)記錄和數(shù)據(jù)域 82
6.3.2 awk命令的基本格式 83
6.3.3 格式化輸出 84
6.3.4 awk的命令文件 85
6.4 練習(xí) 85
第7章 多模塊鏈接與集成編譯工具GNU make 87
7.1 多模塊程序設(shè)計(jì) 87
7.1.1 多模塊程序的常見自動(dòng)構(gòu)建系統(tǒng) 91
7.1.2 基于GNU make的構(gòu)建系統(tǒng) 93
7.2 make程序的基本功能和運(yùn)行流程 95
7.2.1 GNU make是如何工作的 95
7.2.2 指定Makefile 95
7.2.3 Makefile概述 95
7.2.4 指定目標(biāo) 96
7.2.5 控制make執(zhí)行的函數(shù) 96
7.2.6 make支持的選項(xiàng)及退出碼 97
7.3 Makefile規(guī)則 98
7.3.1 規(guī)則的格式 99
7.3.2 在規(guī)則中使用通配符 100
7.3.3 文件搜尋 100
7.3.4 偽目標(biāo) 101
7.3.5 自動(dòng)生成依賴性 102
7.4 在Makefile中執(zhí)行命令 104
7.4.1 顯示命令 104
7.4.2 命令執(zhí)行順序 104
7.4.3 命令出錯(cuò) 105
7.4.4 嵌套執(zhí)行make 105
7.5 變量定義和使用 106
7.5.1 變量的基礎(chǔ) 107
7.5.2 變量中的變量 107
7.5.3 使用條件判斷 109
7.6 練習(xí) 110
第8章 文件管理與輸入/輸出調(diào)用 112
8.1 虛擬文件系統(tǒng) 112
8.1.1 基本概念 112
8.1.2 文件系統(tǒng)在存儲(chǔ)設(shè)備上的表現(xiàn)形式 113
8.1.3 虛擬文件系統(tǒng)涉及的內(nèi)核對(duì)象 114
8.1.4 內(nèi)核對(duì)象間的聯(lián)系 118
8.1.5 虛擬文件系統(tǒng)的典型系統(tǒng)調(diào)用 119
8.2 文件I/O 123
8.2.1 打開文件 124
8.2.2 創(chuàng)建文件 125
8.2.3 關(guān)閉文件 125
8.2.4 文件讀寫位置 125
8.2.5 讀文件 126
8.2.6 寫文件 127
8.3 文件和目錄的屬性與權(quán)限 127
8.3.1 獲取當(dāng)前工作目錄路徑 128
8.3.2 讀取目錄文件 128
8.3.3 獲取與解析文件屬性 130
8.3.4 文件和目錄訪問權(quán)限 133
8.3.5 創(chuàng)建與刪除目錄 133
8.4 練習(xí) 134
第9章 進(jìn)程控制 136
9.1 運(yùn)行環(huán)境和進(jìn)程的標(biāo)識(shí) 136
9.1.1 進(jìn)程基本概念 136
9.1.2 進(jìn)程描述符 136
9.2 進(jìn)程的創(chuàng)建和退出 140
9.2.1 進(jìn)程的創(chuàng)建 140
9.2.2 進(jìn)程的退出 145
9.3 進(jìn)程的等待與睡眠 147
9.3.1 wait函數(shù) 147
9.3.2 waitpid函數(shù) 148
9.4 進(jìn)程的執(zhí)行 150
9.4.1 exec函數(shù)簇 150
9.4.2 進(jìn)程的執(zhí)行與文件共享 153
9.5 進(jìn)程的屬性修改 156
9.5.1 進(jìn)程USERID的修改 156
9.5.2 進(jìn)程GROUPID的修改 158
9.6 進(jìn)程的調(diào)度 158
9.6.1 基本概念 158
9.6.2 進(jìn)程調(diào)度的時(shí)機(jī)與方式 160
9.6.3 常用的進(jìn)程調(diào)度算法 161
9.6.4 進(jìn)程調(diào)度策略 165
9.6.5 主要函數(shù) 167
9.7 練習(xí) 175
第10章 進(jìn)程間通信 177
10.1 管道 177
10.1.1 基本概念 177
10.1.2 使用管道 178
10.1.3 創(chuàng)建和關(guān)閉管道 182
10.1.4 從管道中讀取數(shù)據(jù)和向管道中寫入數(shù)據(jù) 183
10.2 信號(hào)燈 187
10.2.1 信號(hào)燈概述 187
10.2.2 信號(hào)燈與內(nèi)核 187
10.2.3 操作信號(hào)燈 188
10.2.4 信號(hào)燈限制 190
10.2.5 競(jìng)爭(zhēng)問題 191
10.3 消息隊(duì)列 191
10.3.1 什么是消息隊(duì)列 191
10.3.2 消息隊(duì)列類型 192
10.3.3 消息隊(duì)列相關(guān)函數(shù) 194
10.3.4 如何利用消息隊(duì)列進(jìn)行客戶端和服務(wù)器的通信 196
10.4 共享存儲(chǔ) 199
10.4.1 什么是共享存儲(chǔ) 199
10.4.2 獲得共享存儲(chǔ)函數(shù) 200
10.4.3 刪除共享存儲(chǔ)段 203
10.4.4 如何將進(jìn)程掛接到共享存儲(chǔ)上 203
10.4.5 如何查看系統(tǒng)的共享存儲(chǔ)資源 204
10.4.6 信號(hào)量 205
10.5 練習(xí) 209
第11章 線程及線程控制 211
11.1 什么是線程 211
11.2 線程的創(chuàng)建和終止 212
11.2.1 線程的創(chuàng)建 212
11.2.2 線程的終止 213
11.3 線程的同步與互斥 214
11.3.1 基本概念 214
11.3.2 死鎖 214
11.3.3 互斥量 216
11.4 線程的屬性與限制 218
11.4.1 線程的屬性 218
11.4.2 線程的限制 219
11.5 Linux操作系統(tǒng)下的多線程編程 220
11.5.1 概念介紹 220
11.5.2 多線程的實(shí)現(xiàn) 220
11.5.3 線程之間的數(shù)據(jù)處理 222
11.6 練習(xí) 229
第12章 綜合實(shí)驗(yàn) 230
12.1 設(shè)備驅(qū)動(dòng)程序與設(shè)備文件 230
12.2 Linux操作系統(tǒng)設(shè)備類型 231
12.3 Linux操作系統(tǒng)設(shè)備驅(qū)動(dòng)的特性 233
12.4 Linux操作系統(tǒng)設(shè)備驅(qū)動(dòng)程序的組成部分 233
12.5 Linux內(nèi)核模塊與設(shè)備驅(qū)動(dòng)程序開發(fā)實(shí)驗(yàn) 234
12.5.1 實(shí)驗(yàn)?zāi)康摹?34
12.5.2 實(shí)驗(yàn)原理 234
12.5.3 實(shí)驗(yàn)步驟 236
12.6 Linux操作系統(tǒng)字符設(shè)備驅(qū)動(dòng)程序開發(fā)實(shí)驗(yàn) 237
12.6.1 實(shí)驗(yàn)?zāi)康摹?37
12.6.2 實(shí)驗(yàn)原理 237
12.6.3 實(shí)驗(yàn)步驟 242
12.7 Linux操作系統(tǒng)塊設(shè)備驅(qū)動(dòng)程序開發(fā)實(shí)驗(yàn) 243
12.7.1 實(shí)驗(yàn)?zāi)康摹?43
12.7.2 實(shí)驗(yàn)原理 243
12.7.3 實(shí)驗(yàn)步驟 250
參考文獻(xiàn) 251