17611538698
webmaster@21cto.com

Rust 之父谈系统编程与安全

编程语言 0 1251 2022-08-25 09:26:01


图片


2010 年 7 月,Graydon Hoare 在 Mozilla 年度峰会上首次展示了 Rust 编程语言。


Rust 是一种开源系统编程语言,在创建初始就考虑了速度、内存安全与并发等特性。


Rust 的内存和线程安全保证、支持社区、快速发展的工具链都很健全,许多重大项目都在用 Rust 重写。


鲜为人知的是,还有一个主要引擎名叫 Servo,它是一种 HTML 渲染引擎,最终取代 Firefox 的网页渲染引擎。Mozilla 还在 Project Quantum 下使用 Rust 重写 Firefox 的许多其他关键部分。


Fastly 选择了 Rust 来实现Lucet——它的原生 WebAssembly 编译器和运行时。Facebook 还选择了 Rust 来实施其备受争议的 Libra 区块链。


The New Stack对他进行了一次非常有意思的采访。在采访中,他谈到了系统编程的当前状态,他认为我们当前的复杂系统有多不安全,如何使它们变得更安全等内容。


以下是采访的主要亮点:


Hoare 于 2006 年开始将 Rust 作为一个副项目工作。


他当时的雇主是 Mozilla ,并且对这个项目非常感兴趣,还为他提供了一众工程师团队来帮助他进一步开发该编程语言。


2013 年,他经历了倦怠期,决定辞去技术负责人的职务。在完成了一些对时间不那么敏感的项目后,他离开了 Mozilla 开始为支付网络平台 Stellar 工作。2016 年,他接到 Apple 的人事电话,邀请他研究开发 Swift 编程语言。


Rust 语言目前在核心团队和一个活跃的开发者社区共同推进。


许多开发人员正在使用这种被他称为“业余时间的东西”的编程语言来创建从操作系统到虚拟现实模拟引擎以及各种软件应用程序。


它也是连续七年在Stack Overflow 开发者调查中“最受欢迎的编程语言” 。


图片

2022年StackOverflow最受欢迎编程语言排行榜


对于他为创建 Rust 编程语言所付出的辛勤工作和奉献精神,Hoare 非常谦虚。当被要求总结 Rust 的光荣历史时,他简单地说“我们很幸运”。


他补充道,“ Mozilla 愿意为这样一个项目提供这么长时间的资金;苹果、谷歌和其他公司事先为 LLVM 的工作提供了很多资金,我们能够加以利用;如此多的学术界、工业界和互联网上的才华横溢的人愿意自愿提供帮助,才使Rust走到了今天。”


系统编程与安全的现状


与他职业生涯最初的几十年相比,Hoare 认为系统编程语言的状态目前是“健康的”。现在,销售一种专注于性能和正确性的语言要容易得多。由于学术界和工业界之间的互动越来越多,我们看到更多优秀的编程语言进入市场。


当被问及安全性问题时,Hoare 认为,尽管我们正在慢慢采取措施以提高安全性,但总体情况并没有好转。他认为构建许多新的复杂计算系统会使情况变得更糟。


他说,“超出理解的复杂性意味着我们通常甚至无法定义安全性,更不用说构建执行它的机制了。”


他认为的另一个原因是工业领域存在大量易受攻击的软件,可以随时被不法分子利用。例如,Firefox 中的一个零日漏洞刚刚被修复,该漏洞已经被攻击者“在野利用”。“就像 20 世纪的大部分遗产一样,软件中存在巨大的混乱,需要几代人才能清理,假设人类甚至可以存活那么久的话,” Hoare 补充道。


Rust 如何让系统编程更安全?


Hoare 在设计 Rust 时考虑到了安全性。其丰富的类型系统和所有权模型确保了内存和线程安全。


然而,他建议在系统编程的安全性方面开发者们还可以做得更好。他列出了一堆可以实现的新改进,“信息流控制系统、效果系统、细化类型、流动类型、事务系统、一致性系统、会话类型、单元检查、已验证的编译器和链接器、依赖类型等。”


Hoare 认为,学术界已经提出了许多安全特征。我们面临的主要挑战是“以一种平衡的、适合小众市场的语言来实现这些特性,这种语言足以让工业界程序员接受与使用。”



评论