linux系統程式設計

linux系統程式設計

CDIO工程教育是面向產品、過程、系統生命周期的工程教育方法。它以工程職業實踐環境作為工程教育環境 :培養學生的工程能力、職業道德、學術知識和運用知識解決問題能力、終生學習能力、團隊工作能力、交流能力和大系統掌控能力 ;使其能夠在現代團隊的環境下 ,構思、設計、實施、運行複雜和具有高附加值的工程產品、過程和系統。在基於 CDIO的工程教育中 ,不僅注重知識的學習 ,更加強調以項目為核心的全方位能力的培養。 本教材以一個基於 Linux的網路傳輸系統項目為例 ,作為主線貫穿始終 ,介紹了 Linux系統開發的相關知識以及完成該工程項目的技能。本教材主要針對具有一定的 C語言編程基礎,並了解 Linux基本操作的讀者 ,可供本科高年級學生自學使用 ,也可以作為相關工程技術人員和計算機愛好者學習 Linux系統編程的參考教材。

目錄:

第1章 Linux作業系統基礎 

1.1 UNIX/Linux作業系統簡介 
1.1.1 UNIX發展歷史 
1.1.2 UNIX體系結構 
1.1.3 Linux作業系統發展歷史 
1.1.4 Linux的版本 
1.1.5 Linux作業系統特點 
1.2 相關術語 
1.2.1 作業系統 
1.2.2 多用戶系統 
1.2.3 用戶和組 
1.2.4 進程 
1.2.5 檔案 
1.2.6 硬連結和符號連結 
1.2.7 檔案類型 
1.2.8 檔案描述符與索引節點 
1.3 庫函式與系統調用 
1.4 Linux常用命令 
1.4.1 用戶和用戶組 
1.4.2 檔案和目錄 
1.4.3 進程 
1.4.4 獲取幫助信息 
1.5 項目:SSH終端及登錄 
1.5.1 項目分析及設計 
1.5.2 項目實施 
1.5.3 項目運行 
第2章 Linux平台項目開發環境 
2.1 編輯器 Vi 
2.1.1 Vi的工作模式 
2.1.2 Vi的基本用法 
2.1.3 Vi的高級用法 
2.2 編譯器 GCC 
2.2.1 GCC編譯器介紹 
2.2.2 GCC編譯器基本用法 
2.3 make及 Makefile 
2.3.1 Makefile 
2.3.2 Makefile檔案的命名 
2.3.3 Makefile檔案的調用 
2.3.4 Makefile檔案的內容 
2.3.5 make命令的特殊用法 
2.4 調試器 GDB 
2.4.1 輸出語句調試方法 
2.4.2 GDB工具調試 
2.5 庫 
2.5.1 庫的基本概念 
2.5.2 靜態庫和共享庫的創建與使用 
2.6 項目:Linux系統 C編程實踐 
2.6.1 項目分析及設計 
2.6.2 項目實施 
2.6.3 項目編譯及運行 
第3章 Linux程式設計初步 
3.1 程式及進程的存儲結構 
3.2 變數的類型修飾符 
3.3 命令行參數 
3.4 環境變數 
3.4.1 Shel變數 
3.4.2 環境變數訪問命令 
3.4.3 環境變數訪問函式 
3.5 時間管理 
3.6 錯誤代碼 
3.7 項目:設定環境變數 
3.7.1 項目設計 
3.7.2 項目實施 
3.7.3 項目編譯與運行 
第4章 檔案I/O 
4.1 檔案系統簡介 
4.1.1 UNIX/Linux檔案系統概述 
4.1.2 VFS虛擬檔案系統 
4.1.3 索引節點 inode 
4.1.4 檔案的類型 
4.1.5 檔案的訪問許可權 
4.2 訪問檔案的核心數據結構 
4.3 檔案基本I/O操作 
4.3.1 打開/創建檔案open/creat 
4.3.2 讀檔案 
4.3.3 寫檔案 
4.3.4 檔案定位 
4.3.5 關閉檔案 
4.3.6 檔案操作舉例 
4.4 檔案訪問的同步 
4.5 項目 :檔案複製命令的實現 
4.5.1 項目分析與設計 
4.5.2 項目實施 
4.5.3 項目編譯與運行 
第5章 檔案屬性管理 
5.1 獲取檔案屬性 
5.2 用戶/組ID與名字的轉換 
5.3 硬連結與符號連結 
5.3.1 硬連結與符號連結的區別 
5.3.2 相關的系統調用函式 
5.4 dup/dup2 
5.4.1 輸入輸出重定向 
5.4.2 dup/dup2函式 
5.5 檔案屬性的修改 
5.5.1 修改檔案屬性 
5.5.2 改變檔案屬主及組 chown/fchown/lchown 
5.5.3 改變檔案訪問許可權 chmod/fchmod 
5.5.4 改變檔案時間 utime 
5.5.5 改變檔案長度 truncate/ftruncate 
5.6 項目 :顯示檔案長格式信息 
5.6.1 項目分析與設計 
5.6.2 項目實施 
5.6.3 項目編譯與運行 
第6章 目錄檔案管理 
6.1 目錄基本操作 
6.1.1 打開目錄 
6.1.2 讀目錄 
6.1.3 關閉目錄 
6.2 目錄其他操作 
6.2.1 改變前目錄 
6.2.2 創建目錄 
6.2.3 刪除目錄 
6.2.4 目錄指針定位 
6.3 項目:顯示指定目錄下檔案列表 
6.3.1 項目分析與設計 
6.3.2 項目實施 
6.3.3 項目編譯與運行 
第7章 進程控制 
7.1 什麼是Shel 
7.1.1 用戶登錄 Shel
7.1.2 Shel執行命令 
7.2 進程基本概念 
7.2.1 進程標識(ProcesID) 
7.2.2 用戶標識 
7.3 進程控制相關函式 
7.3.1 創建進程 
7.3.2 exec*函式 
7.3.3 進程終止 
7.3.4 等待進程結束 
7.3.5 system函式 
7.4 項目:實現簡單的Shel
7.4.1 項目分析與設計 
7.4.2 項目實施 
7.4.3 項目編譯與運行 
第8章 執行緒 
8.1 執行緒概念 
8.2 執行緒基本操作 
8.3 執行緒間通信 
8.4 項目:執行緒實例 
8.4.1 項目分析與設計 
8.4.2 項目實施 
8.4.3 項目編譯與運行 
第9章 信號與管道 
9.1信號 
9.1.1 信號的概念 
9.1.2 信號的產生 
9.1.3 信號的回響方式 
9.1.4 slep和 pause 
9.1.5 信號集 
9.2 管道 
9.2.1 管道基本概念 
9.2.2 FIFO 
第10章 進程間通信(IPC) 
10.1 System VIPC介紹 
10.2 System V信號量 
10.3 System V共享記憶體 
10.4 System V訊息佇列 
第11章 網路編程 
11.1 網路編程基本概念 
11.1.1 常用網路相關命令和配置檔案 
11.1.2 軟體體系結構 
11.1.3 網路協定及 OSI參考模型 
11.1.4 IP位址和連線埠 
11.1.5 位元組順序 
11.1.6 網路數據傳輸方式 
11.2 套接字編程基礎 
11.2.1 套接字簡介 
11.2.2 套接字地址結構 
11.2.3 面向連線套接字通信過程 
11.2.4 面向無連線套接字通信過程 
11.3 套接字編程相關函式 
11.3.1 socket 
11.3.2 bind 
11.3.3 listen 
11.3.4 acept 
11.3.5 connect 
11.3.6 send 
11.3.7 recv 
11.3.8 close 
11.3.9 sendto 
11.3.10 recvfrom 
11.4 項目:基於網路的進程間通信 
11.4.1 項目分析與設計 
11.4.2 項目實施 
11.4.3 項目運行 
11.5 基於 UDP的網路編程 
11.6 域名解析 
11.6.1 域名概述 
11.6.2 IP位址形式轉換 
11.6.3 IP位址與主機名 
第12章 Linux網路傳輸系統 
12.1 項目構思 
12.2 項目設計 
12.3 項目實施 
12.4 項目運行 
附錄A Linux主要的系統調用 
附錄B 標準 
附錄C ASCI碼 
附錄D 教學建議 
參考文獻

相關詞條

相關搜尋

熱門詞條

聯絡我們