Rust的安全性和穩健型
Rust是圍繞安全性和穩健性而設計的。也就是,安全程式碼是不使用unsafe關鍵字的程式碼,
聲音程式碼是不會導致記憶體損壞或其他未定義行為的程式碼。“未定義行為”(UB) 在 C、C++ 和 Rust 等語言中具有特定含義,不同於“未指定”或“實現定義”行為。
Rust 最重要的特性之一是承諾所有安全程式碼都是可靠的。但是當 unsafe涉及到程式碼時,這個承諾可能會被打破,而且unsafe程式碼幾乎總是在某個地方涉及到。
資料結構喜歡Vec並且在其實現中HashMap有unsafe程式碼,就像任何與File::open作業系統對話的函式一樣。這就引出了一個常見的問題:“如果 Rust 不能保證所有安全程式碼都是可靠的,它怎麼能成為記憶體安全的語言呢?”
Rust有一個被認為是未定義的行為列表。聲音函式是保持以下不變性的函式:任何只呼叫聲音函式且不包含任何其他unsafe程式碼的程式都不能提交UB。
不直接或間接使用程式碼的函式unsafe保證是可靠的,一個不unsafe直接使用任何程式碼而至呼叫其他聲音函式的函式沒根據定義也是聲音,但是unsafe直接使用程式碼的函式和模組可能不健全,不健全函式的呼叫者也可能是不健全。模組的安全、公共API中的任何不健全都是錯誤的。
參考來源:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70008913/viewspace-2939663/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 程式碼安全性和健壯性:如何在if和assert中做選擇?
- 安全沙箱技術的原理、應用程式的安全性和穩定性
- rust trait 關聯型別和泛型的區別RustAI型別泛型
- 如何保障物聯網平臺的安全性與健壯性
- 委外加工:為OEM提供穩健的PM業務流程
- OLED材料市場穩健增長,WOLED前景光明
- 021 Rust死靈書之異常安全性Rust
- Rust的列舉型別EnumRust型別
- Rust 的三種多型性Rust多型
- Rust 中的位元組序、API 設計和多型性 - JimmyRustAPI多型
- Rust的變數型別__Data typeRust變數型別
- Rust 泛型與特性Rust泛型
- Java的慢和穩Java
- 優於人類專家,GPT-4 準確註釋單細胞型別,成本低且穩健GPT型別
- SHAREit Group持續深耕新興市場,保持穩健增長
- 讀資料工程之道:設計和構建健壯的資料系統09示例和型別型別
- 穩定幣的三大型別型別
- 穩穩的數字化轉型!華為雲SAP解決方案
- 使用Go實現健壯的記憶體型快取Go記憶體快取
- 全球智庫報告2019: 中國智庫發展穩健上升
- Rust中的Copy和CloneRust
- Rust 通過屬性設定 crate 名稱、版本和型別Rust型別
- Rust 透過屬性設定 crate 名稱、版本和型別Rust型別
- Win7和Win10累積更新齊發布 增強了穩定性與安全性Win7Win10
- Rust 中的Box型別實現堆分配Rust型別
- 可復現性?穩健性?Joelle Pineau無情揭示強化學習的問題強化學習
- IDC:敏捷基礎設施推動分散式儲存穩健增長敏捷分散式
- rust學習三、基本型別Rust型別
- Rust 資料型別介紹Rust資料型別
- 學習Rust泛型與特性Rust泛型
- rust-unofficial/awesome-rust:Rust開原始碼和資源的精選列表。Rust原始碼
- rust學習十一.1、泛型(通用型別)Rust泛型型別
- 如何優雅的編寫Java介面(安全性,可重複呼叫,穩定性,追溯性)Java
- Rust match 和 if letRust
- 主要加密貨幣資產穩健增長,總市值超過300億美元加密
- 內外合力下穩健快跑,網易有道Q2淨收入6.2億
- 網易遊戲Q3穩健增長,新品儲備多元豐富遊戲
- AAAI 2020 | 華科Oral提出TANet:提升點雲3D目標檢測的穩健性AI3D