注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡軟件與程序設計Rust系統(tǒng)編程

Rust系統(tǒng)編程

Rust系統(tǒng)編程

定 價:¥119.00

作 者: [印] 普拉布·艾什沃拉 著,劉君 譯
出版社: 清華大學出版社
叢編項:
標 簽: 暫缺

ISBN: 9787302616771 出版時間: 2022-09-01 包裝: 平裝
開本: 16開 頁數(shù): 字數(shù):  

內容簡介

  《Rust系統(tǒng)編程》詳細闡述了與Rust系統(tǒng)編程相關的基本解決方案,主要包括Rust工具鏈和項目結構,Rust編程語言之旅,Rust標準庫介紹,管理環(huán)境、命令行和時間,Rust中的內存管理,在Rust中使用文件和目錄,在Rust中實現(xiàn)終端I/O,處理進程和信號,管理并發(fā),處理設備I/O,學習網(wǎng)絡編程,編寫不安全Rust和FFI等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現(xiàn)過程。 本書適合作為高等院校計算機及相關專業(yè)的教材和教學參考書,也可作為相關開發(fā)人員的自學用書和參考手冊。

作者簡介

暫缺《Rust系統(tǒng)編程》作者簡介

圖書目錄

目 錄
第1篇 Rust系統(tǒng)編程入門
第1章 Rust工具鏈和項目結構 3
1.1 技術要求 3
1.2 為項目選擇正確的Rust配置 4
1.2.1 選擇Rust發(fā)布通道 4
1.2.2 選擇Rust項目類型 6
1.3 Cargo和項目結構簡介 7
1.4 使用Cargo自動化構建管理 9
1.4.1 構建一個基本的二進制項Crate 9
1.4.2 配置Cargo 11
1.4.3 構建靜態(tài)庫Crate 13
1.5 自動化依賴項管理 14
1.5.1 指定依賴項的位置 15
1.5.2 在源代碼中使用依賴包 16
1.6 編寫和運行自動化測試 16
1.6.1 用Rust編寫單元測試 17
1.6.2 用Rust編寫集成測試 18
1.6.3 控制測試執(zhí)行 19
1.6.4 按順序或并行運行測試 21
1.7 生成項目文檔 21
1.7.1 在Crate中編寫內聯(lián)文檔注釋 22
1.7.2 在Markdown文件中編寫文檔 23
1.7.3 運行文檔測試 24
1.8 小結 24
1.9 延伸閱讀 25
第2章 Rust編程語言之旅 27
2.1 技術要求 28
2.2 分析問題域 28
2.3 系統(tǒng)行為建模 29
2.4 構建標記化器 32
2.4.1 Tokenizer數(shù)據(jù)結構 32
2.4.2 Tokenizer數(shù)據(jù)處理 36
2.5 構建解析器 40
2.5.1 Parser數(shù)據(jù)結構 41
2.5.2 Parser方法 43
2.5.3 運算符優(yōu)先級 47
2.6 構建求值器 50
2.7 處理錯誤 51
2.8 綜合演練 55
2.9 小結 57
第3章 Rust標準庫介紹 59
3.1 技術要求 59
3.2 Rust標準庫和系統(tǒng)編程 59
3.3 探索Rust標準庫 62
3.4 面向計算的模塊 67
3.4.1 數(shù)據(jù)類型 67
3.4.2 數(shù)據(jù)處理 69
3.4.3 錯誤處理 69
3.4.4 外部函數(shù)接口 70
3.4.5 編譯器 70
3.5 面向系統(tǒng)調用的模塊 70
3.5.1 內存管理 70
3.5.2 并發(fā) 72
3.5.3 文件系統(tǒng) 73
3.5.4 輸入/輸出 73
3.5.5 網(wǎng)絡連接 73
3.5.6 與特定操作系統(tǒng)相關的模塊 73
3.5.7 時間 73
3.5.8 異步 73
3.6 構建模板引擎 74
3.7 模板語法和設計 76
3.7.1 模板文件的常見元素列表 76
3.7.2 模板引擎的概念模型 77
3.7.3 模板引擎的工作原理 79
3.7.4 模板引擎生成HTML的步驟 80
3.7.5 新建庫項目 81
3.7.6 模板引擎的代碼結構 81
3.7.7 數(shù)據(jù)結構 82
3.7.8 關鍵函數(shù) 83
3.7.9 測試用例 84
3.8 編寫模板引擎 86
3.8.1 解析器的設計 86
3.8.2 編寫解析器 87
3.8.3 支持函數(shù) 88
3.8.4 main()函數(shù) 91
3.8.5 執(zhí)行模板引擎 95
3.9 小結 96
3.10 延伸閱讀 97
第4章 管理環(huán)境、命令行和時間 99
4.1 技術要求 100
4.2 項目范圍和設計概述 100
4.2.1 要構建的內容 100
4.2.2 技術設計 103
4.3 使用Rust標準庫 106
4.3.1 路徑操作和目錄迭代 106
4.3.2 時間測量 108
4.3.3 使用環(huán)境變量 108
4.3.4 使用命令行參數(shù) 110
4.3.5 imagix庫設計方法總結 111
4.4 編寫imagix庫代碼 111
4.4.1 imagix庫的模塊結構 112
4.4.2 添加依賴項 114
4.4.3 遍歷目錄條目 114
4.4.4 調整圖像大小 115
4.4.5 圖像文件信息統(tǒng)計 117
4.4.6 錯誤處理 118
4.5 開發(fā)命令行應用程序 119
4.5.1 設計命令行界面 120
4.5.2 使用structopt對命令行二進制文件進行編碼 122
4.6 小結 125
第2篇 在Rust中管理和控制系統(tǒng)資源
第5章 Rust中的內存管理 129
5.1 技術要求 130
5.2 操作系統(tǒng)內存管理的基礎知識 130
5.2.1 內存管理生命周期 130
5.2.2 進程的內存布局 134
5.3 Rust程序的內存布局 136
5.3.1 理解Rust程序的內存布局 136
5.3.2 棧、堆和靜態(tài)內存的特性 139
5.4 Rust內存管理生命周期 141
5.4.1 Rust內存管理生命周期概述 142
5.4.2 內存分配 144
5.4.3 內存使用和操作 146
5.4.4 Rust的所有權規(guī)則 147
5.4.5 Rust借用和引用規(guī)則 148
5.4.6 內存釋放 148
5.4.7 內存安全 149
5.5 實現(xiàn)動態(tài)數(shù)據(jù)結構 150
5.5.1 模板引擎設計的變化 152
5.5.2 編寫動態(tài)數(shù)據(jù)結構的代碼 154
5.6 小結 159
5.7 延伸閱讀 159
第6章 在Rust中使用文件和目錄 161
6.1 技術要求 161
6.2 理解用于文件操作的Linux系統(tǒng)調用 161
6.3 在Rust中執(zhí)行文件I/O操作 164
6.3.1 創(chuàng)建 166
6.3.2 打開 166
6.3.3 復制 167
6.3.4 重命名 167
6.3.5 讀取 167
6.3.6 寫入 168
6.3.7 查詢 168
6.3.8 元數(shù)據(jù) 169
6.3.9 關閉 170
6.4 了解目錄和路徑操作 170
6.4.1 讀取目錄條目的詳細信息 172
6.4.2 以編程方式創(chuàng)建目錄結構 173
6.4.3 動態(tài)構造路徑字符串 173
6.5 設置硬鏈接、符號鏈接和執(zhí)行查詢 174
6.5.1 創(chuàng)建硬鏈接 175
6.5.2 創(chuàng)建和查詢符號鏈接 175
6.6 在Rust中編寫shell命令 176
6.6.1 代碼概述 176
6.6.2 錯誤處理 178
6.6.3 源指標計算 180
6.6.4 main()函數(shù) 184
6.7 小結 186
第7章 在Rust中實現(xiàn)終端I/O 187
7.1 技術要求 187
7.2 終端I/O基礎知識 188
7.2.1 終端的特性 188
7.2.2 Termion Crate 189
7.2.3 定義項目構建內容 190
7.3 處理終端用戶界面和光標 192
7.3.1 編寫數(shù)據(jù)結構和main()函數(shù) 192
7.3.2 初始化文本查看器并獲取終端大小 195
7.3.3 顯示文檔并設置終端顏色、樣式和光標位置 196
7.3.4 退出文本查看器 197
7.4 處理鍵盤輸入和滾動 198
7.4.1 偵聽用戶的按鍵 199
7.4.2 定位終端光標 200
7.4.3 在終端上啟用滾動功能 202
7.5 處理鼠標輸入 203
7.6 小結 205
第8章 處理進程和信號 207
8.1 技術要求 207
8.2 理解Linux進程概念和系統(tǒng)調用 208
8.2.1 程序和進程之間的區(qū)別 208
8.2.2 程序內存布局和進程管理 209
8.3 深入了解Linux進程基礎知識 211
8.3.1 進程管理關鍵任務分解 211
8.3.2 創(chuàng)建新進程 212
8.3.3 檢查子進程的狀態(tài) 213
8.3.4 使用進程間通信 213
8.3.5 設置環(huán)境變量 213
8.3.6 終止進程 214
8.3.7 處理信號 214
8.4 使用Rust生成進程 214
8.4.1 生成新的子進程 214
8.4.2 終止進程 216
8.4.3 檢查子進程的執(zhí)行狀態(tài) 217
8.5 處理I/O和環(huán)境變量 218
8.5.1 處理子進程的I/O 218
8.5.2 為子進程設置環(huán)境變量 220
8.6 處理恐慌、錯誤和信號 221
8.6.1 中止當前進程 221
8.6.2 信號處理 223
8.7 用Rust編寫shell程序 225
8.7.1 新建項目 225
8.7.2 迭代1—生成執(zhí)行命令的子進程 225
8.7.3 迭代2—添加對命令參數(shù)的支持 227
8.7.4 迭代3—支持自然語言命令 228
8.7.5 測試和錯誤處理 229
8.7.6 練習和改進 230
8.8 小結 231
第9章 管理并發(fā) 233
9.1 技術要求 233
9.2 并發(fā)的基礎知識 234
9.2.1 并發(fā)與并行 234
9.2.2 多線程的概念 237
9.3 生成和配置線程 239
9.3.1 使用thread::spawn()函數(shù) 240
9.3.2 使用thread::Builder結構 241
9.4 線程中的錯誤處理 242
9.5 線程間消息傳遞 245
9.6 通過共享狀態(tài)實現(xiàn)并發(fā) 247
9.6.1 互斥鎖和原子引用計數(shù) 248
9.6.2 定義程序結構 249
9.6.3 匯總共享狀態(tài)下的源文件統(tǒng)計信息 250
9.7 使用計時器暫停線程執(zhí)行 254
9.8 小結 255

