Asahi Linux或继续用Rust为Apple Silicon编写GPU驱动程序

AsahiLinux或继续用Rust为AppleSilicon编写GPU驱动程序尽管有一些逆向开发者在努力为AppleSiliconMac引入Linux支持,但当前的一大阻碍,就是缺乏对GPU硬件加速特性的支持。比如早期的AsahiLinux实验,主要围绕m1n1环境开展。而下一步,他们或继续使用Rust语言来编写AppleAGX的DRM内核图形驱动程序。Phoronix指出,当前AppleM1/M2上的Linux移植工作,还停留在基于LLVM管道的CPU图形加速(或称“软解”)。而知名贡献者AsahiLina表示,他们下一步打算用Rust编程语言,为AppleAGX提供新的内核GPU加速支持。其在周四的rust-for-linux邮件公告列表中写道:AppleSiliconMac的GPU运行固件具有相当复杂的共享内存数据结构,且需要由主机来管理。基于此,我们更倾向于使用Rust,因为它具有更高的安全性、元编程、以及通用表达能力。此前我已用Python编写过一款原型驱动程序,但它是通过远程主机在用户空间里运行的。但若拥抱更高级的编程语言,将对我们的GPU逆向工程、以及基于不同理念的驱动程序设计大有裨益。当然,我有意识到Linux上的Rust支持仍处于早期阶段,但我有雄心通过自愿学习来迎接相应的挑战。在稳定到可以向上游提交之前,驱动程序还需一些时间才能达到稳定(尤其是UAPI)。如果一切顺利,Rust最迟可在接下来几个内核周期中完成合并。PC版:https://www.cnbeta.com/articles/soft/1303641.htm手机版:https://m.cnbeta.com/view/1303641.htm

相关推荐

封面图片

微软开始让开发人员用 Rust 编写 Windows 驱动程序

微软开始让开发人员用Rust编写Windows驱动程序这项工作可以追溯到很多年前。2019年7月,微软研究院发帖称,它希望"在漏洞发生之前消除一整类漏洞",提出了内存安全语言的理由,并表示"满足这些要求的最有前途的较新系统编程语言之一是最初由Mozilla发明的Rust编程语言"。该公司推崇Rust,不仅因为它的内存安全,还因为它的数据竞赛安全--确保"两个或多个线程不会不同步地访问一段内存"。2022年,Russinovich宣布:"现在是时候停止用C/C++启动任何新项目了,在需要使用非GC语言的情况下使用Rust。为了安全性和可靠性起见,业界应该宣布这些语言已被淘汰。"C#和Java等GC或垃圾回收语言适用于商业应用,但不适合底层系统代码。虽然Windows主要是用C和C++编写的。"由于各种技术和历史原因,现在大部分用户模式代码都是用C++编写的,但大部分内核代码还是用C语言编写的。"2018年,长期从事软件开发的微软软件工程师陈伟明(RaymondChen)说,虽然此后出现了Windows11,但在开发新版本时,操作系统并没有重写。硬件制造商为使其设备能在Windows中运行而使用的Windows驱动程序工具包,仍然是一个C/C++工具包。根据基于Rust的新驱动程序工具包的发布说明,其目的是同时支持WDM(Windows驱动程序模型)和WDF(Windows驱动程序框架)驱动程序。WDM驱动程序级别较低,与操作系统紧密相连,而WDF驱动程序则通过框架库与系统交互。初始资源库的重点是WDK。说明还补充说:"该项目仍处于早期开发阶段,尚不建议用于商业用途。微软鼓励进行试验和反馈,并指出开发人员可以到资源库中的GitHub讨论区寻求反馈。"一个早期问题是如何处理异常。一位开发者说:"对于Windows内核(以及整个操作系统)来说,结构化异常处理是Windows开发不可或缺的一部分,也是让Rust成为Windows内核开发现实的真正障碍。Rust没有异常,它更倾向于使用结果变量报告可恢复的错误,而在无法恢复的错误中,它会以崩溃失败的方式退出。在内核代码中,这种崩溃是不可取的,因为它会导致系统整体崩溃。"开发者约翰尼-肖(JohnnyShaw)引用了LinuxTorvalds在Linux内核(也采用了Rust)中的一段话:"因为内核代码不同于随机的用户空间系统工具。内存耗尽绝对不能导致中止。它只需要导致错误返回"。托瓦尔兹认为这是一个"根本性问题"。微软新版本库中的早期代码包括以下注释://FIXME:ShouldthistriggerBugcheckviaKeBugCheckEx?这个问题说明,在底层Windows代码中引入Rust并不仅仅是为WDKAPI添加Rust语言绑定那么简单。不过,最初的反应总体上是积极的。内存安全问题在Windows的安全性和稳定性问题中占了很大比例,因此采用Rust是一个可行的解决方案。...PC版:https://www.cnbeta.com.tw/articles/soft/1386461.htm手机版:https://m.cnbeta.com.tw/view/1386461.htm

