< 返回版块

苦瓜小仔 发表于 2025-12-26 00:31

Tags:日报

星绽发布 0.17:Asterinas NixOS

Asterinas 0.17.0 发布,标志着该项目从“仅内核”向完整系统的转变,重点推出了集成 NixOS 用户态的 Asterinas NixOS 操作系统。

此版本显著增强了 RISC-V 架构支持,引入了命名空间、cgroups、输入子系统及 inotify 等关键内核特性,并发布了调试工具 sctrace。

此外,社区正式建立了 RFC 治理流程,且多项相关研究在 SOSP、ICSE 和 FAST 等顶级学术会议中获奖。

阅读:https://asterinas.github.io/2025/12/19/announcing-asterinas-0.17.0.html

Rust 基金会 2025 年度工作总结

Rust 基金会(Rust Foundation)对 2025 年度工作的全面回顾与总结。

2025 年是 Rust 稳定版发布 10 周年,基金会的工作重点围绕支持开发者、强化基础设施、提升安全性和拓展全球社区展开。

  1. 基础设施与 crates.io 优化
  • 成本降低与效率提升:通过将 CI 任务迁移到 GitHub 标准运行器,使 Rust 项目的 CI 成本降低了 75%
  • crates.io 改进:推出了 “受信任发布”(Trusted Publishing) 功能(支持 GitHub 和 GitLab),通过 OIDC 消除对长期 API 令牌的需求。实现了数据库查询的重大性能提升(部分操作提速 10,000 倍),并完成了后端代码向 async/await 的迁移。
  • 资产备份:为发布版本和 crates 等关键资产建立了安全的每日异地备份。
  1. 安全倡议
  • 恶意检测:建立了 crate 分析工具,快速识别并处理了 18 个恶意或可疑的 crate 文件。
  • TUF 协议推进:就 Rust 发布版本和 crates.io 实施 TUF(The Update Framework)协议达成共识,预计 2026 年开始实验性部署。
  • 沙箱与分析:在 Capslock 项目下开发了实验性的静态和运行时能力分析工具。
  1. Rust 与 C++ 互操作性
  • 标准化参与:基金会成员加入 C++ 标准委员会(WG21),提交了有关内存安全的提案,并推动在 C++ 中引入内存安全子集的共识。
  • 工具支持:资助了 BorrowSanitizer 的开发,用于检测 unsafe 互操作边界处的内存安全违规。
  1. 项目与社区支持
  • 资金投入:提供了超过 10 万美元 的差旅补助,支持 50 多名项目成员参加线下活动。资助了 5 名研究员(Fellows)和 1 名项目受助人。
  • 关键招聘:聘请了首位全职 Rust 项目经理(Tomas Sedovic)和部分 compiler-ops 合同工。
  • 全球扩展:在亚洲(中国、日本)和英国成功举办了 Rust Global 系列活动。
  1. 关键行业应用与教育
  • 安全关键系统:成立了 安全关键型 Rust 联盟(Safety-Critical Rust Consortium),联合航空、汽车、国防等领域企业制定编码规范。
  • 教育培训:启动了“Rust 基金会受信任培训计划”的研究,旨在为企业提供高质量、一致的 Rust 学习路径,相关成果将在 2026 年发布。
  • 创新实验室:在 RustConf 上启动了 Rust Innovation Lab 项目,旨在为关键的 Rust 项目提供长期的结构化支持和稳定性。
  1. 2026 年展望
  • 继续关注维护者支持。
  • 强化底层基础设施和供应链安全。
  • 为企业提供更清晰的贡献路径(通过资金、工程时间或合作伙伴关系)。

2025 年 Rust 基金会不再仅仅关注语言本身的开发,而是转向了**“成熟生态系统的运营”**——通过降低基建成本、加固供应链安全、解决 C++ 遗留互操作难题以及推动在航空航天等高安全需求领域的落地,确保 Rust 在下一个十年能持续稳定增长。

阅读:https://rustfoundation.org/2025/

Linux Plumbers Conference 演讲《Rex 及其与 Rust for Linux 的集成》

Rex 是一个基于 Rust 的内核扩展框架。它提供与 eBPF 类似的安全性保证。与 eBPF 通过内核验证器验证扩展代码安全性不同,Rex 的安全保证建立在 Rust 语言本身的安全性之上,并结合了轻量级的运行时保护。

具体来说,Rex 强制要求扩展程序使用 Rust 的安全子集编写;Rex 编译器执行安全检查并直接生成本地代码。这种方法避免了 eBPF 中过于严格的验证要求(例如,程序复杂度约束)以及由此产生的晦涩难懂的验证错误。

Rex 实现了自己的内核 crate,提供了一个安全的内核接口,该接口使用安全的 Rust 包装器和绑定封装了现有的 eBPF 接口。同时,Rex 采用了一个轻量级的运行时,实现了优雅的 Rust panic 处理机制,包括资源清理、内核栈使用情况检查和扩展程序终止。

视频:https://www.youtube.com/watch?v=ivcLS4LFfKE

仓库:https://github.com/rex-rs/rex

USENIX ATC'25 论文:https://www.usenix.org/conference/atc25/presentation/jia

讨论:你可以只使用 RefCell

RefCellRc 是独立的工具,不必总是绑定使用。

RefCell 核心功能是提供运行时检查的内部可变性,而 Rc 仅负责多重所有权。在不需要共享所有权的情况下,单独使用 RefCell 可以避免引用计数的开销,并灵活解决 Trait 限制下(如 &self)的内部状态修改问题。这种做法能让代码在保持单一所有权的同时,实现更高效的内存管理。

Reddit:https://www.reddit.com/r/rust/comments/1puewdy/reminder_you_can_use_refcell_without_rc/

--

From 日报小组 苦瓜小仔

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页