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

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

相关推荐

封面图片

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

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

封面图片

Linus Torvalds已经决定将Rust编程语言加入Linux内核

LinusTorvalds已经决定将Rust编程语言加入Linux内核Torvalds已经决定,Rust将很快成为Linux的一部分。这种内存安全的编程语言将加入C语言和其他传统语言,以创建无处不在的开源内核的新部件和驱动程序。围绕将Rust纳入Linux的辩论似乎已经结束。LinusTorvalds,这个开源内核的最初创造者和目前的维护者,已经决定,"除非发生一些奇怪的事情,"Rust将成为Linux6.1最终版本的一部分。PC版:https://www.cnbeta.com/articles/soft/1319041.htm手机版:https://m.cnbeta.com/view/1319041.htm

封面图片

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

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

封面图片

华为开发者提出为提高内存安全性而设计的Linux内核"沙盒模式"

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

封面图片

Rust取代C++重写Windows内核:安全高效

Rust取代C++重写Windows内核:安全高效!在以色列特拉维夫举办的BlueHatIL2023会议上,Weston提到了Windows11可以在Rust引导下启动。微软在2020年开始将部分Windows代码改写为Rust代码,最初是从DirectWriteAPI(DirectX框架的一部分)开始。DWriteCore是WindowsAppSDK中对DirectWriteAPI的实现,现在由大约152,000行Rust代码和大约96,000行C++代码组成。除了提高安全性,这种新混合代码据说还为字体操作带来了显著的性能提升(5-15%)。Windows10和11使用的是C、C++、C#和汇编语言编写的代码,包含数百万行代码,而且这些代码不太可能进行全面的基于Rust的改写。然而,Windows的主要图形设备接口(Win32GDI)正在被移植到Rust中,已经转换了36,000行代码。Weston透露,Windows内核中现在已经有一个Rust实现的SysCall。频道:@TestFlightCN

封面图片

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

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

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

启动SOSO机器人