洛佳 组件化驱动、ROM运行环境与RustSBI第三届中国Rust开发者大会 组件化驱动、ROM运行环境与RustSBI 洛佳 华中科技大学 网络空间安全学院 2023年6月 本次演讲…… 关于我…… • 笔名洛佳 • 华中科技大学网络空间安全学院研一 在读(导师:周威老师) • 研究方向:物联网安全、系统安全 • 热爱开源,乐于尝试新技术 • RustSBI项目维护者 • 致力于向科研、教学和产业界推广 Rust语言 Rust语言 汲取Rust嵌入式和操作系统生态经验,总 结而成的新一代驱动开发方法。动、静态 基地址结合,高灵活性;一次开发,同时 复用于嵌入式、固件和内核中。 # 组件化驱动 合理利用嵌入式、桌面和服务器芯片片内 ROM代码,构造零开销的运行环境。进一 步地,可完成安全引导、安全镜像分发和 通常的嵌入式开发等功能。 # ROM运行环境 # 2023年的RustSBI 作为RISC-V SBI固件的RustSBI,2023年 将与UEFI、LinuxBoot擦出火花。在驱 动、环境和SBI接口的基础上,提供快速 实现具体引导流程的解决方案。 目录 组件化驱动 第 01 部分 什么是组件化驱动? 运 用 生 命 周 期 、可 变 性 等 最 新 的 编 程 语 言 理 论 成 果 ,构 造 适 应 开 发 需 求 的 驱 动 程 序 。可 结 合 过 程 宏 等 工 程0 码力 | 21 页 | 3.12 MB | 1 年前3
2021信创“大比武”鲲鹏基础软件开发赛道
基于Rust语言的openGauss驱动2021信创“大比武”鲲鹏基础软件开发赛道 基于Rust语言的openGauss驱动 目录 1. 背景及要求 2. 方案介绍 3. 遇到的问题 4. 团队简介 3 背景 Rust是一门新兴的系统编程语言 ,专注于安全 ,尤其是并发安全,支持函数式和命令式以及泛型等编程范 式的多范式语言。 openGauss数据库是一款高性能、高安全的数据库,社区支持Rust驱动可以更方便Rust语言开发者更好地基 于openGauss开发Rust应用。 于openGauss开发Rust应用。 要求 使用Rust语言实现openGauss数据库驱动 基于SHA256进行权限认证 能够执行增删改查SQL语句 4 方案介绍 - 思路 × 参考 JDBC 标准,使用 rust 语言实现一个简单的只包含核心部分的版本 √ 基于开源的 rust-postgres 驱动开发,实现基于 sha256 的鉴权方式连接 openGuass 数据库 × 使用 rust0 码力 | 14 页 | 566.24 KB | 1 年前3
Comprehensive Rust(简体中文) 2024124 编写 UART 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 53.4.1 更多 trait . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 53.5 更好的 UART 驱动程序 . . . . . 269 53.5.2 多个寄存器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 53.5.3 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 53.5.4 开始使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 56 习题 282 56.1 RTC 驱动程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 56.2 嵌入式 Rust:进阶篇 . .0 码力 | 359 页 | 1.33 MB | 10 月前3
Rust在物理引擎研发中的应用 崔汉青Motphys CEO Motphys 驱动虚拟世界的全部运动 体验 应用 基础应用: 内容生成工具、 交易市场等 基础硬件: 5G/6G、 半导体、 VR/AR等 基础软件: 渲染引擎、 动作物理引擎等 静态表现力 动态表现力 渲染技术 动作物理技术 动作技术 Motion 物理技术 Physics 规则驱动 AI生成 数据驱动 AI加速 云原生架构和 AI 能力0 码力 | 22 页 | 1.18 MB | 1 年前3
Rust OS 开源操作系统训练营的教与学-0615-李明大实验 rCore/uCore 内核 二阶段 完成5个OS编程大实验 (2周) ArceOS 组件化 操作系统 三阶段 Hypervisor 虚拟化技术 四阶段 完成1个OS组件或驱动 (4周) 完成1个硬件虚拟化适配 (4周) 台阶式向上迈进 训练营的教学/实习安排 • 春夏季训练营 • 4.1 ~ 6.30 共3个月 • 暑期实习生计划 • 7.1 ~ 8.31 2023春夏季OS训练营案例总结 2023.4 ~ 2023.7 学员报名情况 • 以在校大学生/研究生为主 • 占比约 70% 学员技术背景调查 • 入营前的技术栈分布相对比较均衡,硬件驱动方向略多 教学安排 • 2023 春夏季训练营 • 4.3 ~ 6.30 共3个月 • 上课时间 • 每周一三五晚上8-9点 • 课程安排 • 共12周,36次课 • 12位主讲老师 训练营的学习情况统计 是否学习过OS课程? 是否学习过Rust编程? 90%以上是初学Rust 75%以上是初学OS 训练营培养 Rust OS 人才的三个方向 Rust for Linux 驱动开发 组件化OS 内核开发 多核异构处理器 虚拟化开发 Rust OS 产学研用生态建设 用 研 学 产 智能网联汽车操作系统,工业安全操作系统, 机器人操作系统,物联网AIoT等0 码力 | 26 页 | 2.62 MB | 1 年前3
Rust 是否需要另⼀种“⾊彩”的 Future? - 郭⼦兴等异步模型让 Future 的取消不 再⽆副作⽤,这可能导致严重的错误 # 不再是⽆副作⽤的取消 # 最终与折中⽅案 引⼊另⼀种“颜⾊”的 Future 以最终解决 问题,或者基于字节跳动开源的异步驱动 器 monoio 探索的折中⽅案 ⽬录 Rust 中的异步 Rust 基于 Future trait 实现异步编程 pub trait Future { type Output; also OK } monoio 中的解决⽅案 Monoio: https://github.com/bytedance/monoio 是字节跳动开源的 Rust 异步驱动器,它⽀持以 io-uring 驱动 IO。 相较于 Tokio,Monoio 移动 buffer 的所有权以避免 buffer 随着析构 Future ⽽意外释放。 �� tokio read trait0 码力 | 19 页 | 7.77 MB | 1 年前3
Rust在Substrate 开发框架中的使用● …… 协议: ● IPFS ● Matrix ● BitTorrent 特点: ● DHT ● 自驱动 ● 数据存储、索引 Chain-less 协议: ● IPFS ● Matrix ● BitTorrent 特点: ● DHT ● 自驱动 ● 数据存储、索引 Chain-less Vs blockchain 协议: ● Bitcoin ● Ethereum0 码力 | 37 页 | 967.22 KB | 1 年前3
Rust 异步并发框架在移动端的应用 - 陈明煜Future.poll() Reactor fd fd listen listen find 现有并发框架 Third Party Runtime 目前 Rust 社区最广泛使用的事件 驱动型调度框架,擅长处理大量异 步 IO 的场景。具有非常强大的生 态。 tokio 第一个适配 Rust async/await 原语 的运行时库,与 tokio 类似支持异步 IO ,目前已经半废弃 两种接口拥有两套割裂的调度模式和线程池 华为 Ylong 异步并发框架 Ylong Runtime 并发框架 华为 Rust 异步并发框架,近期计划在 OpenHarmony 上开源。与 Tokio 类似,同样为事 件驱动型调度框架,提供异步 IO 、定时器、同步原 语等功能。但额外提供: 任务优先级调度 异步并行迭代器 结构化并发 Ylong Runtime 对外 接口 APP/SA 调度器0 码力 | 25 页 | 1.64 MB | 1 年前3
Await-Tree Async Rust 可观测性的灵丹妙药 - 赵梓淇的独特优势 • Ownership 与 Lifetime • 无栈协程 Async Rust 回顾 Rust 的无栈协程抽象 — Future Async Rust 回顾 • 通过 poll 驱动的状态机 • 组合嵌套为调度单元: Task • async fn 语法糖 Async Rust 观测与调试的痛点 Async Rust 回顾 • 特性: Future 灵活的可组合性 •0 码力 | 37 页 | 8.60 MB | 1 年前3
Rust 程序设计语言简体中文版重构以改进模块化与错误处理 ................................................................................... 278 12.4. 采用测试驱动开发完善库的功能 ................................................................................ 293 12.5. 码中非常容易实现,那就是:编写测试! 292/600 Rust 程序设计语言 简体中文版 1 2 . 4 . 采 用 测 试 驱 动 开 发 完 善 库 的 功 能 采用测试驱动开发完善库的功能 ch12-04-testing-the-librarys-functionality.md commit 8fd2327e4135876b368cc2793eb4a7e455b691f0 并将所有的参数解析和错误处理留在了 src/main.rs 中,为 代码的核心功能编写测试将更加容易。我们可以直接使用多种参数调用函数并检查返回值而无 需从命令行运行二进制文件了。 在这一部分,我们将遵循测试驱动开发(Test Driven Development, TDD)的模式来逐步增 加 minigrep 的搜索逻辑。它遵循如下步骤: 1. 编写一个失败的测试,并运行它以确保它失败的原因是你所期望的。0 码力 | 600 页 | 12.99 MB | 1 年前3
共 14 条
- 1
- 2