封面图片

Linux for Apple Silicon新增首个符合标准的M1 GPU驱动程序

LinuxforAppleSilicon新增首个符合标准的M1GPU驱动程序现在,在2023年,第一个也是唯一一个符合OpenGLES3.1标准的GPU驱动程序可用于基于AppleSilicon的Mac。为了实现这一目标,作者进行了数千次测试,以确保驱动程序稳定且不会出现问题。有一个测试套件负责测试实现过程中的每项功能。测试结束后,标准机构Khronos会进行为期30天的审查。就苹果Silicon的首个符合OpenGLES3.1标准的GPU而言,没有发现任何问题。现在,M1、M1Pro、M1Max和M1Ultra处理器以及M2、M2Pro、M2Max和M2Ultra芯片都可以使用驱动程序。随着这一里程碑的实现,AsahiLinuxforMac项目可以说是苹果芯片上第一个符合任何图形标准的实现。OpenGLES3.1使应用程序能够写入屏幕上显示的特定图像,从而使算法能够灵活地进行图像处理。AsahiProject详细介绍了新功能的工作原理。有趣的是,该项目指出,苹果公司自己的AppleSilicon驱动程序却不符合任何标准图形API。既然如此,这就意味着无法保证任何使用OpenGLES、OpenGL或Vulkan等可用标准的应用程序都能在配备M1或M2处理器的计算机上运行。报道称,现实世界中也有这样的情况:"第三方MoltenVK将Vulkan的子集层叠在专有驱动程序之上。然而,这些驱动程序缺乏关键功能,从而破坏了有效的Vulkan应用程序。"如果开发者和用户还没有将他们的M1/M2电脑切换到Linux,这就会阻碍他们的工作。Linux5.19于2022年8月发布,值得一提的是它是在配备M2的MacBookAir上完成的。了解更多:https://rosenzweig.io/blog/first-conformant-m1-gpu-driver.html...PC版:https://www.cnbeta.com.tw/articles/soft/1378827.htm手机版:https://m.cnbeta.com.tw/view/1378827.htm

封面图片

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

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

封面图片

Asahi Linux符合Apple Silicon Mac上的OpenGL 4.6和OpenGL ES 3.2规范

AsahiLinux符合AppleSiliconMac上的OpenGL4.6和OpenGLES3.2规范AsahiLinux项目宣布,它在符合GPU驱动程序方面的工作达到了一个新的里程碑。继2022年8月发布符合OpenGLES3.1标准的驱动程序之后,该项目现在已经超越了苹果公司的实现,符合OpenGLES3.1和OpenGL4.6标准。这些系统和实现有很多技术背景,但从基本层面来说,AppleSiliconMac上的Linux用户将从某些应用程序中获得更好的性能。依赖Blender、Ryujinx和Citra等软件的工作负载,现在都有了与AppleSiliconMac兼容的GPU驱动程序。从OpenGL4.1跳转到OpenGL4.6增加了多项功能,例如:稳定性SPIR-V裁剪控制采样距离计算着色器升级后的转化反馈苹果要求开发者使用其MetalAPI制作应用程序,这可以减少执行任务的开销。然而,这意味着要支持一个专有系统,如果你想把你的应用程序带出苹果生态系统,那么这个系统本身就是无用的。AsahiLinux项目已经瞄准了一个新目标--Vulkan,与Metal一样,它也是一个旨在减少运行开销的驱动程序,但它是开源的。...PC版:https://www.cnbeta.com.tw/articles/soft/1418223.htm手机版:https://m.cnbeta.com.tw/view/1418223.htm