第3篇 高 級 主 題
第10章 處理設備I/O 259
10.1 技術要求 259
10.2 了解Linux中設備I/O的基礎知識 260
10.2.1 設備驅動程序 260
10.2.2 設備類型 262
10.3 執(zhí)行緩沖讀取和寫入操作 263
10.4 使用標準輸入和輸出 266
10.5 I/O上的鏈接和迭代器 268
10.6 處理錯誤和返回值 270
10.7 獲取已連接USB設備的詳細信息 272
10.7.1 設計項目 272
10.7.2 編寫數(shù)據(jù)結構和工具函數(shù) 274
10.7.3 編寫main()函數(shù) 276
10.8 小結 278
第11章 學習網(wǎng)絡編程 279
11.1 技術要求 279
11.2 Linux中的網(wǎng)絡連接基礎知識 280
11.3 理解Rust標準庫中的網(wǎng)絡原語 283
11.3.1 Rust網(wǎng)絡標準庫中的基礎數(shù)據(jù)結構 283
11.3.2 IP地址應用示例 284
11.3.3 套接字示例 286
11.4 在Rust中使用TCP和UDP進行編程 286
11.4.1 編寫UDP服務器和客戶端 286
11.4.2 編寫TCP服務器和客戶端 289
11.5 編寫一個TCP反向代理 290
11.5.1 代理服務器類型 291
11.5.2 新建項目 292
11.5.3 編寫源服務器—結構體和方法 293
11.5.4 編寫源服務器—main()函數(shù) 295
11.5.5 測試源服務器 298
11.5.6 編寫反向代理服務器 299
11.5.7 測試反向代理服務器 302
11.6 小結 303
第12章 編寫不安全Rust和FFI 305
12.1 技術要求 305
12.2 不安全Rust簡介 306
12.2.1 區(qū)分安全Rust和不安全Rust代碼 307
12.2.2 在不安全Rust中的操作 308
12.3 FFI簡介 310
12.3.1 通過FFI接口調用外部函數(shù) 310
12.3.2 跨FFI邊界共享聯(lián)合體 311
12.4 安全FFI指南 313
12.5 從C中調用Rust 314
12.5.1 項目操作步驟概述 314
12.5.2 具體操作過程 314
12.6 理解ABI 316
12.6.1 關于ABI 317
12.6.2 條件編譯選項 317
12.6.3 數(shù)據(jù)布局約定 318
12.6.4 鏈接選項 319
12.7 小結 319

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號