Linux V4L2 VP9 编解码器内核代码将用Rust重写 提高内存安全性

Linux V4L2 VP9 编解码器内核代码将用Rust重写 提高内存安全性 请求注释"代码将 VP9 库代码移植到 Rust 中,并将 RKVDEC 和 Hantro 驱动程序代码转换为使用 Rust 版本。 Fluendo 的 Fluster 测试表明,无论是使用 Rust 还是 C 版本的代码,结果都是一样的。Almeida 对 RFC 补丁发表了如下评论:关于驱动程序,我们在不同场合已经说了很多,我觉得目前的共识是等待。这就是为什么我提出一种不同的方法:将我们的编解码器库移植到 Rust 中。在我看来,这些组件可以从 Rust 中受益匪浅,因为它们实现了复杂的算法,同时还通过 V4L2 控制来处理从用户空间接收的数据。这些算法使用从用户空间接收的数据来索引大量数组,从而受益于 Rust 的内存安全性。关于代码的第一件事是它不包含任何绑定层。这里的 Rust 代码还为 C 驱动程序提供了一个 C API。这个 C API 是由 cbindgen 自动生成的,我已经提供了如何生成的说明。我们甚至可以同时使用 C 库和 Rust 库中的函数,因为 ABI 是相同的。以上内容非常有用,因为这意味着我们可以在必要时逐段转换给定的代码库。C 驱动程序将通过 C API 正常工作,而任何新的 Rust 驱动程序都将受益于本地 Rust 接口。他在补丁封面信中继续补充道:最后,请注意这段代码只是一个概念验证,如果反响良好,我们可以推出一个正式的补丁(包括所有相关内容)"感兴趣的人可以在内核邮件列表中找到这些 RFC 补丁,同时等待其他 Linux 内核上游利益相关者的反馈。 ... PC版: 手机版:

相关推荐

封面图片

Linux 6.9 将支持 AArch64 体系上的 Rust 内核

Linux 6.9 将支持 AArch64 体系上的 Rust 内核 提交说明显示:"此提交为 Rust for AArch64 提供了构建标志。内核中已有的 Rust 核心支持将完成其余工作。这使得 Rust 联编标志中的 PAC ret 和 BTI 选项与联编 C 语言时使用的选项相匹配。Rust 样本已通过此提交的测试。"AArch64 现在是继 x86_64(以及 x86_64 用户模式 Linux"um")和 LoongArch 之后在 Linux 内核中支持 Rust 的最新架构。到目前为止,Linux 内核的 Rust 支持主要是在基础设施方面,包括各种示例代码。现在,Linux 6.8 中已经有了Rust 编写的网络 PHY 驱动程序,尽管它是从现有的 C 语言驱动程序移植过来的。Rust Apple Silicon SGX DRM 驱动程序以及其他 Rust 内核驱动程序仍在开发中。 ... PC版: 手机版:

封面图片

RISC-V 现在支持 Linux 内核中的 Rust

RISC-V 现在支持 Linux 内核中的 Rust Rust 在主线 Linux 内核中的使用仍然相当有限,迄今为止只有几个基本驱动程序,而且还在进行大量的基础架构工作,但有许多新驱动程序和其他子系统支持即将推出。RISC-V 现在支持 Linux 内核中的 Rust,这在未来将变得更加重要。Linux 6.10 的 RISC-V 更新还增加了字节/半字比较交换功能、hwprobe 中的 Zihintpause 支持、PR_RISCV_SET_ICACHE_FLUSH_CTX prctl(),以及无锁 lockrefs 支持。有关 Linux 6.10 RISC-V 更新的更多详情,请参阅Git 合并。在硬件方面,除此请求之外,还有Milk-V Mars 支持和其他新增功能。 ... PC版: 手机版:

封面图片

Linux 内核开始为 Rust 1.78 升级做准备

Linux 内核开始为 Rust 1.78 升级做准备 随着向 Rust 1.78 的转变,这是他们第一次不再需要"alloc"分叉代码,同时也为Linux 内核的 Rust 分配应用程序接口扫清了道路,进而实现其他功能,如就地模块初始化。Rust 1.78 升级补丁完成升级后,只需丢弃一些多余的导入,并为 LockClassKey 执行"Default"(默认)作为兼容性更改。Rust 1.78 新增了"feature(asm_goto)"特性、支持指向 Rust 静态的可变指针、启用调试断言时检查所有不安全的前置条件等。有关 Rust 1.78 总体变更的更多详情,请访问releases.rs。Rust 1.78 版本应在 5 月 2 日左右发布,以便为下一个内核周期(Linux 6.10)的内核代码升级留出时间。 ... PC版: 手机版:

