面向 Morello 的 Rust:始终在线内存安全,即使在非安全代码中
摘要
本文介绍了一种针对 Morello 能力硬件架构修改的 Rust 编译器,通过利用硬件能力,实现即使在非安全代码中也始终在线内存安全。
<p><a href="https://lobste.rs/s/hbgzbn/rust_for_morello_always_on_memory_safety">评论</a></p>
查看缓存全文
缓存时间: 2026/07/20 15:26
来源:https://drops.dagstuhl.de/storage/00lipics/lipics-vol263-ecoop2023/LIPIcs.ECOOP.2023.39/LIPIcs.ECOOP.2023.39.pdf
1 引言
2 背景
2.1 Rust
2.1.1 移动与丢弃
2.1.2 引用与生命周期
2.1.3 不安全代码
2.2 Rust 编译器
2.3 能力硬件
2.3.1 Morello 原型
3 对 Rust 编译器及标准库的调整
3.1 Rust 语义开放问题:usize
3.2 目标规格
3.3 常量求值
3.4 指针代码生成
3.5 对 LLVM 的调整
3.6 MPSC
3.7 FFI 类型
4 性能分析方法论
4.1 测试硬件
4.2 操作系统
4.3 禁用边界检查
4.4 cargo 基准测试
4.5 代码行数
4.6 测试套件
5 结果
5.1 软件边界检查的成本
5.2 硬件边界检查的成本
5.3 基准测试
5.4 结果的有效性
5.4.1 原型硬件
5.4.2 基准测试套件的选择
6 相关工作
6.1 Rust 与类型安全系统编程
6.2 先前将 Rust 移植到 CHERI 的工作
6.3 边界检查
7 未来工作
8 结论
A 测试套件
相似文章
内存安全是生死攸关的问题
作者认为,内存不安全的开源软件极易受到即将到来的人工智能漏洞查找代理的攻击,这使内存安全成为道德义务,并且Rust必须作为领先且零开销的内存安全语言取得成功。
安全变得简单 第1部分:单一所有权(并非)可选
本文介绍了一种基于线性类型和抽象解释的内存安全新方法,旨在比Rust更符合人机工程学原理地消除诸如释放后使用和内存泄漏等常见错误。
第二个黄金尖钉:跨越 Valen/Rust 边界的内存安全
Verdagon 详细介绍了实验性编程语言 Valen 如何在 Valen/Rust 边界上强制保证内存安全,通过实现分组借用(无需共享异或可变的借用检查),并能无缝直接调用 Rust 函数。
内存安全绝对主义者
本文批评了编程语言辩论中的内存安全绝对主义,认为像 Fil-C 这样的新方法也有权衡,而将 Rust 视为不安全忽略了实际好处。
安全 Rust 的边界
TokioConf 2026 的一篇演讲/博客文章探讨了如何通过为复杂指针结构实现追踪式垃圾回收,将安全 Rust 推向极限,并分享处理循环引用与原始指针 GC 设计的技巧。