中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊

包郵 Rust系統編程

出版社:清華大學出版社出版時間:2022-09-01
開本: 其他 頁數: 348
中 圖 價:¥75.0(6.3折) 定價  ¥119.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

Rust系統編程 版權信息

Rust系統編程 本書特色

Rust是一種現代開源系統編程語言,它承諾并做到了3個領域的*佳:Java的類型安全;C++的速度、表現力和效率;無須垃圾收集器的內存安全。通讀完本書,你會對如何使用Rust管理和控制操作系統資源(如內存、文件、進程、線程、系統環境、外圍設備、網絡接口、終端和外殼程序)有清晰的了解,并掌握如何通過FFI構建跨語言綁定。在此過程中,你會對Rust為構建安全、高性能、可靠和高效的系統級軟件帶來的價值有深刻的認識。

Rust系統編程 內容簡介

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

Rust系統編程 目錄

目 錄

第1篇 Rust系統編程入門

第1章 Rust工具鏈和項目結構 3

1.1 技術要求 3

1.2 為項目選擇正確的Rust配置 4

1.2.1 選擇Rust發布通道 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 構建靜態庫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 控制測試執行 19

1.6.4 按順序或并行運行測試 21

1.7 生成項目文檔 21

1.7.1 在Crate中編寫內聯文檔注釋 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 系統行為建模 29

2.4 構建標記化器 32

2.4.1 Tokenizer數據結構 32

2.4.2 Tokenizer數據處理 36

2.5 構建解析器 40

2.5.1 Parser數據結構 41

2.5.2 Parser方法 43

2.5.3 運算符優先級 47

2.6 構建求值器 50

2.7 處理錯誤 51

2.8 綜合演練 55

2.9 小結 57

第3章 Rust標準庫介紹 59

3.1 技術要求 59

3.2 Rust標準庫和系統編程 59

3.3 探索Rust標準庫 62

3.4 面向計算的模塊 67

3.4.1 數據類型 67

3.4.2 數據處理 69

3.4.3 錯誤處理 69

3.4.4 外部函數接口 70

3.4.5 編譯器 70

3.5 面向系統調用的模塊 70

3.5.1 內存管理 70

3.5.2 并發 72

3.5.3 文件系統 73

3.5.4 輸入/輸出 73

3.5.5 網絡連接 73

3.5.6 與特定操作系統相關的模塊 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 數據結構 82

3.7.8 關鍵函數 83

3.7.9 測試用例 84

3.8 編寫模板引擎 86

3.8.1 解析器的設計 86

3.8.2 編寫解析器 87

3.8.3 支持函數 88

3.8.4 main()函數 91

3.8.5 執行模板引擎 95

3.9 小結 96

3.10 延伸閱讀 97

第4章 管理環境、命令行和時間 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 使用環境變量 108

4.3.4 使用命令行參數 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 圖像文件信息統計 117

4.4.6 錯誤處理 118

4.5 開發命令行應用程序 119

4.5.1 設計命令行界面 120

4.5.2 使用structopt對命令行二進制文件進行編碼 122

4.6 小結 125

第2篇 在Rust中管理和控制系統資源

第5章 Rust中的內存管理 129

5.1 技術要求 130

5.2 操作系統內存管理的基礎知識 130

5.2.1 內存管理生命周期 130

5.2.2 進程的內存布局 134

5.3 Rust程序的內存布局 136

5.3.1 理解Rust程序的內存布局 136

5.3.2 棧、堆和靜態內存的特性 139

5.4 Rust內存管理生命周期 141

5.4.1 Rust內存管理生命周期概述 142

5.4.2 內存分配 144

5.4.3 內存使用和操作 146

5.4.4 Rust的所有權規則 147

5.4.5 Rust借用和引用規則 148

5.4.6 內存釋放 148

5.4.7 內存安全 149

5.5 實現動態數據結構 150

5.5.1 模板引擎設計的變化 152

5.5.2 編寫動態數據結構的代碼 154

5.6 小結 159

5.7 延伸閱讀 159

第6章 在Rust中使用文件和目錄 161

6.1 技術要求 161

6.2 理解用于文件操作的Linux系統調用 161

6.3 在Rust中執行文件I/O操作 164

6.3.1 創建 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 元數據 169

6.3.9 關閉 170

6.4 了解目錄和路徑操作 170

6.4.1 讀取目錄條目的詳細信息 172

6.4.2 以編程方式創建目錄結構 173

6.4.3 動態構造路徑字符串 173

6.5 設置硬鏈接、符號鏈接和執行查詢 174

6.5.1 創建硬鏈接 175

6.5.2 創建和查詢符號鏈接 175

6.6 在Rust中編寫shell命令 176

6.6.1 代碼概述 176

6.6.2 錯誤處理 178

6.6.3 源指標計算 180

6.6.4 main()函數 184

6.7 小結 186

第7章 在Rust中實現終端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 編寫數據結構和main()函數 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進程概念和系統調用 208

8.2.1 程序和進程之間的區別 208

8.2.2 程序內存布局和進程管理 209

8.3 深入了解Linux進程基礎知識 211

8.3.1 進程管理關鍵任務分解 211

8.3.2 創建新進程 212

8.3.3 檢查子進程的狀態 213

8.3.4 使用進程間通信 213

8.3.5 設置環境變量 213

