《Linux系統(tǒng)編程》圍繞Linux系統(tǒng)所涉及的知識(shí)點(diǎn),分為12章,內(nèi)容包括Linux系統(tǒng)概述、Linux的常用命令、Shell編程、Linux系統(tǒng)程序設(shè)計(jì)基礎(chǔ)、文件分割和多文件編譯、Linux環(huán)境下系統(tǒng)函數(shù)的使用、文件的操作、進(jìn)程控制、進(jìn)程間的通信、網(wǎng)絡(luò)程序設(shè)計(jì)、Linux的圖形編程、串行通信等。
《Linux系統(tǒng)編程》內(nèi)容豐富,圖文并茂,緊緊圍繞知識(shí)的實(shí)用性和通用性,涵蓋面較廣,介紹了常用的終端命令,但沒有過(guò)多深入闡述,重點(diǎn)在文件操作、進(jìn)程控制、進(jìn)程間通信等內(nèi)容上。除了基本的常用操作外,還進(jìn)行了內(nèi)容拓展,每章配有思考與實(shí)驗(yàn)。
《Linux系統(tǒng)編程》既可以作為高等學(xué)校電子信息類相關(guān)專業(yè)學(xué)生教材,也可作為培訓(xùn)參考資料使用。
Linux是一種極具發(fā)展?jié)摿ΣV泛應(yīng)用的自由和開放源碼的計(jì)算機(jī)操作系統(tǒng)。Linux可以安裝在各種各樣的計(jì)算機(jī)設(shè)備上,從超級(jí)計(jì)算機(jī)到大型機(jī)、網(wǎng)絡(luò)服務(wù)器,從路由器、多媒體設(shè)備到PC、便攜式設(shè)備甚至手機(jī),都廣泛地使用了Linux操作系統(tǒng)。
本書是作者依托三年的教學(xué)總結(jié),采用大量的圖、表循序漸進(jìn)地闡述了Linux操作系統(tǒng)的基本框架和原理(概述、安裝、用戶和組、文件系統(tǒng)、基本命令、vi/vim、文件共享與遠(yuǎn)程控制、bash編程等),并精心挑選了大量案例作為原理闡析的補(bǔ)充內(nèi)容。
通過(guò)本書的學(xué)習(xí),學(xué)生能夠熟悉Linux操作系統(tǒng)下的基本命令使用、shell程序設(shè)計(jì)、Linux環(huán)境下C程序的編輯、編譯、調(diào)試及運(yùn)行,掌握Linux環(huán)境下系統(tǒng)函數(shù)的使用,掌握文件操作、非緩沖文件的I/O操作,掌握進(jìn)程控制的程序設(shè)計(jì),掌握進(jìn)程間共享內(nèi)存、管道、隊(duì)列及信號(hào)等通信的機(jī)理及編程方法,掌握網(wǎng)絡(luò)編程設(shè)計(jì),掌握串行通信程序設(shè)計(jì),初步了解驅(qū)動(dòng)程序設(shè)計(jì),使學(xué)生掌握Linux操作系統(tǒng)下C程序開發(fā)的方法和技巧,并具備開發(fā)大型應(yīng)用程序的能力,具有團(tuán)隊(duì)協(xié)作、勤奮敬業(yè)及與人合作、溝通及協(xié)調(diào)能力。
全書分為12章,涵蓋了Ubuntu操作系統(tǒng)在實(shí)際應(yīng)用方面的各種知識(shí)技能。
第1章是Linux系統(tǒng)概述,主要講述Linux發(fā)展歷史,操作系統(tǒng)類型選擇和內(nèi)核版本的選擇,Linux的系統(tǒng)架構(gòu),GNU通用公共許可證。
第2章是Linux的常用命令,主要講述Linux命令格式,用戶管理命令,文件系統(tǒng)命令,文件、目錄權(quán)限管理,文件操作命令,Linux中的硬盤,掛載文件系統(tǒng),文件歸檔與壓縮,Shell命令。了解Linux操作系統(tǒng)和通信軟件開發(fā)之間的聯(lián)系,了解Linux下終端常用命令的操作,掌握Linux環(huán)境bash的基本命令,掌握shell的基本概念。
第3章是shell編程,主要講述shell概述,VI編輯器,創(chuàng)建和執(zhí)行shell腳本,shell特殊字符,shell變量,正則表達(dá)式與算術(shù)運(yùn)算,控制結(jié)構(gòu),其他語(yǔ)句,函數(shù),調(diào)試shell腳本。掌握shell編程的基本技能,掌握bash腳本的建立和運(yùn)行,熟悉使用vi、gedit等編輯器生成bash文件;掌握在shell腳本中使用函數(shù)的基本技能;了解Linux下shell程序設(shè)計(jì)方法,掌握順序、分支、循環(huán)結(jié)構(gòu)的shell程序設(shè)計(jì)方法。
第4章是Linux系統(tǒng)程序設(shè)計(jì)基礎(chǔ),主要講述C語(yǔ)言基礎(chǔ),個(gè)Linux C程序,GCC編譯器,GDB調(diào)試器。熟悉Linux系統(tǒng)C語(yǔ)言開發(fā)工具,了解Linux下C程序的編輯、編譯和運(yùn)行;掌握GCC、make等開發(fā)工具的使用,熟悉GCC編譯器的使用,熟悉GDB調(diào)試器的使用。
第5章是文件分割和多文件編譯,主要講述函數(shù),文件分割,make工程管理器,autotools的使用。
第6章是Linux環(huán)境下系統(tǒng)函數(shù)的使用,主要講述數(shù)學(xué)函數(shù)的使用,字符測(cè)試函數(shù)的使用,系統(tǒng)時(shí)間與日期函數(shù)的使用,環(huán)境控制函數(shù),內(nèi)存分配函數(shù),數(shù)據(jù)結(jié)構(gòu)中常用函數(shù)。掌握Linux環(huán)境下系統(tǒng)函數(shù)的應(yīng)用,尤其是時(shí)間函數(shù)、環(huán)境控制函數(shù)在程序設(shè)計(jì)中的應(yīng)用。
第7章是文件的操作,主要講述Linux系統(tǒng)文件的屬性,不帶緩存的文件I/O操作,帶緩存的流文件I/O操作,其他文件的操作。了解Linux的文件結(jié)構(gòu)、屬性,熟悉系統(tǒng)調(diào)用,掌握文件的創(chuàng)建、讀寫、權(quán)限的修改等基本技能;了解流和FILE對(duì)象,熟悉流的打開、讀和寫操作;熟悉文件和目錄的維護(hù)。
第8章是進(jìn)程控制,主要講述進(jìn)程簡(jiǎn)介,Linux進(jìn)程控制,Linux守護(hù)進(jìn)程。了解Linux環(huán)境下的進(jìn)程控制,了解進(jìn)程的狀態(tài)及其狀態(tài)轉(zhuǎn)換,了解進(jìn)程的調(diào)度,熟悉進(jìn)程的一般操作,熟悉進(jìn)程的特殊操作。
第9章是進(jìn)程間的通信,主要講述信號(hào)及信號(hào)處理,管道,消息隊(duì)列,共享內(nèi)存。掌握Linux下進(jìn)程通信,了解管道的概念,了解消息隊(duì)列和管道,了解各個(gè)進(jìn)程間如何實(shí)現(xiàn)共享內(nèi)存;掌握進(jìn)程通信中信號(hào)的概念以及信號(hào)的處理,熟悉并掌握進(jìn)程間的管道通信編程。
第10章是網(wǎng)絡(luò)程序設(shè)計(jì),主要講述TCP/IP概述,socket編程,網(wǎng)絡(luò)高級(jí)編程。了解網(wǎng)絡(luò)程序設(shè)計(jì),掌握端口及socket的基本概念,掌握設(shè)備驅(qū)動(dòng)程序的設(shè)計(jì)方法、設(shè)備驅(qū)動(dòng)程序的編譯、模塊加載與卸載的方法。
第11章是Linux的圖形編程,主要講述Linux的圖形編程簡(jiǎn)介,安裝和使用SDL圖形開發(fā)庫(kù),初始化圖形模式,基本繪圖函數(shù)的應(yīng)用,圖片與文字顯示,動(dòng)畫,三維繪圖,游戲程序入門。
第12章是串行通信,主要講述串行通信概述,串行通信程序的設(shè)計(jì),對(duì)串口通信程序設(shè)計(jì)主要語(yǔ)句進(jìn)行說(shuō)明。
本書由重慶工程學(xué)院通信工程系團(tuán)隊(duì)聯(lián)合重慶公共運(yùn)輸學(xué)院、武漢凌特等學(xué)校、企業(yè)組織編寫,編寫人員有重慶工程學(xué)院李成勇、趙友貴、盧瑛,重慶公共運(yùn)輸職業(yè)學(xué)院鐘馨怡。在編寫本書的過(guò)程中,我們以科學(xué)、嚴(yán)謹(jǐn)?shù)膽B(tài)度,力求精益求精,但疏漏之處在所難免,敬請(qǐng)廣大讀者批評(píng)指正。
章 Linux系統(tǒng)概述
1.1 Linux發(fā)展歷史
1.2 Linux操作系統(tǒng)發(fā)行版本和內(nèi)核的選擇
1.3 Linux的系統(tǒng)架構(gòu)
1.4 GNU通用公共許可證
1.5 思考與實(shí)驗(yàn)
第2章 Linux的常用命令
2.1 Linux命令格式
2.2 用戶管理命令
2.3 文件系統(tǒng)命令
2.4 文件、目錄權(quán)限管理
2.5 文件操作命令
2.6 Linux中的硬盤
2.7 掛載文件系統(tǒng)
2.8 文件歸檔與壓縮
2.9 Shell命令
2.10 思考與實(shí)驗(yàn)
第3章 Shell編程
3.1 Shell概述
3.2 Vi編輯器
3.3 創(chuàng)建和執(zhí)行Shell腳本
3.4 Shell特殊字符
3.5 Shell變量
3.6 正則表達(dá)式與算術(shù)運(yùn)算
3.7 控制結(jié)構(gòu)
3.8 其他語(yǔ)句
3.9 函數(shù)
3.10 調(diào)試Shell腳本
3.11 思考與實(shí)驗(yàn)
第4章 Linux系統(tǒng)程序設(shè)計(jì)基礎(chǔ)
4.1 C語(yǔ)言基礎(chǔ)
4.2 個(gè)LinuxC程序
4.3 GCC編譯器
4.4 GDB調(diào)試器
4.5 思考與實(shí)驗(yàn)
第5章 文件分割和多文件編譯
5.1 函數(shù)
5.2 文件分割
5.3 make工程管理器
5.4 autotools的使用
5.5 思考與實(shí)驗(yàn)
第6章 Linux環(huán)境下系統(tǒng)函數(shù)的使用
6.1 數(shù)學(xué)函數(shù)的使用
6.2 字符測(cè)試函數(shù)的使用
6.3 系統(tǒng)時(shí)間與日期函數(shù)的使用
6.4 環(huán)境控制函數(shù)
6.5 內(nèi)存分配函數(shù)
6.6 數(shù)據(jù)結(jié)構(gòu)中常用函數(shù)
6.7 思考與實(shí)驗(yàn)
第7章 文件的操作
7.1 Linux系統(tǒng)文件的屬性
7.2 不帶緩存的文件I/O操作
7.3 帶緩存的流文件I/O操作
7.4 其他文件的操作
7.5 思考與實(shí)驗(yàn)
……
第8章 進(jìn)程控制
第9章 進(jìn)程間的通信
第10章 網(wǎng)絡(luò)程序設(shè)計(jì)
第11章 Linux的圖形編程
第12章 串行通信
參考文獻(xiàn)