洛佳 组件化驱动、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
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个月 训练营的学习情况统计 是否学习过OS课程? 是否学习过Rust编程? 90%以上是初学Rust 75%以上是初学OS 训练营培养 Rust OS 人才的三个方向 Rust for Linux 驱动开发 组件化OS 内核开发 多核异构处理器 虚拟化开发 Rust OS 产学研用生态建设 用 研 学 产 智能网联汽车操作系统,工业安全操作系统, 机器人操作系统,物联网AIoT等 鹏城实0 码力 | 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 简介 app chain特点: ● Runtime 安全有开发者完全负责 ● 获取链上所有状态 ● 高度定制化,包括共识,通证,交易 方式 一个开源、模块化、可扩展的区块链开 发框架,涵盖了区块链的核心组件: ● Database layer ● P2P ● PoS ● Transaction pool ● Full / light client ● Runtime modules Substrate简介 Substrate Runtime Module Library 提供一系列的即插即用的功能,如 资产管理、共识、合约、自治等。 你也可以开发自己的Runtime组 件。 Substrate Runtime 组件 Substrate Runtime Module Library (SRML) assets aura balances consensus contract council democracy0 码力 | 37 页 | 967.22 KB | 1 年前3
KCL: Rust 在编译器领域的实践与探索LSP 极大的提升了用户体验 端到端响应时间: 6s -> 100 ms 04 更多的探索 CompilerBase: 通用编译器组件 IDE 友好的编译器架构 RustCodeBook: Rust源码解读 Compiler Base: 更通用的编译器组件 KCL Source Code AST LLVM IR Native/WASM Smart Contract Source0 码力 | 25 页 | 3.50 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0名来发布工作空间中的某个 特定的 crate。 现在尝试以类似 add_one crate 的方式向工作空间增加 add_two crate 来作为更多的练习! 随着项目增长,考虑使用工作空间:每一个更小的组件比一大块代码要容易理解。如果它们经 常需要同时被修改的话,将 crate 保持在工作空间中更易于协调 crate 的改变。 316/562Rust 程序设计语言 简体中文版 使用 cargo install future 是一个现在可能还没有准备好但将在未来某个时刻准备好的值。(相同的概念也出现在 很多语言中,有时被称为 “task” 或者 “promise”。)Rust 提供了 Future trait 作为基础组件, 这样不同的异步操作就可以在不同的数据结构上实现。在 Rust 中,我们称实现了 Future trait 的类型为 future。每个 future 会维护自身的进度状态信息以及对 “ready” URL,并发地抓取它们,并返回第一个完成解析的结果。这个示例会引入不少新 语法,不过不用担心 – 我们会逐步解释所有你需要了解的内容。 第一个异步程序 为了保持本章的内容专注于学习 async,而不是在生态系统的诸多组件之间周旋,我们已经创 建了一个 trpl crate(trpl 是 “The Rust Programming Language” 的缩写)。它重导出了你 需要的所有类型、traits 和函数,它们主要来自于0 码力 | 562 页 | 3.23 MB | 26 天前3
Rust 程序设计语言简体中文版名来发布工作空间中的某 个特定的 crate。 现在尝试以类似 add_one crate 的方式向工作空间增加 add_two crate 来作为更多的练习! 随着项目增长,考虑使用工作空间:每一个更小的组件比一大块代码要容易理解。如果它们经 常需要同时被修改的话,将 crate 保持在工作空间中更易于协调 crate 的改变。 367/600 Rust 程序设计语言 简体中文版 1 4 . components ,其包含实现了 Draw trait 的 trait 对象的 vector 在 Screen 结构体上,我们将定义一个 run 方法,该方法会对其 components 上的每一个组件 调用 draw 方法,如示例 17-5 所示: 文件名:src/lib.rs # pub trait Draw { # fn draw(&self); # } # # pub struct 一种 Screen 结构体的替代实现,其 run 方法使用泛型和 trait bound 这限制了 Screen 实例必须拥有一个全是 Button 类型或者全是 TextField 类型的组件列表。 如果只需要同质(相同类型)集合,则倾向于使用泛型和 trait bound,因为其定义会在编译 时采用具体类型进行单态化。 另一方面,通过使用 trait 对象的方法,一个 Screen0 码力 | 600 页 | 12.99 MB | 1 年前3
使用Rust与ClickHouse构建高效可靠的日志系统属于腾讯专有云PaaS平台(TCS) • 承接TCS底座日志 • 从Loki=>Menicus • 提供日志的搜索/报警/处理等功能 系统介绍 • 为什么放弃 Loki • 资源占用过大 • 统计/计算能力比较弱 • 组件过多,排查问题比较困难 • 商业使用不友好的开源协议 • 为什么选择Mencius+ClickHouse • 存储计算与业务分离 • 计算/统计能力更强 • 资源占用更小,性能更好 • 更友好的开源协议0 码力 | 19 页 | 2.66 MB | 1 年前3
秘猿先锋-文愿-Axon 应用链框架的 Rust 开发实践P2P (Tentacle) 4. Interoperation 5. Web3 RPC(以太坊兼容) 6. Storage (KV 数据库) 7. Executor 主要模块 • 高复杂性,组件和子系统较多,相互依赖和交互,整体结构和逻辑非常复杂,开发、 测试、调试难度大 • 可维护性,开发完成后,各个模块需要维护、升级和改进 • 可扩展性 • 高性能 • 高并发 • 高可靠性0 码力 | 32 页 | 3.63 MB | 1 年前3
Real world Rust
- Why and how we use Rust in TiKVTransaction MVCC Raft KV RocksDB Placement Driver PB PRC Client SDK PB PRC PB PRC PB PRC 主要组件 ● Asynchronous IO ○ mio ● Storage engine ○ RocksDB ● RPC ○ Protobuf PRC ● Metrics ○ Prometheus0 码力 | 29 页 | 506.53 KB | 1 年前3
Rust HTTP 协议栈在终端通信场景的实践 - 胡凯Rust 与终端 HTTP 通信场景结合 我们 Ylong HTTP 客户端库当 前实现的基础功能: ✓ 支持同步逻辑和异步逻辑 ✓ 支持 HTTP/1.1、HTTP/2、 HTTP/3 协议及其组件 ✓ 支持 HTTPS ✓ 支持客户端代理 ✓ 支持自动重定向 ✓ 支持连接管理和复用 ✓ 支持进度显示 ✓ 支持发送 Multipart/ Chunk 格式 body Rust China0 码力 | 26 页 | 1.25 MB | 1 年前3
共 14 条
- 1
- 2













