< 返回版块

rust 日报 babpstep 发表于 2023-10-03 22:46

Tags:uefi,ring,encrypt

Rust std 对 UEFI 的支持进入 Nightly 版本

Ayush Singh 在文章中分享了他在 Google Summer of Code 2022 项目期间,开始在 Tianocore 下为 UEFI 开发 Rust Std 的经历。经过一年的工作,UEFI Rust std 的初始支持已经合并到 Rust Nightly 中。文章中,Ayush 回顾了目前可以做什么以及他的计划。

UEFI(统一的可扩展固件接口)是一个软件程序的规范,它连接计算机的固件到其操作系统。尽管 UEFI 提供了许多 OS 原语,如分配器、stdio、网络等,并且可以在 UEFI 中运行相当复杂的应用程序,如内存检查、磁盘检查等,但在这个领域的工作主要是使用C语言完成的。

Ayush 提到,虽然使用基础的C编写 UEFI 应用程序是可能的,但你需要使用类似 EDKII 的库来超越 Hello World。

另一方面,GNU-EFI 是一组用于使用系统的本地 GCC 编译 UEFI 应用程序的库和头文件。因此,拥有 Rust std 支持将使使用标准 Rust 原语编写复杂的 UEFI 应用程序和实用程序成为可能。由于 rustc 允许交叉编译,用 Rust 编写 UEFI 应用程序就像创建一个 cargo 项目并将其编译为 *-unknown-uefi目标一样简单。

目前实现的 Rust Std 功能包括:

  • alloc:这意味着所有堆类型应该工作。
  • os_str:OsString在底层使用 UTF-16 和 UCS-2,允许更直接地转换为Rust UTF-8 字符串。
  • os::uefi 下提供了一些 UEFI 特定的功能。

Ayush 还展示了如何使用标准库创建一个小的“Hello World”应用程序,并分享了他未来的计划和工作。

原文链接

Rust 项目构建配置指南

Nicholas 重写了《Rust Performance Book》的构建配置章节。这个章节现在提供了一个更全面的指南,展示了如何在不更改源代码的情况下改变 Rust 程序的性能。包括运行速度、内存使用、二进制大小和编译时间等各个方面。

Nicholas 提到,通过简单的更改,可以大幅提高 Rust 程序的性能,并鼓励大家尝试这些方法。

原帖链接

perfance book 构建配置章节

ring 发布 0.17.0 版本

ring 是一个加密库,专注于实现、测试和优化一组通过易用 API 暴露的核心加密操作,使用 Rust、C 和汇编语言混合编写,并提供了一个 Rust API(C和汇编语言代码大部分来自 BoringSSL)。

近日,其发布了 0.17.0 版本,是一个新的 milestone。

由于 ring 库被 rustls(一个 Rust 的 TLS 实现)使用,这个更新被认为非常重要。因为 ring 之前只支持 x86 和 ARM 架构,rustls 也只能支持这些架构(尽管它是一个非常高质量的 TLS 实现),也就是所,ring 阻止了 Rust 生态系统中的其他 crate 默认使用它。而目前 ring 新增了 PowerPC,S390X,RISC-V 等架构的支持,因此应用也会更加广泛。

仓库地址

-- From 日报小组 RustPlumber

社区学习交流平台订阅:

评论区

写评论

还没有评论

1 共 0 条评论, 1 页