封面图片

微软参与修改措辞与注释 提高Linux内核语言的包容性

微软参与修改措辞与注释 提高Linux内核语言的包容性 本周早些时候,微软的一位工程师为 Linux 内核开发了 Rust 语言改进补丁,而在周末假期结束时,又为 Linux 内核语言开发了更具包容性的补丁。今天,微软Linux工程师Easwar Hariharan发布了一组14个补丁,他负责Azure Linux plumbing、Azure Cobalt等云硅的启用以及虚拟化事务。微软的这一最新非核心业务Linux贡献正在清理代码中的语言,使其更具包容性。特别是根据最新的上游 I2C、SMBus 和 I3C 规范进行调整,以使用适当的术语。大部分代码和代码注释中的术语已从主从调整为控制器和目标站(或客户端)。但即使是这些补丁也会引起一些问题,因为行业规范倾向于使用新的控制器/目标术语,而不是这些新内核补丁中使用的客户端术语。在上游内核开发人员中,显然还没有就如何区分客户端和目标机达成明确的共识。这些补丁清理了近 400 行代码,包括从核心子系统代码到 AMD 和 Intel 图形驱动程序、各种媒体和 FBDEV 驱动程序,以及其他 I2C/I3C/SMBus 代码。您可以在内核邮件列表中找到微软提供的新 Linux 内核包容性语言补丁: protected]/T/ ... PC版: 手机版:

封面图片

Mozilla正在用Rust重写Firefox的崩溃报告程序

Mozilla正在用Rust重写Firefox的崩溃报告程序 虽然 Firefox 崩溃的情况有所减少,但 Mozilla 工程师认为重写崩溃报告程序对深入了解崩溃情况非常重要。由于现有的崩溃报告器错误库"困难且容易出错",他们决定用 Rust 重写它。崩溃报告程序有意不使用现有的 Firefox 代码库,根据崩溃报告的性质保持最小的代码库,并提供跨平台的原生外观,Linux 上的新崩溃报告程序继续使用 GTK 工具包。在详细介绍了基于 Rust 的实现的所有有趣技术细节后,他们展示了新的崩溃报告 GUI:现在,他们已经拥有了 Firefox 碰撞报告程序的全新简洁代码库,可以继续实施新功能,使该报告程序比之前的实现更有用。更多详细信息,请访问Mozilla Hacks 博客。 ... PC版: 手机版:

封面图片

Arm中国正在考虑将其"周易"NPU驱动程序上传到Linux内核中

Arm中国正在考虑将其"周易"NPU驱动程序上传到Linux内核中 三年前,百度的一位工程师曾关注过用于 Linux 内核的周易 AI 加速器驱动程序,但这只是一个开源的内核驱动程序,当时还缺乏一个开源的用户空间软件栈。从那时起,Arm China 就开始着手开发这个完全开放的用户/内核驱动程序栈。全志 R329 等一些 SoC 中就采用了 Arm China 的 NPU。今天,Arm China 的一位工程师宣布,希望将他们的 NPU 驱动程序上游化到加速器子系统中。目前,至少开放的用户模式驱动程序和内核驱动程序是通过Arm China在 GitHub 上的Compass NPU 驱动程序开发的。这个开源 AI 加速器驱动程序栈依赖于通过 Arm China 的 NN 图编译器将 TensorFlow Lite 和 ONNX 模型转化为可执行程序库。然后,应用程序将该可执行文件加载到用户模式驱动程序中,二进制文件提交给内核驱动程序,内核驱动程序再调度到支持的 SoC 上的 NPU 硬件。通过阿里速卖通和类似渠道可以买到一些支持 Arm China NPU 的开发板。到目前为止,邮件列表只是阐述了大家的兴趣,并找出了将 Arm China NPU 驱动程序上传到主线 Linux 内核的要求。这仍然需要上游 DRM/accel 维护者审查代码,确保其符合适当的接口等,因此前方的路还很长,但至少很高兴看到 Arm China 现在有了一个完全开源的 Linux NPU 驱动程序栈。 ... PC版: 手机版:

🔍 发送关键词来寻找群组、频道或视频。

启动SOSO机器人