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版: 手机版:

封面图片

微软参与修改措辞与注释 提高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版: 手机版:

封面图片

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内核"沙盒模式" 华为公司的 Petr Tesarik 发出了关于新 SandBox 模式的"征求意见"补丁系列。Petr 将 SandBox 模式描述为:"SandBox 模式的最终目标是在仅允许访问预定义地址的内存的环境中执行本地内核代码,因此潜在漏洞无法被利用或不会对内核的其他部分产生影响。该补丁系列将 SandBox 模式的 API 和架构独立的基础架构添加到内核中。它在所有输入和输出数据的 vmalloc() 编辑副本上运行目标函数。由于有了保护页,仅此一项就能防止一些越界访问"。SandBox 模式文档进一步补充道:"沙盒模式(SBM)的主要目标是通过分解内核来减少内核代码中潜在内存安全漏洞的影响。SBM API 允许在隔离的执行环境中运行每个组件。特别是,用作输入和/或输出的内存区域与内核的其他部分隔离,并由保护页包围。在实现了必要的拱形钩子的架构上,沙盒模式利用硬件分页设施和 CPU 权限级别,只强制使用这些预定义的内存区域。有了 arch 支持,SBM 还能从违反保护规定的情况中恢复。这意味着,SBM 会强制终止沙箱,并向调用者返回错误代码(如 ``-EFAULT``),以便继续执行。这种实现方式提供了*强隔离*"。上游内核开发人员对沙箱模式提案的接受程度还有待观察,有兴趣的开发者可以查看RFC 补丁系列,了解有关 Linux 内核刚刚提出的这一新增功能的更多信息。 ... 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机器人