8.3.6 終止進程 214

8.3.7 處理信號 214

8.4 使用Rust生成進程 214

8.4.1 生成新的子進程 214

8.4.2 終止進程 216

8.4.3 檢查子進程的執行狀態 217

8.5 處理I/O和環境變量 218

8.5.1 處理子進程的I/O 218

8.5.2 為子進程設置環境變量 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—生成執行命令的子進程 225

8.7.3 迭代2—添加對命令參數的支持 227

8.7.4 迭代3—支持自然語言命令 228

8.7.5 測試和錯誤處理 229

8.7.6 練習和改進 230

8.8 小結 231

第9章 管理并發 233

9.1 技術要求 233

9.2 并發的基礎知識 234

9.2.1 并發與并行 234

9.2.2 多線程的概念 237

9.3 生成和配置線程 239

9.3.1 使用thread::spawn()函數 240

9.3.2 使用thread::Builder結構 241

9.4 線程中的錯誤處理 242

9.5 線程間消息傳遞 245

9.6 通過共享狀態實現并發 247

9.6.1 互斥鎖和原子引用計數 248

9.6.2 定義程序結構 249

9.6.3 匯總共享狀態下的源文件統計信息 250

9.7 使用計時器暫停線程執行 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 執行緩沖讀取和寫入操作 263

10.4 使用標準輸入和輸出 266

10.5 I/O上的鏈接和迭代器 268

10.6 處理錯誤和返回值 270

10.7 獲取已連接USB設備的詳細信息 272

10.7.1 設計項目 272

10.7.2 編寫數據結構和工具函數 274

10.7.3 編寫main()函數 276

10.8 小結 278

第11章 學習網絡編程 279

11.1 技術要求 279

11.2 Linux中的網絡連接基礎知識 280

11.3 理解Rust標準庫中的網絡原語 283

11.3.1 Rust網絡標準庫中的基礎數據結構 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()函數 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 區分安全Rust和不安全Rust代碼 307

12.2.2 在不安全Rust中的操作 308

12.3 FFI簡介 310

12.3.1 通過FFI接口調用外部函數 310

12.3.2 跨FFI邊界共享聯合體 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 數據布局約定 318

12.6.4 鏈接選項 319

12.7 小結 319



展開全部
商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 混合生育酚_醋酸生育酚粉_琥珀酸生育酚-山东新元素生物科技 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 磨煤机配件-高铬辊套-高铬衬板-立磨辊套-盐山县宏润电力设备有限公司 | 水冷散热器_水冷电子散热器_大功率散热器_水冷板散热器厂家-河源市恒光辉散热器有限公司 | 磁粉制动器|张力控制器|气胀轴|伺服纠偏控制器整套厂家--台灵机电官网 | 网络推广公司_网络营销方案策划_企业网络推广外包平台-上海澜推网络 | 南京雕塑制作厂家-不锈钢雕塑制作-玻璃钢雕塑制作-先登雕塑厂 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | Duoguan 夺冠集团| 分轨 | 上传文件,即刻分离人声和伴奏 | 列管冷凝器,刮板蒸发器,外盘管反应釜厂家-无锡曼旺化工设备有限公司 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | 萃取箱-萃取槽-PVC萃取箱厂家-混合澄清槽- 杭州南方化工设备 | 代写标书-专业代做标书-商业计划书代写「深圳卓越创兴公司」 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 起好名字_取个好名字_好名网免费取好名在线打分 | 上海道勤塑化有限公司 | 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | U拓留学雅思一站式服务中心_留学申请_雅思托福培训 | 河北码上网络科技|邯郸小程序开发|邯郸微信开发|邯郸网站建设 | 干洗店加盟_洗衣店加盟_干洗店设备-伊蔻干洗「武汉总部」 | 飞利浦LED体育场灯具-吸顶式油站灯-飞利浦LED罩棚灯-佛山嘉耀照明有限公司 | 成都离婚律师|成都结婚律师|成都离婚财产分割律师|成都律师-成都离婚律师网 | IP检测-检测您的IP质量| 山东臭氧发生器,臭氧发生器厂家-山东瑞华环保设备 | 武汉高低温试验箱_恒温恒湿试验箱厂家-武汉蓝锐环境科技有限公司 | 电抗器-能曼电气-电抗器专业制造商 | 抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司 | 雷蒙磨,雷蒙磨粉机,雷蒙磨机 - 巩义市大峪沟高峰机械厂 | 谈股票-今日股票行情走势分析-牛股推荐排行榜 | 大学食堂装修设计_公司餐厅效果图_工厂食堂改造_迈普装饰 | 锥形螺带干燥机(新型耙式干燥机)百科-常州丰能干燥工程 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 | 深圳宣传片制作-企业宣传视频制作-产品视频拍摄-产品动画制作-短视频拍摄制作公司 | 27PR跨境电商导航 | 专注外贸跨境电商 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 污水提升器,污水提升泵,污水提升装置-德国泽德(zehnder)水泵系统有限公司 | 奶茶加盟,奶茶加盟店连锁品牌-甜啦啦官网 | 软文世界-软文推广-软文营销-新闻稿发布-一站式软文自助发稿平台 | 成都治疗尖锐湿疣比较好的医院-成都治疗尖锐湿疣那家医院好-成都西南皮肤病医院 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 |