封面图片

AMD RDNA 4 GPU补丁将并入Mesa的RadeonSI Linux驱动程序

AMDRDNA4GPU补丁将并入Mesa的RadeonSILinux驱动程序我们已经有一段时间没有在Linux上看到多个GFX12/RDNA4GPU开发项目了,也没有看到Red团队如何使用"IP块"来增强他们的方法。基于这一准备情况,我们可以期待在发布时对下一代GPU提供最佳支持。现在,Phoronix报道称,RDNA4GPU启用的初期工作终于与Linux上的主流Radeon驱动程序合并,这表明我们确实接近正式发布的时间表,而且从目前的情况来看,AMD已经为发布做好了一切准备。据透露,有24个补丁被合并到Mesa24.2-devel中,其中大部分涉及平台的基本要素,如AMDAC代码、GFX12(RDNA4GPU)的ADDRLIB库代码,以及对RadeonSIOpenGL驱动程序的其他一些更改。由于这些补丁正在等待合并请求,我们没有看到任何新的或独特的内容;因此,我们就不详细介绍了。除此之外,AMD还为其RDNA4GPU推出了VCN5(VideoCodecNext)编码/解码功能:很高兴能看到这次AMD在Linux上启用RDNA和Zen架构时所采用的方法,因为从过去的情况来看,AMD在推出补丁时表现得非常勉强,有些甚至是在正式发布几天后才推出。早期的补丁还揭示了RDNA4GPU的全新光线追踪功能,更多详情请点击此处。通过这些举措,AMD准备将Linux支持提升到一个新的高度,与MESA的RADVVulkan驱动程序等替代品展开竞争。...PC版:https://www.cnbeta.com.tw/articles/soft/1430617.htm手机版:https://m.cnbeta.com.tw/view/1430617.htm

封面图片

Linux社区仍在努力于2024年禁用微软RNDIS驱动程序

Linux社区仍在努力于2024年禁用微软RNDIS驱动程序远程NDIS(RNDIS)是微软开发的用于为连接到USB总线的网络设备编写NDIS微型端口设备驱动程序。远程NDIS通过定义与总线无关的消息集并描述此消息集如何在USB总线上运行来实现此目的。由于此远程NDIS接口是标准化的,因此一组主机驱动程序可以支持连接到USB总线的任意数量的网络设备。最近几天,GregKroah-Hartman恢复了他的"rndis-removal"分支,作为USB子系统Git树的一部分。虽然现阶段并不是真正"移除"RNDIS,而只是修改Kconfig以防止驱动程序被轻易编译。一旦该分支进入Linux内核主线,几个月后如果没有问题,就可以从Linux内核中实际删除RNDIS驱动程序。补丁说明中对这一改动的描述依然如故:"微软的RNDIS协议在设计上是不安全的,在任何与不信任的主机或设备一起使用该协议的系统上都存在漏洞。 因为该协议不可能做到安全,所以只需禁用所有RNDIS驱动程序,以防止任何人再次使用它们。Windows只有XP及更新版本的系统需要这样做,比它更早的Windows系统可以使用普通的USB类协议,而这些协议不存在这些问题。Android已禁用该协议多年,所以应该不会有真正的系统仍然需要这样做了。"考虑到时间因素,我们将拭目以待rndis-removal代码是否会在即将到来的Linuxv6.9内核合并窗口中提交,以尝试将这些老化的代码从内核中移除。...PC版:https://www.cnbeta.com.tw/articles/soft/1419205.htm手机版:https://m.cnbeta.com.tw/view/1419205.htm

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

启动SOSO机器人