洛佳 组件化驱动、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 年前32021信创“大比武”鲲鹏基础软件开发赛道 基于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 数据库 × 使用 rust 方案介绍 - 认证流程 startup 会首先建立连接,同时会发送认证协议的版本; 服务器会响应具体的认证方式以及该认证方式所需的信息; 客户端根据要求的认证方式通过认证后,就可以向服务器端发送各种数据库命令 6 方案介绍 - 认证流程 7 方案介绍 - SHA256认证 SHA256 认证是 openGuass 在 postgres 支持的认证方法之上,额外提供的一种更安全的认证方式。 其认证流程遵循0 码力 | 14 页 | 566.24 KB | 1 年前3Comprehensive Rust(简体中文) 202412
4 编写 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 月前3Rust在Substrate 开发框架中的使用
● …… 协议: ● IPFS ● Matrix ● BitTorrent 特点: ● DHT ● 自驱动 ● 数据存储、索引 Chain-less 协议: ● IPFS ● Matrix ● BitTorrent 特点: ● DHT ● 自驱动 ● 数据存储、索引 Chain-less Vs blockchain 协议: ● Bitcoin ● Ethereum 随着区块链技术的发展,交易成本、 确认时间、能源消耗、安全性、互通 性都有极大地提升。 国际支付 金融交易 去中心自 治组织 信息登记 存证 应用链开发 - 房产登记交易平台 房主登记房产信息 房管局认证登记信 息 房主出售房产 房管局授权交易 买房购买锁定房产 05 01 02 03 04 pub struct Property{ id: Hash, size: 0 码力 | 37 页 | 967.22 KB | 1 年前3简谈 Rust 与国密 TLS - 王江桐
位,摘要值长度为 256 位,其中使用了异或、模、模加、移位、与、或、非运算,由填充、迭代过程、消息扩展和压缩 函数所构成。 • 保证信息的完整性。 • 在商用密码体系中,SM3 主要用于数字签名及验证、消息认证码生成及验证、随机数生成、密钥 扩充等。据国家密码管理局表示,其安全性及效率要高于 MD5 算法和 SHA-1 算法,与 SHA- 256 相当。 • SM3 将对长度为l(l < 2^64) 比特的消息 在商用密码体系中,SM9 主要用于用户的身份认证,据新华网公开报道,SM9 的加密强度等同于 3072 位密钥的 RSA 加密算法,也就是 128 位安全位数。 • 适用于互联网应用的各种新兴应用的安全保障,如基于云技术的密码服务、电子邮件安全、智能终 端保护、物联网安全、云存储安全等等。这些安全应用可采用手机号码或邮件地址作为公钥,实现 数据加密、身份认证、通话加密、通道加密等。 SM9 Introduction 从而比传统意义上 的公钥密码体制有许多优点,省去了证书管理等。因此,使用SM9算法不需要申请数字证 书,适用于互联网各种新兴应用的安全保障,应用可采用手机号码或邮件地址作为公钥, 实现数据加密、身份认证、通话加密、通道加密等安全应用,并具有使用方便,易于部署 的特点。 • 不同于传统签名算法的由用户随机选择私钥然后 计算得到公钥的方式,SM9 能够实现用户指定公 钥(即身份标识),密钥生成中心通过公钥计算0 码力 | 44 页 | 3.70 MB | 1 年前3Rust 在算法交易中的实际应用与积极效应
交易平台,满足自身在量化行业交易业务的同时也为 券商、量化私募等众多大型金融机构提供优质的算法 交易解决方案。 公司介绍 证监会信息技术系统备案 国家高新技术企业 科技型中小企业 双软企业资质认证 智能投研技术联盟核心成员 100+ 团队规模 80亿+ 日均成交额 100+ 合作机构 公司结构 50% 工程师 20% 策略研究 20% 运维中台 10% 市场商务 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 1. 低延迟高吞吐的一写多读消息队列 2. 基于共享内存,全用户态,零拷贝(配合 capnproto) 缺失值处理:样条插值 降维:PCA A I 信 号 生 成 LSTM 神经网络 BP 全连接网络 XGBoost 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测0 码力 | 18 页 | 3.49 MB | 1 年前3Rust 程序设计语言简体中文版
重构以改进模块化与错误处理 ................................................................................... 278 12.4. 采用测试驱动开发完善库的功能 ................................................................................ 293 12.5. Rust 能让你在更为广泛的编程领域走得更远,写出自信。(这一点并不显而易见) 举例来说,那些“系统层面”的工作涉及内存管理、数据表示和并发等底层细节。从传统角度来 看,这是一个神秘的编程领域,只为浸润多年的极少数人所触及,也只有他们能避开那些臭名 昭著的陷阱。即使谨慎的实践者,亦唯恐代码出现漏洞、崩溃或损坏。 Rust 破除了这些障碍:它消除了旧的陷阱,并提供了伴你一路同行的友好、精良的工具。想 要 abstractions)—— 将高级语言特性编 译成底层代码,并且与手写的代码运行速度同样快。Rust 努力确保代码又安全又快速。 这里提到的只是几个较大的受益群体,Rust 语言也希望能支持更多其他用户。总的来说, Rust 最重要的目标是消除数十年来程序员习以为常的取舍,让安全和高效、速度和易读易用 可以兼得。试试看 Rust,说不定它的选择就适合你。 本书适合哪些人 本书假设你已经有其0 码力 | 600 页 | 12.99 MB | 1 年前3Rust 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位主讲老师 2023 训练营的学习情况统计 是否学习过OS课程? 是否学习过Rust编程? 90%以上是初学Rust 75%以上是初学OS 训练营培养 Rust OS 人才的三个方向 Rust for Linux 驱动开发 组件化OS 内核开发 多核异构处理器 虚拟化开发 Rust OS 产学研用生态建设 用 研 学 产 智能网联汽车操作系统,工业安全操作系统, 机器人操作系统,物联网AIoT等0 码力 | 26 页 | 2.62 MB | 1 年前3Rust 程序设计语言 简体中文版 1.85.0
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255 12.4. 采用测试驱动开发完善库的功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 文本编辑器和集成开发环境(Integrated Development Environments, IDE) 本书不会假设你使用何种工具来编写 Rust 代码。几乎任何文本编辑器都可以搞定!然而,很 多文本编辑器和集成开发环境(IDE)内置了 Rust 支持。你总是可以在 Rust 官网的工具页面 找到很多相对流行的编辑器和 IDE 列表。 离线使用本书 在一些示例中,我们将会使用标准库之外的 Rust 表示这个参数是一个 引用(reference),它允许多处代码访问同一处数据,而无需在内存中 多次拷贝。引用是一个复杂的特性,Rust 的一个主要优势就是安全而简单的操纵引用。完成 当前程序并不需要了解如此多细节。现在,我们只需知道它像变量一样,默认是不可变的。因 此,需要写成 &mut guess 来使其可变,而不是 &guess。(第四章会更全面地讲解引用。) 使用 Result 类型来处理潜在的错误0 码力 | 562 页 | 3.23 MB | 9 天前3Hello 算法 1.0.0 Rust版
轮的重复后,就能将其牢记在心。 3. 阶段三:搭建知识体系。在学习方面,我们可以阅读算法专栏文章、解题框架和算法教材,以不断丰富 知识体系。在刷题方面,可以尝试采用进阶刷题策略,如按专题分类、一题多解、一解多题等,相关的 刷题心得可以在各个社区找到。 如图 0‑8 所示,本书内容主要涵盖“阶段一”,旨在帮助你更高效地展开阶段二和阶段三的学习。 第 0 章 前言 hello‑algo.com 9 图 log_recur(n: f32) -> i32 { if n <= 1.0 { return 0; } log_recur(n / 2.0) + 1 } 对数阶常出现于基于分治策略的算法中,体现了“一分为多”和“化繁为简”的算法思想。它增长缓慢,是 仅次于常数阶的理想的时间复杂度。 � ?(log ?) 的底数是多少? 准确来说,“一分为 ?”对应的时间复杂度是 ?(log? ?) 。而通过对数换底公式,我们可以 ,元素之间是一对一的顺序关系。 ‧ 非线性数据结构:树、堆、图、哈希表。 非线性数据结构可以进一步划分为树形结构和网状结构。 ‧ 树形结构:树、堆、哈希表,元素之间是一对多的关系。 ‧ 网状结构:图,元素之间是多对多的关系。 图 3‑1 线性数据结构与非线性数据结构 3.1.2 物理结构:连续与分散 当算法程序运行时,正在处理的数据主要存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方0 码力 | 383 页 | 17.61 MB | 1 年前3
共 34 条
- 1
- 2
- 3
- 4