所在的位置: C++ >> C++市场 >> DatenLordRustforLinu

DatenLordRustforLinu

作者

Tina

转自InfoQ

众所周知,Linux是C语言的代言人。但是,时代变了,Rust正在兴起并赢得越来越多人的支持,它开始逐渐扮演Linux系统语言的角色。

在今年的Linux基金会开源峰会上,LinusTorvalds提到他希望看到在LinuxKernel5.20中融入Rust。内核发布周期一般是9到10周,这意味着我们可能会在8月初看到5.19。然后,如果一切顺利的话,我们将在10月下旬或年11月上旬在5.20中看到Rust。而仅在去年,LinusTorvalds才刚对Rust发表过评论,表示自己绝不会推动Linux中的Rust运动,“Rust优势的背后肯定存在复杂性,所以我会采取观望的态度,看看这些优势是否真的奏效。”

那么为什么Rust会如此快进入到Linux内核之中?这对社区、对使用Linux和Rust的公司来说意味着什么?对解答这些疑问,我们采访了跨云存储厂商达坦科技(DatenLord)的联合创始人施继成。

采访嘉宾:

施继成,达坦科技(DatenLord)联合创始人兼CTO,曾供职于Google、Alibaba等国际知名科技公司。擅长操作系统内核开发、分布式系统、嵌入式系统,对分布式数据一致性有深入的研究。发表多篇操作系统内核相关论文,累计数百次引用。

InfoQ:几年前,有一些声音表示“是时候用Rust重写操作系统了”。以您的观察来看,这能够实现吗?为什么?

施继成:如果我们将“用Rust重写操作系统”定义为从零开始搭建一个基于Rust语言的操作系统且希望其能够商业化是不太现实的。原因就在于商业化的操作系统是需要应用场景的,某一个应用场景在相当长的时间内都会主流流行一个或几个操作系统,不轻易改变,比如桌面操作系统中的Windows和MacOS,手机操作系统中的Android和iOS,以及服务器操作系统Linux,BSD和WindowsServer等。我们可以发现这些主流的操作系统是陪伴着该领域的发展成长起来的,往往都有长达几十年的历史,一旦形成主导地位不易撼动。

用户不愿意更换操作系统的原因主要是“生态依赖”——许许多多基于这些操作系统开发的应用程序和开发框架。如果说从零开始写一个操作系统还有可能由一家商业公司完成,那么完整迁移操作系统上层生态则是一个需要全人类参与的浩瀚工程。因此我认为用Rust语言从头写一个全新的基于现有成熟场景的操作系统是不现实的。

那么RustforLinux(以下简称R4L)是另外一条可行的方案,该方法之所以可行,主要原因就是不改变Linux操作系统的接口,完全兼容现有Linux上的所有应用程序。R4L仅仅是替换掉Linux内部的某些内核模块,这些用Rust完成的内核模块可以与其他内核组件完美结合,通过慢慢“蚕食”的方法,使得Linux中越来越多的组件使用Rust语言实现,最终达到提高Linux安全性的目的。当然现阶段R4L还在初级阶段,后续还有许多不确定性,需要社区和大家共同完善。

InfoQ:编写安全的C代码是可能的,那为什么还会很多人认为将Rust添加到Linux内核很重要?另外,将Rust添加到内核中,对社区、对贵司来说分别意味着什么?

施继成:“编写安全的C代码是可能的”这句话本身没有错,使用任何语言都有可能写出安全的代码,但程序员们为什么还要选择一种安全的语言呢?因为程序员也是人,是人就会犯错,程序员在代码中犯下的错就是众所周知的Bug。优秀的程序员会使用各种方法避免或减少自己犯错,选择一种安全的语言,例如Rust,就是这些努力中的一种。Rust语言提供了一些特性,保证了程序员不犯内存错误和线程并发访问错误,而这些错误在内核开发中往往占据了大多数。以Windows操作系统为例,在微软年的一次演讲(


转载请注明:http://www.aierlanlan.com/rzdk/6375.html

  • 上一篇文章:
  •   
  • 下一篇文章: