 RustBelt - Rust 的形式化语义模型第三届中国 Rust 开发者大会 王俊吉 RustBelt - Rust 的形式化语义模型 Outline Background • RustBelt Project • Rust Types Overview Rust Semantics • Type System • The own Predict • Exclusive Ownership & Mutable Borrow0 码力 | 21 页 | 2.63 MB | 1 年前3 RustBelt - Rust 的形式化语义模型第三届中国 Rust 开发者大会 王俊吉 RustBelt - Rust 的形式化语义模型 Outline Background • RustBelt Project • Rust Types Overview Rust Semantics • Type System • The own Predict • Exclusive Ownership & Mutable Borrow0 码力 | 21 页 | 2.63 MB | 1 年前3
 洛佳 组件化驱动、ROM运行环境与RustSBI第三届中国Rust开发者大会 组件化驱动、ROM运行环境与RustSBI 洛佳 华中科技大学 网络空间安全学院 2023年6月 本次演讲…… 关于我…… • 笔名洛佳 • 华中科技大学网络空间安全学院研一 在读(导师:周威老师) • 研究方向:物联网安全、系统安全 • 热爱开源,乐于尝试新技术 • RustSBI项目维护者 • 致力于向科研、教学和产业界推广 Rust语言 Rust语言 汲取Rust嵌入式和操作系统生态经验,总 结而成的新一代驱动开发方法。动、静态 基地址结合,高灵活性;一次开发,同时 复用于嵌入式、固件和内核中。 # 组件化驱动 合理利用嵌入式、桌面和服务器芯片片内 ROM代码,构造零开销的运行环境。进一 步地,可完成安全引导、安全镜像分发和 通常的嵌入式开发等功能。 # ROM运行环境 # 2023年的RustSBI 作为RISC-V 作为RISC-V SBI固件的RustSBI,2023年 将与UEFI、LinuxBoot擦出火花。在驱 动、环境和SBI接口的基础上,提供快速 实现具体引导流程的解决方案。 目录 组件化驱动 第 01 部分 什么是组件化驱动? 运 用 生 命 周 期 、可 变 性 等 最 新 的 编 程 语 言 理 论 成 果 ,构 造 适 应 开 发 需 求 的 驱 动 程 序 。可 结 合 过 程 宏 等 工0 码力 | 21 页 | 3.12 MB | 1 年前3 洛佳 组件化驱动、ROM运行环境与RustSBI第三届中国Rust开发者大会 组件化驱动、ROM运行环境与RustSBI 洛佳 华中科技大学 网络空间安全学院 2023年6月 本次演讲…… 关于我…… • 笔名洛佳 • 华中科技大学网络空间安全学院研一 在读(导师:周威老师) • 研究方向:物联网安全、系统安全 • 热爱开源,乐于尝试新技术 • RustSBI项目维护者 • 致力于向科研、教学和产业界推广 Rust语言 Rust语言 汲取Rust嵌入式和操作系统生态经验,总 结而成的新一代驱动开发方法。动、静态 基地址结合,高灵活性;一次开发,同时 复用于嵌入式、固件和内核中。 # 组件化驱动 合理利用嵌入式、桌面和服务器芯片片内 ROM代码,构造零开销的运行环境。进一 步地,可完成安全引导、安全镜像分发和 通常的嵌入式开发等功能。 # ROM运行环境 # 2023年的RustSBI 作为RISC-V 作为RISC-V SBI固件的RustSBI,2023年 将与UEFI、LinuxBoot擦出火花。在驱 动、环境和SBI接口的基础上,提供快速 实现具体引导流程的解决方案。 目录 组件化驱动 第 01 部分 什么是组件化驱动? 运 用 生 命 周 期 、可 变 性 等 最 新 的 编 程 语 言 理 论 成 果 ,构 造 适 应 开 发 需 求 的 驱 动 程 序 。可 结 合 过 程 宏 等 工0 码力 | 21 页 | 3.12 MB | 1 年前3
 Borsh 安全高效的二进制序列化第三届中国 Rust 开发者大会 安全高效的二进制序列化 Daniel Wang @ NEAR Borsh • 运行、编码效率 • 确定性 • 跨平台兼容性 二进制序列化的问题 Binary Object Representation Serializer for Hashing • 字节级别确定性 • 执行速度快 Borsh • 轻量级 • 每一个对象与其二进制表示之间都存在一个双射映射 borsh 并没有使用 serde • 全部逻辑原生实现 • 序列化、反序列化速度大幅领先其他解决方案 执行速度 执行速度 benchmark 执行速度 benchmark 执行速度 benchmark 执行速度 benchmark • 编译后的体积更小 • borsh 序列化后的二进制更精简 轻量级 序列化结果体积对比 Borsh 基本用法 Case Study NEAR NEAR 智能合约 Case Study Solana 智能合约 Case Study • non self-describing • 保证序列化后的二进制唯一性和确定性 • 主要序列化规则 Borsh 规范 • 整数采用低字节序( little endian) 存储 • 对于动态长度的集合,先用一个 u32 存储集合 size • 对于原本无序的集合(如 hashmap ),存储时使用0 码力 | 21 页 | 3.35 MB | 1 年前3 Borsh 安全高效的二进制序列化第三届中国 Rust 开发者大会 安全高效的二进制序列化 Daniel Wang @ NEAR Borsh • 运行、编码效率 • 确定性 • 跨平台兼容性 二进制序列化的问题 Binary Object Representation Serializer for Hashing • 字节级别确定性 • 执行速度快 Borsh • 轻量级 • 每一个对象与其二进制表示之间都存在一个双射映射 borsh 并没有使用 serde • 全部逻辑原生实现 • 序列化、反序列化速度大幅领先其他解决方案 执行速度 执行速度 benchmark 执行速度 benchmark 执行速度 benchmark 执行速度 benchmark • 编译后的体积更小 • borsh 序列化后的二进制更精简 轻量级 序列化结果体积对比 Borsh 基本用法 Case Study NEAR NEAR 智能合约 Case Study Solana 智能合约 Case Study • non self-describing • 保证序列化后的二进制唯一性和确定性 • 主要序列化规则 Borsh 规范 • 整数采用低字节序( little endian) 存储 • 对于动态长度的集合,先用一个 u32 存储集合 size • 对于原本无序的集合(如 hashmap ),存储时使用0 码力 | 21 页 | 3.35 MB | 1 年前3
 Rust 程序设计语言简体中文版............................................................................... 101 5.1. 结构体的定义和实例化 ................................................................................................. 102 关键字将路径引入作用域 ............................................................................. 155 7.5. 将模块拆分成多个文件 ................................................................................................. 163 ..................................................................................... 226 11. 编写自动化测试 .................................................................................................0 码力 | 600 页 | 12.99 MB | 1 年前3 Rust 程序设计语言简体中文版............................................................................... 101 5.1. 结构体的定义和实例化 ................................................................................................. 102 关键字将路径引入作用域 ............................................................................. 155 7.5. 将模块拆分成多个文件 ................................................................................................. 163 ..................................................................................... 226 11. 编写自动化测试 .................................................................................................0 码力 | 600 页 | 12.99 MB | 1 年前3
 Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.1. 结构体的定义和实例化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 7.5. 将模块拆分成多个文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 2/562Rust 程序设计语言 简体中文版 11. 编写自动化测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 26 天前3 Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.1. 结构体的定义和实例化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 7.5. 将模块拆分成多个文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 2/562Rust 程序设计语言 简体中文版 11. 编写自动化测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 26 天前3
 Comprehensive Rust(简体中文) 202412146 26.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 26.2 文件系统层级结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 26.3 可见性 . . . . . . . . . . . . 181 IX Android 185 31 欢迎来到 Android 中的 Rust 186 32 设置 187 33 构建规则 188 33.1 Rust 二进制文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 33.2 Rust 库 . . . . . . . Interoperability with C++ . . . . . . . . . . . . . . . . . . . . . . . 237 46 添加第三方 Crate 238 46.1 配置 Cargo.tom 文件以添加 crate . . . . . . . . . . . . . . . . . . . . . . . . . 238 46.2 配置 gnrt_config.toml . . . . .0 码力 | 359 页 | 1.33 MB | 10 月前3 Comprehensive Rust(简体中文) 202412146 26.1 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 26.2 文件系统层级结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 26.3 可见性 . . . . . . . . . . . . 181 IX Android 185 31 欢迎来到 Android 中的 Rust 186 32 设置 187 33 构建规则 188 33.1 Rust 二进制文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 33.2 Rust 库 . . . . . . . Interoperability with C++ . . . . . . . . . . . . . . . . . . . . . . . 237 46 添加第三方 Crate 238 46.1 配置 Cargo.tom 文件以添加 crate . . . . . . . . . . . . . . . . . . . . . . . . . 238 46.2 配置 gnrt_config.toml . . . . .0 码力 | 359 页 | 1.33 MB | 10 月前3
 Rust 语言学习笔记.......................................... 11 1.2.2 引用外部文件模块 ................................................................ 11 1.2.3 多文件模块的层级关系 .................................................. else 和循环语句 for 和 while 的通用控制结构。和 C 和 C++ 风格的编程语言一样,代码段放在花括号中。 Rust 使用实现(implementation)、特征(trait)和结构化类型 (structured type)而不是类(class)。这点,与基于继承的 OO 语言 C++, Java 有相当大的差异。而跟 Ocaml, Haskell 这类函数式语言更加接近。 Rust 程序设计语言-简体中文版》 第一章 包管理系统与版本管理工具 包管理系统是所有语言向工程化方向走必须考虑的事情。 rust 的包管理系统和 go 的包管理系统以及 java 的包管理系统大大不同,很容 易给人造成困惑。 最主要原因是: 1.Rust 的模块支持层级结构,但这种层级结构本身与文件系统目录的层级结构 是解耦的。 因为 Rust 本身可用于操作系统的开发。 开发者需要自己去定义路径,定义0 码力 | 117 页 | 2.24 MB | 1 年前3 Rust 语言学习笔记.......................................... 11 1.2.2 引用外部文件模块 ................................................................ 11 1.2.3 多文件模块的层级关系 .................................................. else 和循环语句 for 和 while 的通用控制结构。和 C 和 C++ 风格的编程语言一样,代码段放在花括号中。 Rust 使用实现(implementation)、特征(trait)和结构化类型 (structured type)而不是类(class)。这点,与基于继承的 OO 语言 C++, Java 有相当大的差异。而跟 Ocaml, Haskell 这类函数式语言更加接近。 Rust 程序设计语言-简体中文版》 第一章 包管理系统与版本管理工具 包管理系统是所有语言向工程化方向走必须考虑的事情。 rust 的包管理系统和 go 的包管理系统以及 java 的包管理系统大大不同,很容 易给人造成困惑。 最主要原因是: 1.Rust 的模块支持层级结构,但这种层级结构本身与文件系统目录的层级结构 是解耦的。 因为 Rust 本身可用于操作系统的开发。 开发者需要自己去定义路径,定义0 码力 | 117 页 | 2.24 MB | 1 年前3
 Comprehensive Rust(繁体中文)80 16.1 標準函式庫 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 16.2 說明文件測試 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 16.3 Option . . . . thiserror and anyhow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 29.6 使用 Result 進行結構化錯誤處理 . . . . . . . . . . . . . . . . . . . . . . . . . . 169 29.6.1 解決方案 . . . . . . . . . . . . . build 在不執行的情況下 編譯專案。您會在 target/debug/ 中看到一般偵錯版本的輸出內容。使用 cargo build --release,在 target/release/ 中產生經過最佳化的發布子版本。 7. 只要編輯 Cargo.toml,即可為專案新增依附元件。執行 cargo 指令時,系統會自動下載及編譯 缺少的依附元件。 建議您鼓勵課程參與者安裝 Cargo 及使用本機編輯0 码力 | 358 页 | 1.41 MB | 10 月前3 Comprehensive Rust(繁体中文)80 16.1 標準函式庫 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 16.2 說明文件測試 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 16.3 Option . . . . thiserror and anyhow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 29.6 使用 Result 進行結構化錯誤處理 . . . . . . . . . . . . . . . . . . . . . . . . . . 169 29.6.1 解決方案 . . . . . . . . . . . . . build 在不執行的情況下 編譯專案。您會在 target/debug/ 中看到一般偵錯版本的輸出內容。使用 cargo build --release,在 target/release/ 中產生經過最佳化的發布子版本。 7. 只要編輯 Cargo.toml,即可為專案新增依附元件。執行 cargo 指令時,系統會自動下載及編譯 缺少的依附元件。 建議您鼓勵課程參與者安裝 Cargo 及使用本機編輯0 码力 | 358 页 | 1.41 MB | 10 月前3
 Comprehensive Rust(繁体中文) 20240678 16.1 標準函式庫 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 16.2 說明文件測試 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 16.3 Option . . . . thiserror and anyhow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 29.6 使用 Result 進行結構化錯誤處理 . . . . . . . . . . . . . . . . . . . . . . . . . . 167 29.6.1 解決方案 . . . . . . . . . . . . . build 在不執行的情況下 編譯專案。您會在 target/debug/ 中看到一般偵錯版本的輸出內容。使用 cargo build --release,在 target/release/ 中產生經過最佳化的發布子版本。 7. 只要編輯 Cargo.toml,即可為專案新增依附元件。執行 cargo 指令時,系統會自動下載及編譯 缺少的依附元件。 建議您鼓勵課程參與者安裝 Cargo 及使用本機編輯0 码力 | 356 页 | 1.41 MB | 1 年前3 Comprehensive Rust(繁体中文) 20240678 16.1 標準函式庫 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 16.2 說明文件測試 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 16.3 Option . . . . thiserror and anyhow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 29.6 使用 Result 進行結構化錯誤處理 . . . . . . . . . . . . . . . . . . . . . . . . . . 167 29.6.1 解決方案 . . . . . . . . . . . . . build 在不執行的情況下 編譯專案。您會在 target/debug/ 中看到一般偵錯版本的輸出內容。使用 cargo build --release,在 target/release/ 中產生經過最佳化的發布子版本。 7. 只要編輯 Cargo.toml,即可為專案新增依附元件。執行 cargo 指令時,系統會自動下載及編譯 缺少的依附元件。 建議您鼓勵課程參與者安裝 Cargo 及使用本機編輯0 码力 | 356 页 | 1.41 MB | 1 年前3
 Hello 算法 1.1.0 Rust版,我会竭尽所能,投入最大的“注意力” 来完成本书的创作。 本人自知学疏才浅,书中内容虽然已经过一段时间的打磨,但一定仍有许多错误,恳请各位老师和同学批评 指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一 愿这本书在你的脑海中轻轻响起,留下独特而深刻的旋律。 第 0 章 前言 hello‑algo.com 2 0.1 关于本书 本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂,学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 要通过动画以图解形式展示,而文字则作为解释与补充。 如果你在阅读本书时,发现某段内容提供了如图 0‑2 所示的动画图解,请以图为主、以文字为辅,综合两者0 码力 | 388 页 | 18.50 MB | 1 年前3 Hello 算法 1.1.0 Rust版,我会竭尽所能,投入最大的“注意力” 来完成本书的创作。 本人自知学疏才浅,书中内容虽然已经过一段时间的打磨,但一定仍有许多错误,恳请各位老师和同学批评 指正。 本书中的代码附有可一键运行的源文件,托管于 github.com/krahets/hello‑algo 仓库。 动画在 PDF 内的展示效果受限,可访问 hello‑algo.com 网页版以获得更优的阅读体验。 推荐语 “一 愿这本书在你的脑海中轻轻响起,留下独特而深刻的旋律。 第 0 章 前言 hello‑algo.com 2 0.1 关于本书 本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂,学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、 标题注释,用于标注函数、类、测试样例等 */ // 内容注释,用于详解代码 /** * 多行 * 注释 */ 0.2.2 在动画图解中高效学习 相较于文字,视频和图片具有更高的信息密度和结构化程度,更易于理解。在本书中,重点和难点知识将主 要通过动画以图解形式展示,而文字则作为解释与补充。 如果你在阅读本书时,发现某段内容提供了如图 0‑2 所示的动画图解,请以图为主、以文字为辅,综合两者0 码力 | 388 页 | 18.50 MB | 1 年前3
共 40 条
- 1
- 2
- 3
- 4













