热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

6岁就成“大厂团宠”,这门编程语言竟引Linux、谷歌、亚马逊共“折腰”!

有一门编程语言2015年才上线,而在这6年中,前有亚马逊赞助开发,后有谷歌宣布在Android中支持,现在Linux也要将它

有一门编程语言 2015 年才上线,而在这 6 年中,前有亚马逊赞助开发,后有谷歌宣布在 Android 中支持,现在 Linux 也要将它加入内核开发,可谓名副其实的“大厂团宠”。

你猜这是哪个编程语言?答案是:Rust !

上个月,Linux 公布 Linux-Next 初步支持 Rust 后,引发众多热议,Linux 之父 Linus Torvalds 都表示对 Rust 进驻 Linux 内核“保持观望”。

而本周,Linux 内核开发者 Miguel Ojeda 在邮件列表中发布的一封邮件再次成为焦点:在 Linux 内核中添加 Rust 支持的 RFC。

 


这封邮件较为冗长,除了发布一些用 Rust 编写的 Linux 内核补丁,还将“Linux 内核支持 Rust”这一决定的利弊和开发者的担忧都进行了说明,其中包括:

 

Linux 内核开发者对引入 Rust 的决心:明知在内核中加入第二种语言会付出更多努力,甚至一旦不再支持 Rust,用 Rust 编写的模块将更难替换。尽管如此,他们还是认为引入 Rust 的优势比成本大;
在 Linux 中加入 Rust 的目的:降低内存安全 Bug 和逻辑 Bug 等风险、作为现代编程语言的 Rust 使新的驱动程序和模块更容易编写、将有更多人参与 Linux 内核开发等;
内核环境下,Rust 相较于 C 的优势:更严格的系统可减少逻辑错误、安全代码和不安全代码之间区别明显、广泛的独立标准库等;
同样,加入 Rust 也存在一些缺点:目前的 Linux 内核更适应 C 语言、对 LLVM 的依赖、编译速度较慢等由于 Rust 是一门年轻的编程语言引发的问题,不过都有改善的余地。
此外,邮件中也说明到目前为止,在基于 x86_64、ARM64 和 PPC64LE 的 Linux 内核中,基础设施已经为支持 Rust 做好准备,其它架构和对 Rust 内核支持的构建也在逐步完善。


Linux 之父:并不讨厌

 

 

对于这封邮件的内容,大部分人都表示支持,Linus 也再次对此表达了一些看法。虽然他对 Rust 进入 Linux 内核还有一些技术上的顾虑,尤其是担忧“某些 Rust 配置可能导致死机”这个问题,但大体上“并不讨厌”。


他还补充道,比起当前的基本模块,他更希望看到一些真实的 Rust 示例作为提案的一部分,这样人们可以把它作为真正的代码片段来做一些有意义的事情。


谷歌:大力支持

而前阵子刚宣布 Android 支持 Rust 语言来开发操作系统的谷歌对 Linux 内核引入 Rust 代码也表示大力支持(之前谷歌还加入了 Miguel Ojeda 成立的 Rust for Linux 组织),谷歌 Android 团队工程师 Wedson Almeida Filho 在官方安全博客上发表了一篇有关此事的文章。

 


博文中指出,虽然近半个世纪以来,C 语言一直是编写内核的首选语言,但在高质量代码、高标准审查以及完善的防护措施下,内存安全漏洞仍然经常发生。而对 Android 来说,内核漏洞通常被认为是高危漏洞。

 

因此,谷歌表示:"我们认为,Rust 现在已经准备好与 C 语言共同成为开发内核的实用语言。它可以帮助我们减少特权代码中潜在的 Bug 和安全漏洞,同时很好地处理核心内核并保持其性能特征。"

此外,文中还详细介绍了一些 Rust 如何帮助内核开发者编写安全正确的驱动程序的示例,并且将其与现有的 C 语言版本在安全和性能方面进行对比。谷歌几乎将 Binder 所需的所有通用内核功能都进行了 Rust 支持,因此正在收集更为广泛的 Linux 内核社区反馈,争取将现有的 Rust 支持上游化。

最后,Filho 对 Linux 内核加入第二个编程语言表示期待:“这是一个激动人心的时刻,也是一个难得的机会,这可能会影响 Linux 内核的开发方式,同时也预示着 Rust 语言的发展趋势。”


网友:Linus 实际是支持 Rust 进入内核的

对于谷歌的正面支持与 Linus 的较为中立的态度,网友也进行了热议。

