洛佳 组件化驱动、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
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
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 OS 开源操作系统训练营的教与学-0615-李明在读本科生 在读研究生 已工作 52% 18% 30% Rust 语言编程 RISC-V 体系结构 rCore/uCore 大实验 ArceOS 组件化OS Rust for Linux Hypervisor 虚拟化 面向高校和企业 工程师开放报名 (2周) 四个阶段的培训课程 逐级培养选拔 (12周) 50% 20% 8% 来北京实习 考研深造 进入企业工作 完成94道Rustlings编程题 (2周) OS 大实验 rCore/uCore 内核 二阶段 完成5个OS编程大实验 (2周) ArceOS 组件化 操作系统 三阶段 Hypervisor 虚拟化技术 四阶段 完成1个OS组件或驱动 (4周) 完成1个硬件虚拟化适配 (4周) 台阶式向上迈进 训练营的教学/实习安排 • 春夏季训练营 • 4.1 ~ 6.30 共3个月 • 暑期实习生计划 重要成果 • 2022:陈林峰《rCore 的龙芯平台移植》 • 2022:唐洪雨《基于Rust语言的嵌入式实时操作系统RFreeRTOS的移植》 • 2022:朱懿《zCore 操作系统容器化的探索》 • 2022:米明恒《操作系统调试器VSCode插件系统架构设计与实现》 • 2023:周子琪/周毅《ArceOS在华山派CV1811H上的移植》 • 2023:齐呈祥《hypercraft0 码力 | 26 页 | 2.62 MB | 1 年前3
Rust在Substrate 开发框架中的使用Substrate 开发框架 中的使用 内容 ● Rust 简介 ● Rust 特性 ● Why blockchain ● 什么是Substrate ● Substrate Runtime 组件 ● Substrate 应用开发 Bugs from Chrome Rust 简介 Performance Safety C, C++ Java JS, Python Rust 简介 blockchain Why blockchain? 后端: ● 开发语言:Java, Ruby ● 框架:Spring,Rails ● 数据库:Postgres, MySQL ● 自动化测试 ● CI / CD ● 部署云服务:AWS,阿里云 web 2.0 开发 前端:HTML, Javascript, CSS ● React ● Vue ● Angular 中心应用的问题: Vs application chain app chain特点: ● Runtime 安全有开发者完全负责 ● 获取链上所有状态 ● 高度定制化,包括共识,通证,交易 方式 一个开源、模块化、可扩展的区块链开 发框架,涵盖了区块链的核心组件: ● Database layer ● P2P ● PoS ● Transaction pool ● Full / light client0 码力 | 37 页 | 967.22 KB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.1. 结构体的定义和实例化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 2/562Rust 程序设计语言 简体中文版 11. 编写自动化测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253 12.3. 重构以改进模块化与错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .0 码力 | 562 页 | 3.23 MB | 21 天前3
KCL: Rust 在编译器领域的实践与探索Source Code AST Bit code VM Source Code Python code Pros Cons 简单易上手 生态丰富 研发效率高 性能问题 无法满足自动化系统需求 稳定性问题 None 空对象,属性不存在等运行时错误 我们遇到了哪些问题? 1. Go, Python, Rust 性能对比 为什么选择 Rust? > https://github LSP 极大的提升了用户体验 端到端响应时间: 6s -> 100 ms 04 更多的探索 CompilerBase: 通用编译器组件 IDE 友好的编译器架构 RustCodeBook: Rust源码解读 Compiler Base: 更通用的编译器组件 KCL Source Code AST LLVM IR Native/WASM Smart Contract Source 错误恢复: 不完整代码的编译 • 代码补全 • 错误代码的语义分析 2. 增量编译 • 大规模场景下的编译优化和 IDE 性能提升 • 编译粒度: 项目 -> 文件 -> 函数/定义 3. 结构化语义模型(Structured Semantic Model) • Using the tree as a store for semantic info is convenient in traditional0 码力 | 25 页 | 3.50 MB | 1 年前3
Rust 程序设计语言简体中文版............................................................................... 101 5.1. 结构体的定义和实例化 ................................................................................................. 102 ..................................................................................... 226 11. 编写自动化测试 ................................................................................................. ................................................................................. 276 12.3. 重构以改进模块化与错误处理 ................................................................................... 278 12.4. 采用测试驱动开发完善库的功能0 码力 | 600 页 | 12.99 MB | 1 年前3
Comprehensive Rust(简体中文) 202412的使用。课程内容 包括在 Chromium 的 gn 编译系统中使用 Rust,引入第三方 crate,以及与 C++ 的互操作性。 您需要能够构建 Chromium。为了提高速度,建议使用调试、组件构建方式,其他构建方式也可以使用。确 保所构建的 Chromium 浏览器可以正常运行。 裸机 Rust 深入探究裸机 Rust 课程为期一天,旨在介绍如何使用 Rust 进行裸机(嵌入式)开发。其中涵盖了微控制 不存在未初始化的变量。 – 不存在“双重释放”。 – 不存在“释放后使用”。 – 不存在 NULL 指针。 – 不存在被遗忘的互斥锁。 – 不存在线程之间的数据竞争。 – 不存在迭代器失效。 • 没有未定 的运行 行 :每个 Rust 语句的行为都有明确定义 – 数组访问有边界检查。 – 整数溢出有明确定义(panic 或回绕)。 • 代 言功能:具有与高级语言一样丰富且人性化的表达能力 – Pattern matching: extracting data from structures. • 方法:将函数与类型相关联。 • 特征:多个类型所共有的行为。 • 泛型:对其他类型进行类型参数化。 • 标准库类型和特征:探索 Rust 丰富的标准库。 时间表 Including 10 minute breaks, this session should take about 2 hours0 码力 | 359 页 | 1.33 MB | 10 月前3
使用Rust与ClickHouse构建高效可靠的日志系统属于腾讯专有云PaaS平台(TCS) • 承接TCS底座日志 • 从Loki=>Menicus • 提供日志的搜索/报警/处理等功能 系统介绍 • 为什么放弃 Loki • 资源占用过大 • 统计/计算能力比较弱 • 组件过多,排查问题比较困难 • 商业使用不友好的开源协议 • 为什么选择Mencius+ClickHouse • 存储计算与业务分离 • 计算/统计能力更强 • 资源占用更小,性能更好 • 更友好的开源协议 协议层 • Parser • 手写 • 为什么? • LogQL=>Token=>AST=>SQL • 测试 • Fuzz testing 处理层 • Processor • 初始化 • 静态/动态 • 执行 • 读/写 • 结构 • prediccate • process(&self, streams: Streams) -> Streams • 类型 • 修改原始数据0 码力 | 19 页 | 2.66 MB | 1 年前3
共 40 条
- 1
- 2
- 3
- 4













