Comprehensive Rust(简体中文) 202412/** Birthday service interface. */ . . . . . . . . . . . . . . . . . . . . . . . . . 191 34.1.1 AIDL 接口 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 34.1.2 Generated Service API 等动态类型语言编程,那么你也能够很好地跟上进度。 10 这是演讲者备注(Speaker Notes)的示例。页面中使用它来为幻灯片添加备注信息,其内容包括讲师应涉 及的要点,以及对课堂上可能出现的典型问题的回答。 11 第 1 部分 授课 本页供课程讲师使用。 以下是有关 Google 内部开展课程的一些相关背景。 上课时间通常是从上午 9:00 到下午 4:00,中间有 1 小时的午餐休息时间。这样上午和下午就各有 3 Chromium 浏览器可以正常运行。 裸机 Rust 深入探究裸机 Rust 课程为期一天,旨在介绍如何使用 Rust 进行裸机(嵌入式)开发。其中涵盖了微控制 器和应用处理器。 对于微控制器部分,需要提前购买 BBC micro:bit v2 开发板。每个人都需要安装多个软件包,具体如欢 迎页面中所述。 14 Rust 中的并发 深入探究 Rust 中的并发 课程为期一天,旨在介绍传统并发和0 码力 | 359 页 | 1.33 MB | 10 月前3
Rust 程序设计语言 简体中文版 1.85.00(2025-02-17 发布)或更高版本并在所有项目的 Cargo.toml 文件中通过 edition = "2024"将其配置为使用 Rust 2024 edition 惯用法。请查 看第一章的 “安装” 部分了解如何安装和升级 Rust。 本书的英文原版 HTML 格式可以在 https://doc.rust-lang.org/stable/book/ 在线阅读;使用 rustup 安装的 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区、开发工具和库的开发者。我们非常欢迎你为 Rust 语言作出贡献。 7/562Rust 程序设计语言 简体中文版 重视速度和稳定性的开发者 懂。本书的重点不是程序设计本身,也不是程序设计思维。如果你完全没学过编程,建议你先 阅读专门介绍程序设计的书籍。 如何阅读本书 本书大体上假设你按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的 章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。 本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项 目章节中,我们应用目前所学的知识一同构建小型程序。第二、十二和二十一章是项目章节;0 码力 | 562 页 | 3.23 MB | 26 天前3
Rust 程序设计语言简体中文版完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 7/600 Rust 程序设计语言 简体中文版 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区、开发工具和库的开发者。我们非常欢迎你为 Rust 语言作出贡献。 重视速度和稳定性的开发者 读懂。本书的重点不是程序设计本身,也不是程序设计思维。如果你完全没学过编程,建议你 先阅读专门介绍程序设计的书籍。 如何阅读本书 本书大体上假设您按从头到尾的顺序阅读。后面的章节建立在前面章节概念的基础上。前面的 章节可能不会深入介绍部分主题,而是留待后续章节重新讨论。 本书分为两类章节:概念章节和项目章节。在概念章节中,我们学习 Rust 的某个方面。在项 目章节中,我们应用目前所学的知识一同构建小型程序。第 2、12 和 20 if let 控 制流结构。在 Rust 中,创建自定义类型需要用到结构体和枚举。 第 7 章介绍 Rust 的模块(module)系统,其中的私有性规则用来组织代码和公开的 API(应 用程序接口)。第 8 章讨论标准库提供的常见集合数据结构,例如 Vector(向量)、字符串和 Hash Map(散列表)。第 9 章探索 Rust 的错误处理的理念与技术。 第 10 章深入介绍泛型(generic)、Trait0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 语言学习笔记116 序 这份学习笔记是在学习 Rust 的过程中的记录,主要基于《Rust 程序设计语言- 简体中文版》和《RustPrimer》两份开源书籍。 上面两本书籍相对全面,但对部分初学者可能更为深奥一些,尤其是之前没有 接触过 C/C++ 和 Rust 语言的读者。在学习过程中我对二份开源书籍进行了适 合的整理,又加入了一些自己学习过程中新添加的内容,于是就有了这份学习 笔记 文件生成的项目依赖详细清单文件。 Cargo 字段: 1.[package]段落描述了软件开发者对本项目的各种元数据描述信息。 2.[dependency] 3.单元测试主要通过在项目代码的测试代码部分前用#[test]属性来描述,而集 成测试,则一般都会通过 toml 文件中的[[test]]段落进行描述 4.example 用例的描述以及 bin 用例的描述。其描述方法和 test 用例描述方法 我们可以结合使用 pub use 来实现 Re-exporting。Re-exporting 的字面 意思就是 重新导出。它的意思是这样的,把深层的 item 导出到上层目录中, 使调用的时候,更方便。接口设计中会大量用到这个技术。 还是举上面那个 a::b::c::d 的例子。我们在 main.rs 中,要调用 d, 得使用 use a::b::c::d; 来调用。而如果我们修改 a/mod.rs0 码力 | 117 页 | 2.24 MB | 1 年前3
简谈 Rust 与国密 TLS - 王江桐Rust China Conf 2022 – 2023, Shanghai, China • 商用密码是中华人民共和国政府用于非国家机密信息保护所采用的一系列密码技术和密 码产品的总称,其相关技术部分为国家秘密。商用密码的研发及使用由国家密码管理局 统一管理。 • 根据国家密码管理局2007年4月23日公布的《商用密码产品使用管理规定》和《境外组 织和个人在华使用密码产品管理办法》: 使用者 若消息长度过长,需要进行分组,如果消息长度不足,则要进行填充。 • 保证数据机密性。 • 算法安全保密强度及相关软硬件实现性能与 AES 相当,该算法不公开,仅以 IP 核的形式存在于芯片 中,调用该算法时,需要通过加密芯片的接口进行调用。 • 采用该算法已经研制了系列芯片、智能 IC 卡、智能密码钥匙、加密卡、加密机等安全产品,广泛应 用于电子政务、电子商务及国民经济的各个应用领域(包括国家政务通、警务通等重要领域)。 为流密码算法,是一种对称加密加密,该机密性算法可适 用于 3GPP LTE 通信中的加密和解密,该算法包括祖冲之算法 (ZUC)、机密性算法(128-EEA3)和完整性算法(128- EIA3)三个部分。已经被国际组织 3GPP 推荐为 4G 无线通信 的第三套国际加密和完整性的标准算法,并称为ISO/IEC 国际标 准。 • 128-EEA3:流加密算法,使用 ZUC • 128-EIA3:MAC0 码力 | 44 页 | 3.70 MB | 1 年前3
WebAssembly 简介 - 陈思衡WebAssembly,如 C/C++、Rust、Go、Zig 等。 WebAssembly 简介 Photo / image / chart Wasm 的 memory 是 host 内存中的一部分。 对于 Wasm 而言,这块内存是从 0 开始的,而不是 host 所看到的地址。 WebAssembly 机制 memory Wasm 编写的 function 可以通过 “export” WASI),它定义了一组 WASM 模块可以调用的系统调用接口。WASI 的目的是让 WASM 模块可以访问底层系统的功能,比如文件系统、网络等。这使得 WASM 可以作为一个更广泛的 运行时,不仅仅局限于浏览器环境。WASI 当前定义了一组 POSIX 兼容的系统调用,让 WASM 模块可以访问文件系 统。未来 WASI 还会加入更多系统接口,为 WASM 提供更广泛的系统访问能力。 WebAssembly WASM 阻塞 tokio 最终导致服务不可用的情况。 阻塞示例 WASM 使用场景和问题 利用语言本身 Async 机制 因为 Rust 的 async 机制是无栈协程,会将 async 部分在编译时隐式转换成一个 Future。 所以我们可以利用这一点来实现一个 Async 的 Wasm。 Async Wasm 解决方案 Photo / image / chart 利用本身 Async0 码力 | 24 页 | 773.46 KB | 1 年前3
洛佳 组件化驱动、ROM运行环境与RustSBI2023年的RustSBI 作为RISC-V SBI固件的RustSBI,2023年 将与UEFI、LinuxBoot擦出火花。在驱 动、环境和SBI接口的基础上,提供快速 实现具体引导流程的解决方案。 目录 组件化驱动 第 01 部分 什么是组件化驱动? 运 用 生 命 周 期 、可 变 性 等 最 新 的 编 程 语 言 理 论 成 果 ,构 造 适 应 开 发 需 求 的 驱 动 于 运 行 环 境 ROM运行环境 第 02 部分 裸机和引导程序的ROM阶段 高级语言环境 初始化bss段、data段, 加载栈寄存器,构成高级 语言运行的最小环境 生成镜像结构 外设和时钟 提供具备所有权的外设 列表,提供ROM初始化 完成的时钟配置 编译时生成镜像头,通 常包含处理器配置、时 钟和闪存配置等部分 #[entry] 过程宏 • 过程宏是卫生宏,完成语法树间的转 , 并 加 载 相 关 的 固 件 。 相 比 额 外 引 导 程 序 而 言 , 节 省 引 导 链 级 数 , 增 加 安 全 性 和 效 率 。 2023年的RustSBI 第 03 部分 RustSBI软件架构更新 • RISC-V SBI可运用于机器态和虚拟化 的宿主态,此时RustSBI实现应为虚 拟机提供电源、核管理等功能。 • 嵌套虚拟化存在时,RustSBI实现应 当为内部虚拟机软件模拟H指令集。0 码力 | 21 页 | 3.12 MB | 1 年前3
在Solana合约链实现IBC协议跨链互操作 - 苏胤榕IBC在Solana上的实现> 集成ibc-rs仓库实现solana-ibc TAO 集成ibc-rs仓库实现Solana-ibc TAO 在Relayer侧(中继器)需要实现的对应链的创建查询接口 为什么能将所有Rust合约链看作ICS06 Solomachine Client 这里就是整个方案的核心, 为什么我能将所有的rust合约链能看作是ICS06 solomachine cleint 但是多个签名也是会出现内部作恶的,虽然是通过Dao选举出来的, 通过多个签名成员不会作恶保证。 - 改进方案,通过引入签名人池,有资格签名的人进入签名人池,之 后通过合约随机选取部分签名人,只要这一部分签名人的1/3即可。这种方法 保证了随机公平性(这里的公平性需要更好的随机算法实现)。创新的核心就 是通过随机选择签名人。进而这个方案可以快速的推广到更多不同共识算法的 Rust合约链(Substrate0 码力 | 29 页 | 3.05 MB | 1 年前3
基于静态分析的Rust内存安全缺陷检测研究>>>, } 方法一:智能指针 方法二:允许使用裸指针 Unsafe Rust ❑ Unsafe Rust功能: ▪ 解引用裸指针 ▪ 调用unsafe函数 ▪ 调用FFI(其它语言接口) ❑ 使用条件:必须标注unsafe let mut num = 5; let r1 = &num as *const i32; unsafe { println!("r1 is: ❑ 调研了2020年12月31日前报告的185个内存安全漏洞[TOSEM'21] ▪ Rust在内存安全防护方面效果不错 ▪ 所有的漏洞(除了1个编译器漏洞)都需要unsafe code ▪ 大部分CVEs都是 API soundness的问题(未在可执行程序中发现) Std Lib 3rd-party Libs Executables Compiler 119 CVEs + 12 (Advisory-DB)0 码力 | 28 页 | 1.55 MB | 1 年前3
Rust并行编译的挑战与突破基于条件编译的共享数据结构实现 缺点:用户需自行生成编译器 挑战:消减共享数据结构效率损失 Specailization —— 基于GAT的共享数据结构实现 接口 入口 非共享 数据结构 共享 数据结构 接口 实现 接口 实现 执行结果 同一份代码 线程数为1 线程数大于1 同一份代码 缺点:业务代码带有泛型参数 挑战:消减共享数据结构效率损失 动态线程安全检查 —— . 查询互相调用 查询缓存系统 查询依赖信息 查询结果缓存 查询执行状态 查询保存文件 性能瓶颈点 频繁访问查询系统,成为效率瓶颈点 挑战:缓存系统访问热点效率瓶颈 Sharded —— 接口统一,存储分离 cache1 cache2 cache3 cacheM ... thread1 thread2 thread3 threadN ... 根据Key哈希值决定索引 Sharded数据结构设计0 码力 | 25 页 | 4.60 MB | 1 年前3
共 30 条
- 1
- 2
- 3