网友@bug77表示:

“虽然 Linus 对 Rust 还有些顾虑,但他实际上是支持在 Linux 内核中加入 Rust 的,因为在现阶段有担忧很正常。

此外,目前的讨论并不是要把 Rust 包含在内核本身,而是包含在内核驱动程序中。有问题的话可以随时方式,损害很小。

C 在未来 10 年到 20 年内都不会消失,但看看 Rust,很明显它已经从一种狂热者喜爱的语言发展成为大型公司开始评估的一种语言。”

 


网友@ssokolow:

 

“就隐式触发的复杂行为而言,Rust 更像是C 和 C++ 之间的中间地带。”

 


目前看来,Linux 5.13 发布在即,并且结合 Linus 起初对 Rust 的谨慎态度,在这个版本中引入 Rust 相关特性的可能性不大。不过不排除未来发展顺利的话,或许我们能在 Linux 5.14 中看到对 Rust 的支持。


可以关注下我的其他文章及其视频→视频、文章、资料

 


推荐阅读
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • malloc 是 C 语言中的一个标准库函数,全称为 memory allocation,即动态内存分配。它用于在程序运行时申请一块指定大小的连续内存区域,并返回该区域的起始地址。当无法预先确定内存的具体位置时,可以通过 malloc 动态分配内存。 ... [详细]
  • 华为捐赠欧拉操作系统,承诺不推商用版
    华为近日宣布将欧拉开源操作系统捐赠给开放原子开源基金会,并承诺不会推出欧拉的商用发行版。此举旨在推动欧拉和鸿蒙操作系统的全场景融合与生态发展。 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • Python错误重试让多少开发者头疼?高效解决方案出炉
    ### 优化后的摘要在处理 Python 开发中的错误重试问题时,许多开发者常常感到困扰。为了应对这一挑战,`tenacity` 库提供了一种高效的解决方案。首先,通过 `pip install tenacity` 安装该库。使用时,可以通过简单的规则配置重试策略。例如,可以设置多个重试条件,使用 `|`(或)和 `&`(与)操作符组合不同的参数,从而实现灵活的错误重试机制。此外,`tenacity` 还支持自定义等待时间、重试次数和异常处理,为开发者提供了强大的工具来提高代码的健壮性和可靠性。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 兆芯X86 CPU架构的演进与现状(国产CPU系列)
    本文详细介绍了兆芯X86 CPU架构的发展历程,从公司成立背景到关键技术授权,再到具体芯片架构的演进,全面解析了兆芯在国产CPU领域的贡献与挑战。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 【妙】bug称它为数组越界的妙用
    1、聊一聊首先跟大家推荐一首非常温柔的歌曲,跑步的常听。本文主要把自己对C语言中柔性数组、零数组等等的理解分享给大家,并聊聊如何构建一种统一化的学习思想 ... [详细]
  • 本文将带你快速了解 SpringMVC 框架的基本使用方法,通过实现一个简单的 Controller 并在浏览器中访问,展示 SpringMVC 的强大与简便。 ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 本文详细解析了Java类加载系统的父子委托机制。在Java程序中,.java源代码文件编译后会生成对应的.class字节码文件,这些字节码文件需要通过类加载器(ClassLoader)进行加载。ClassLoader采用双亲委派模型,确保类的加载过程既高效又安全,避免了类的重复加载和潜在的安全风险。该机制在Java虚拟机中扮演着至关重要的角色,确保了类加载的一致性和可靠性。 ... [详细]
  • Win10 S系统与Chrome浏览器兼容性问题分析
    2017年5月2日,微软在美国推出了最新的Windows 10 S操作系统,专为教育领域设计,旨在为教师和学生提供一系列高效的产品和服务。该系统的最大特点是其简洁的设计和快速的响应速度,然而在与某些应用的兼容性方面,特别是Chrome浏览器,仍存在一些问题。本文将深入分析这些兼容性问题,并探讨可能的解决方案。 ... [详细]
  • Android UI设计:提升用户界面体验的关键要素
    在今年的谷歌I/O开发者大会上,北京时间5月19日凌晨1点,谷歌正式推出了Android 12 Beta 1系统,并公布了参与该版本开发者Beta测试计划的手机品牌。此次发布标志着Android 12在用户体验和界面设计上的重大改进,为开发者提供了更多创新工具和资源,以进一步提升用户的交互体验。 ... [详细]
author-avatar
浅蓝色shenjinjin
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有