TOP
0
0
魅麗。花火原創小說66折起
Unix/Linux系統編程(簡體書)
滿額折

Unix/Linux系統編程(簡體書)

人民幣定價:139 元
定  價:NT$ 834 元
優惠價:87726
領券後再享89折
無庫存,下單後進貨(採購期約45個工作天)
可得紅利積點:21 點
相關商品
商品簡介
名人/編輯推薦
目次

商品簡介

本書講授Unix/Linux系統編程的理論和實踐,提供了廣泛的計算機系統軟件知識和高級編程技能,使讀者能夠與操作系統內核進行交互,並有效利用系統資源來開發應用軟件。本書還為讀者提供了學習計算機科學/工程高級課程(如操作系統、嵌入式系統、數據庫系統、數據挖掘、人工智能、計算機網絡、網絡安全、分布式計算和並行計算)所需的背景知識。

名人/編輯推薦

通過詳細的步驟講解,幫助掌握高級系統編程所需的背景知識和技能

目次

出版者的話
譯者序
前言
第1章 引言1
1.1 關於本書1
1.2 系統編程的作用1
1.3 本書的目標1
1.3.1 強化學生的編程背景知識1
1.3.2 動態數據結構的應用2
1.3.3 進程概念和進程管理2
1.3.4 併發編程2
1.3.5 定時器和定時功能3
1.3.6 信號、信號處理和進程間通信3
1.3.7 文件系統3
1.3.8 TCP/IP和網絡編程3
1.4 目標讀者3
1.5 本書的獨特之處4
1.6 將本書用作系統編程課程的教材5
1.7 其他參考書6
1.8 關於Unix6
1.8.1 AT&T Unix6
1.8.2 Berkeley Unix6
1.8.3 HP Unix7
1.8.4 IBM Unix7
1.8.5 Sun Unix7
1.9 關於Linux7
1.10 Linux版本7
1.10.1 Debian Linux8
1.10.2 Ubuntu Linux8
1.10.3 Linux Mint8
1.10.4 基於RPM的Linux8
1.10.5 Slackware Linux8
1.11 Linux硬件平臺8
1.12 虛擬機上的Linux 8
1.12.1 VirtualBox9
1.12.2 VMware10
1.12.3 雙啟動Slackware和Ubuntu Linux11
1.13 使用Linux12
1.13.1 Linux內核映像12
1.13.2 Linux啟動程序13
1.13.3 Linux啟動13
1.13.4 Linux運行級別13
1.13.5 登錄進程13
1.13.6 命令執行13
1.14 使用Ubuntu Linux14
1.14.1 Ubuntu版本14
1.14.2 Ubuntu Linux的特性14
1.15 Unix/Linux文件系統組織15
1.15.1 文件類型15
1.15.2 文件路徑名15
1.15.3 Unix/Linux命令16
1.15.4 Linux手冊頁16
1.16 Ubuntu Linux系統管理17
1.16.1 用戶賬戶17
1.16.2 添加新用戶17
1.16.3 sudo命令17
參考文獻18
第2章 編程背景19
2.1 Linux中的文本編輯器19
2.1.1 vim19
2.1.2 gedit20
2.1.3 emacs20
2.2 使用文本編輯器20
2.2.1 使用emacs21
2.2.2 emacs菜單21
2.2.3 emacs的集成開發環境22
2.3 程序開發22
2.3.1 程序開發步驟22
2.3.2 靜態與動態鏈接24
2.3.3 可執行文件格式25
2.3.4 a.out文件的內容25
2.3.5 程序執行過程26
2.3.6 程序終止27
2.4 C語言中的函數調用27
2.4.1 32位GCC中的運行時堆棧使用情況27
2.4.2 long jump30
2.4.3 64位GCC中的運行時堆棧使用情況32
2.5 C語言程序與彙編代碼的鏈接34
2.5.1 用彙編代碼編程34
2.5.2 用匯編語言實現函數36
2.5.3 從彙編中調用C函數38
2.6 鏈接庫38
2.6.1 靜態鏈接庫38
2.6.2 動態鏈接庫39
2.7 makefile39
2.7.1 makefile格式39
2.7.2 make程序40
2.7.3 makefile示例40
2.8 GDB調試工具45
2.8.1 在emacs IDE中使用GDB45
2.8.2 有關使用調試工具的建議49
2.8.3 C語言程序中的常見錯誤49
2.9 C語言結構體53
2.9.1 結構體和指針54
2.9.2 C語言類型轉換55
2.10 鏈表處理56
2.10.1 鏈表56
2.10.2 鏈表操作57
2.10.3 構建鏈表57
2.10.4 鏈表遍歷60
2.10.5 搜索鏈表61
2.10.6 插入操作62
2.10.7 優先級隊列63
2.10.8 刪除操作63
2.10.9 循環鏈表64
2.10.10 可擴充C語言結構體64
2.10.11 雙向鏈表65
2.10.12 雙向鏈表示例程序65
2.11 樹73
2.12 二叉樹73
2.12.1 二叉搜索樹73
2.12.2 構建二叉搜索樹74
2.12.3 二叉樹遍歷算法75
2.12.4 深度優先遍歷算法75
2.12.5 廣度優先遍歷算法75
2.13 編程項目:Unix/Linux文件系統樹模擬器77
2.13.1 Unix/Linux文件系統樹77
2.13.2 用二叉樹實現普通樹77
2.13.3 項目規範及要求78
2.13.4 命令規範78
2.13.5 程序結構體78
2.13.6 命令算法81
2.13.7 示例解決方案83
2.14 習題84
參考文獻86
第3章 Unix/Linux進程管理87
3.1 多任務處理87
3.2 進程的概念87
3.3 多任務處理系統88
3.3.1 type.h 文件88
3.3.2 ts.s文件89
3.3.3 queue.c 文件89
3.3.4 t.c文件90
3.3.5 多任務處理系統代碼介紹93
3.4 進程同步95
3.4.1 睡眠模式95
3.4.2 喚醒操作96
3.5 進程終止96
3.5.1 kexit()的算法97
3.5.2 進程家族樹97
3.5.3 等待子進程終止98
3.6 MT系統中的進程管理99
3.7 Unix/Linux中的進程100
3.7.1 進程來源100
3.7.2 INIT和守護進程100
3.7.3 登錄進程100
3.7.4 sh進程101
3.7.5 進程的執行模式101
3.8 進程管理的系統調用102
3.8.1 fork()102
3.8.2 進程執行順序103
3.8.3 進程終止104
3.8.4 等待子進程終止105
3.8.5 Linux中的subreaper進程106
3.8.6 exec():更改進程執行映像108
3.8.7 環境變量108
3.9 I/O重定向111
3.9.1 文件流和文件描述符111
3.9.2 文件流I/O和系統調用111
3.9.3 重定向標準輸入111
3.9.4 重定向標準輸出112
3.10 管道112
3.10.1 Unix/Linux中的管道編程113
3.10.2 管道命令處理115
3.10.3 將管道寫進程與管道讀進程連接起來115
3.10.4 命名管道116
3.11 編程項目:sh模擬器117
3.11.1 帶有I/O重定向的單命令117
3.11.2 帶有管道的命令118
3.11.3 ELF可執行文件與sh腳本文件118
3.11.4 示例解決方案119
3.12 習題119
參考文獻120
第4章 併發編程121
4.1 並行計算導論121
4.1.1 順序算法與並行算法121
4.1.2 並行性與併發性122
4.2 線程122
4.2.1 線程的原理122
4.2.2 線程的優點122
4.2.3 線程的缺點123
4.3 線程操作123
4.4 線程管理函數123
4.4.1 創建線程124
4.4.2 線程ID125
4.4.3 線程終止125
4.4.4 線程連接125
4.5 線程示例程序125
4.5.1 用線程計算矩陣的和125
4.5.2 用線程快速排序127
4.6 線程同步129
4.6.1 互斥量129
4.6.2 死鎖預防131
4.6.3 條件變量132
4.6.4 生產者-消費者問題133
4.6.5 信號量136
4.6.6 屏障137
4.6.7 用併發線程解線性方程組138
4.6.8 Linux中的線程140
4.7 編程項目:用戶級線程141
4.7.1 項目基本代碼:一個多任務處理系統142
4.7.2 用戶級線程145
4.7.3 線程連接操作的實現147
4.7.4 互斥量操作的實現151
4.7.5 用併發程序測試有互斥量的項目152
4.7.6 信號量的實現156
4.7.7 使用信號量實現生產者-消費者問題156
4.8 習題158
參考文獻159
第5章 定時器及時鐘服務160
5.1 硬件定時器160
5.2 個人計算機定時器160
5.3 CPU操作161
5.4 中斷處理161
5.5 時鐘服務函數161
5.5.1 gettimeofday-settimeofday162
5.5.2 time系統調用163
5.5.3 times系統調用164
5.5.4 time和date命令164
5.6 間隔定時器164
5.7 REAL模式間隔定時器166
5.8 編程項目166
5.8.1 系統基本代碼167
5.8.2 定時器中斷170
5.8.3 定時器隊列171
5.8.4 臨界區173
5.8.5 高級主題173
5.9 習題174
參考文獻174
第6章 信號和信號處理175
6.1 信號和中斷175
6.2 Unix/Linux信號示例177
6.3 Unix/Linux中的信號處理177
6.3.1 信號類型177
6.3.2 信號的來源178
6.3.3 進程PROC結構體中的信號178
6.3.4 信號處理函數179
6.3.5 安裝信號捕捉函數179
6.4 信號處理步驟181
6.5 信號與異常182
6.6 信號用作IPC182
6.7 Linux中的IPC183
6.7.1 管道和FIFO183
6.7.2 信號184
6.7.3 System V IPC184
6.7.4 POSIX消息隊列184
6.7.5 線程同步機制184
6.7.6 套接字184
6.8 編程項目:實現一個消息IPC184
6.9 習題186
參考文獻186
第7章 文件操作187
7.1 文件操作級別187
7.2 文件I/O操作189
7.3 低級別文件操作191
7.3.1 分區191
7.3.2 格式化分區193
7.3.3 掛載分區194
7.4 EXT2文件系統簡介195
7.4.1 EXT2文件系統數據結構195
7.4.2 超級塊196
7.4.3 塊組描述符196
7.4.4 位圖197
7.4.5 索引節點197
7.4.6 目錄條目198
7.5 編程示例198
7.5.1 顯示超級塊198
7.5.2 顯示位圖200
7.5.3 顯示根索引節點202
7.5.4 顯示目錄條目203
7.6 編程項目:將文件路徑名轉換為索引節點205
7.7 習題206
參考文獻206
第8章 使用系統調用進行文件操作207
8.1 系統調用207
8.2 系統調用手冊頁207
8.3 使用系統調用進行文件操作207
8.4 常用的系統調用209
8.5 鏈接文件210
8.5.1 硬鏈接文件210
8.5.2 符號鏈接文件211
8.6 stat系統調用211
8.6.1 stat文件狀態211
8.6.2 stat結構體212
8.6.3 stat與文件索引節點213
8.6.4 文件類型和權限214
8.6.5 opendir-readdir函數215
8.6.6 readlink函數215
8.6.7 ls程序216
8.7 open-close-lseek系統調用217
8.7.1 打開文件和文件描述符218
8.7.2 關閉文件描述符218
8.7.3 lseek文件描述符218
8.8 read()系統調用218
8.9 write()系統調用219
8.10 文件操作示例程序219
8.10.1 顯示文件內容219
8.10.2 複製文件220
8.10.3 選擇性文件複製221
8.11 編程項目:使用系統調用遞歸複製文件222
8.11.1 提示和幫助222
8.11.2 示例解決方案223
參考文獻223
第9章 I/O庫函數224
9.1 I/O庫函數224
9.2 I/O庫函數與系統調用224
9.3 I/O庫函數的算法227
9.3.1 fread算法227
9.3.2 fwrite算法227
9.3.3 fclose算法228
9.4 使用I/O庫函數或系統調用228
9.5 I/O庫模式228
9.5.1 字符模式I/O228
9.5.2 行模式I/O229
9.5.3 格式化I/O230
9.5.4 內存中的轉換函數230
9.5.5 其他I/O庫函數230
9.5.6 限制混合fread-fwrite230
9.6 文件流緩衝231
9.7 變參函數232
9.8 編程項目:類printf函數233
9.8.1 項目規範233
9.8.2 項目基本代碼233
9.8.3 myprintf()的算法234
9.8.4 項目改進234
9.8.5 項目演示和示例解決方案234
9.9 習題234
參考文獻235
第10章 sh編程236
10.1 sh腳本236
10.2 sh腳本與C程序236
10.3 命令行參數237
10.4 sh變量237
10.5 sh中的引號238
10.6 sh語句238
10.7 sh命令238
10.7.1 內置命令238
10.7.2 Linux命令239
10.8 命令替換240
10.9 sh控制語句240
10.9.1 if-else-fi語句240
10.9.2 for語句242
10.9.3 while語句242
10.9.4 until-do語句243
10.9.5 case語句243
10.9.6 continue和break語句243
10.10 I/O重定向243
10.11 嵌入文檔243
10.12 sh函數244
10.13 sh中的通配符245
10.14 命令分組245
10.15 eval語句245
10.16 調試sh腳本246
10.

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 726
無庫存,下單後進貨
(採購期約45個工作天)

暢銷榜

客服中心

收藏

會員專區