掘金 后端 ( ) • 2021-07-04 17:19
.markdown-body{word-break:break-word;line-height:1.75;font-weight:400;font-size:15px;overflow-x:hidden;color:#333}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{line-height:1.5;margin-top:35px;margin-bottom:10px;padding-bottom:5px}.markdown-body h1{font-size:30px;margin-bottom:5px}.markdown-body h2{padding-bottom:12px;font-size:24px;border-bottom:1px solid #ececec}.markdown-body h3{font-size:18px;padding-bottom:0}.markdown-body h4{font-size:16px}.markdown-body h5{font-size:15px}.markdown-body h6{margin-top:5px}.markdown-body p{line-height:inherit;margin-top:22px;margin-bottom:22px}.markdown-body img{max-width:100%}.markdown-body hr{border:none;border-top:1px solid #ddd;margin-top:32px;margin-bottom:32px}.markdown-body code{word-break:break-word;border-radius:2px;overflow-x:auto;background-color:#fff5f5;color:#ff502c;font-size:.87em;padding:.065em .4em}.markdown-body code,.markdown-body pre{font-family:Menlo,Monaco,Consolas,Courier New,monospace}.markdown-body pre{overflow:auto;position:relative;line-height:1.75}.markdown-body pre>code{font-size:12px;padding:15px 12px;margin:0;word-break:normal;display:block;overflow-x:auto;color:#333;background:#f8f8f8}.markdown-body a{text-decoration:none;color:#0269c8;border-bottom:1px solid #d1e9ff}.markdown-body a:active,.markdown-body a:hover{color:#275b8c}.markdown-body table{display:inline-block!important;font-size:12px;width:auto;max-width:100%;overflow:auto;border:1px solid #f6f6f6}.markdown-body thead{background:#f6f6f6;color:#000;text-align:left}.markdown-body tr:nth-child(2n){background-color:#fcfcfc}.markdown-body td,.markdown-body th{padding:12px 7px;line-height:24px}.markdown-body td{min-width:120px}.markdown-body blockquote{color:#666;padding:1px 23px;margin:22px 0;border-left:4px solid #cbcbcb;background-color:#f8f8f8}.markdown-body blockquote:after{display:block;content:""}.markdown-body blockquote>p{margin:10px 0}.markdown-body ol,.markdown-body ul{padding-left:28px}.markdown-body ol li,.markdown-body ul li{margin-bottom:0;list-style:inherit}.markdown-body ol li .task-list-item,.markdown-body ul li .task-list-item{list-style:none}.markdown-body ol li .task-list-item ol,.markdown-body ol li .task-list-item ul,.markdown-body ul li .task-list-item ol,.markdown-body ul li .task-list-item ul{margin-top:0}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:3px}.markdown-body ol li{padding-left:6px}.markdown-body .contains-task-list{padding-left:0}.markdown-body .task-list-item{list-style:none}@media (max-width:720px){.markdown-body h1{font-size:24px}.markdown-body h2{font-size:20px}.markdown-body h3{font-size:18px}}

编辑: 张汉东

Rust for Linux 项目相关进展

Google 赞助 且 由 ISRG 组织雇佣 Miguel Ojeda,让他全职从事Rust for Linux和其他安全工作,为期一年。希望能通过让他全职从事这项工作,为支持数字基础设施尽一份力。

www.memorysafety.org/blog/suppor…

RustConf 2021 CFP 开放申请

RustConf 2021 大会计划于 9月14号举行, 提案开放时间为太平洋时间6月13日至7月11日晚上11:59分。

cfp.rustconf.com/events/rust…

国内新的 crates.io 和 rustup 的国内镜像

字节跳动 的小伙伴搞的,希望能帮助建设国内的 rust 生态,感兴趣的话可以试用。

不限速(实际上是 1000Gbps),优质 CDN 分发,欢迎大家使用~

有问题可以直接在评论区反馈。

rsproxy.cn/

2021 Rust China Conf 的调研

朋友们,请抽出一分钟完成一下 2021 Rust China Conf 的调研,只有3个问题 。

wj.qq.com/s2/8683119/…

【现场实录】20210619-北京-Rust区块链开发者活动

www.bilibili.com/video/BV1Jh…

RustSBI组织宣布成立

RustSBI是RISC-V平台下的引导程序实现,它完全由Rust编写,并已经被录入RISC-V SBI国际标准。6月3日,RustSBI已经在GitHub上成立了组织,并提交了它对多个RISC-V平台的支持示例软件包。

RISC-V处理器架构中,存在着定义于操作系统之下的环境,它被称作SBI标准。这个环境除了引导系统启动,还将常驻后台,在内核运行时提供处理器功能。RustSBI就是这样的一种环境,它是一个扩展性较好的库,允许开发者自由地添加需要的功能模块,以支持芯片研发企业、应用厂商和板卡厂商提供自己芯片的SBI支持环境。

根据它的GitHub主页介绍,RustSBI项目组已经根据Mulan-PSL v2协议开源了它对K210和QEMU平台的支持,更多平台如FU540、C906等的支持也在筹划中。RustSBI组织以模块化开发、较好的支持嵌入式Rust生态,期望以这一形式,使厂商无需担忧是否合并到主分支,并鼓励开发者尝试多种多样的设计,来丰富引导程序方面的RISC-V生态环境。

“未来的RISC-V引导程序可能包含很多种可能性,这包括已经用在无盘工作站、安全网络等引导程序中的下载和验证机制,也可用于DIY爱好者的主板诊断。甚至用它做调试器也是可以的,它事实上提供了完全可定制的硬件兼容层,”RustSBI的维护者洛佳这样告诉《Rust日报》,“实践证明,它可以完成硬件到硬件的兼容性,从而延长硬件的生命周期,降低管理和迭代更新成本。”

“RustSBI已经能引导启动rCore等类Unix系统,”维护者继续说,“它是开源开放的,我们期待它被更进一步的被科研、教学和生产界广泛使用。”

RustSBI组织首页:github.com/rustsbi

惊叹! Rust 在艺术领域的商业应用!

观看视频

该艺术项目使用486步进电机,86,000个LED和5通道颗粒式合成引擎,控制软件系统使用 Rust 实现,利用的是 nannou 和 koto。

该项目背后是一家德国公司:mindbuffer.net

2021年开源操作系统夏令营 欢迎报名

任何 对Rust 和 RISC-V写操作系统感兴趣的均可报名

鹏城实验室和清华大学组织的2020年开源操作系统夏令营收到同学们的积极响应,参与夏令营的同学在今年的“2021全国大学生计算机系统能力大赛 - 操作系统赛”的初赛中都有不错的表现( mp.weixin.qq.com/s/Cb2SaonAA… ),今年启元实验室、清华大学和CSDN等将继续组织“2021年开源操作系统夏令营”,希望能把对开源操作系统开发有兴趣的朋友团结在一起,形成一个活跃的开源社区。欢迎对开源操作系统有兴趣的任何人报名(需填写下面的报名问卷)参加。

2021年开源操作系统夏令营

GDC 2021 峰会 : Treyarch 公司致力于 游戏工具库的 Rust 应用

GDC (Game Developers Conference 2021) 峰会将于 7月19~23日举行。 Treyarch 公司(《使命召唤系列》游戏公司)将在该峰会发表 Rust 相关议题。

Treyarch是美国的一家电子游戏开发商,总部位于加利福尼亚州的圣莫尼卡。 Treyarch成立于1996年,2001年被美国动视收购。其代表作为《使命召唤系列》。

Rust编程语言已经悄悄地在科技界掀起风暴,但在游戏工作室中的采用却比较缓慢。自2018年以来,Treyarch一直在逐步将Rust整合到我们的工具和管道中。本次会议将利用这一经验,探讨Rust可以给游戏工具程序员带来的机遇和挑战,并研究Rust可以成为游戏工具库的有力补充的方式。

Treyarch 在 GDC 大会的议题:

  • The Rust Programming Language for Game Tooling
  • Boots on the Ground: The Terrain of 'Call of Duty'
  • Shadows of Cold War: A Scalable Approach to Shadowing

schedule.gdconf.com/session/too…

在curl中使用hyper如何帮助使互联网更安全

作者:Sean McArthur(hyper作者)

大概翻译了一下重点摘要:

今年2月,互联网安全研究小组的Josh Aas、curl的Daniel Stenberg和我(来自hyper和Amazon Web Services)联合举办了一场网络研讨会,讨论内存安全和互联网,以及在curl中使用hyper如何帮助使互联网更安全。由于curl是开源和许可的,从物联网设备到卫星,以及大多数Linux发行版中都可以找到它。Curl是那些我们认为理所当然的基础库之一,但它影响着我们的网络生活。(视频回顾:www.youtube.com/watch?v=okG…

不太安全的互联网

内存安全是编程语言或系统的一个属性,它可以保护程序不会错误地访问它不应该访问的内存,例如认为缓冲区比它大,或者从一个指针解释数据,而这个指针后来被清理并用于不同的值。缺乏内存安全是对互联网基础设施的一个严重的持续威胁,并对个人和组织都造成了重大的、有意义的损害。比如说。

  • 微软估计,在过去十年中,他们的产品中70%的漏洞都是由缺乏内存安全造成的。
  • 谷歌发现,Chrome浏览器70%的严重安全漏洞是内存安全问题。
  • Android团队报告说,他们90%的漏洞是内存安全问题。
  • Mozilla指出,Firefox在其风格组件中的74%的安全漏洞是内存安全漏洞。
  • 最近的一项研究表明,60-70%的iOS和macOS漏洞都与内存安全有关。
  • Project Zero的一项分析发现,被利用的0-day中,有超过80%是由于缺乏内存安全。

这些漏洞可能导致现实生活中的隐私被侵犯、财务损失、公共服务被剥夺,以及人权受到影响。

造成这种漏洞泛滥的一个重要原因是,许多工具是用编程语言编写的,而这些语言对内存安全漏洞的保护作用不大,甚至没有。尽管 "内存安全 "语言已经存在了很长时间,但由于性能或互操作性要求,它们经常被忽视。

通常说到内存安全就要提到 Rust 。Rust是一种较新的语言,它执行内存安全,但具有与C类似的性能和互操作性。然而,这篇博文并不是呼吁 "用Rust重写(所有)"。

重写所有的东西是不现实的,每一段代码对人类的影响也是不一样的。相反,让我们简单地走过一个实际的努力,把内存安全带到互联网的关键部分。这种努力鼓励项目用内存安全库来取代库或模块化功能,而不是着手进行基础重写。它将工作分解成可管理的部分,并逐步提供价值。

curl无处不在

curl是开始这项工作的理想人选。潜在的影响是巨大的,因为curl无处不在。根据curl网站的说法。

curl在命令行或脚本中被用来传输数据。curl也被用于汽车、电视机、路由器、打印机、音频设备、手机、平板电脑、机顶盒、媒体播放器中,并且是超过100亿套软件应用程序的互联网传输引擎。

curl也是用C语言编写的。

在最近的一篇博文中,Daniel Stenberg指出,curl有一半的漏洞是C语言的错误--换句话说,与内存安全有关。这些错误包括缓冲区超读、缓冲区溢出、使用后释放和双重释放。尽管curl处理了一大堆协议,但HTTP是内存安全漏洞的第二大领域。

我们能让curl更安全吗?

这样做会使互联网更安全,所以值得努力。而这正是我们要做的。Curl的API和ABI是稳定的 "装甲门",不会损坏。但是curl已经熟悉了为其内部实现细节选择不同的 "后端"。在此之前,curl可以被配置为内部支持TLS、DNS、压缩和其他组件的后端。我们只需要提供一个更安全的HTTP后端选项。

"此时 Hyper 加入了群聊"

Hyper是一个安全、正确、快速的Rust语言的HTTP库。Hyper是开源的,并被AWS、Buoyant、Discord、谷歌、微软、Mozilla等公司使用。它有客户端和服务器端的API,并提供对HTTP/1和HTTP/2的支持。

Rust库不会带来对新运行时的依赖,在C语言中调用Rust函数也没有开销,反之亦然。它只是需要工程师的工作来暴露一个与C语言兼容的API。

Hyper开发人员立即知道这是需要做的事情。考虑到curl的使用量,这是一个让互联网更安全的机会。而hyper的Rust用户也会受益,因为这项工作所处理的任何bug修复或边缘案例也会为他们修复。

我们为hyper设计了一个C语言API。大部分的工作是围绕着识别Rust和C语言之间的假设差异。在这些部分被解决后,API就开始工作了。Hyper添加了几个选项,让curl对他们的用户来说几乎没有区别。

目前状态:

curl和hyper的代码都已经合并到了各自的主开发分支。Curl 可以被配置为以 hyper 作为其 HTTP 后台进行编译,尽管它将处于实验状态,直到 curl 的所有 HTTP 支持与它的内部 C 后台一样工作,并且被更广泛地试用。大部分的代码已经工作了,剩下的问题是更复杂的HTTP功能,仍然需要更新以支持不同的后端。跟踪工作的最好方法是通过curl的广泛测试套件。

从数量上看,在800个左右的HTTP单元测试中,有95%的测试被移植并通过了配置为后端的hyper。这意味着 curl 的很多标准功能已经在工作了。使用hyper后端,curl支持HTTP/1和HTTP/2。它可以使用任何 TLS 后台的 HTTPS,甚至可以使用 HTTP(S) 代理。无论使用哪种后端,电线上的HTTP请求都是相同的。

下一步是什么?

还需要在curl中加入一些功能,以使整个测试套件通过。此外,我们还希望改善对恐慌和内存不足的处理,以及其他关于从Rust中暴露C语言库的细节。此外,开发人员还需要调整或修复curl在完成单元测试时注意到的任何问题。

aws.amazon.com/blogs/opens…

TensorBase | RISC-V 芯片上执行 SQL

TensorBase 是第一个在真正的 RISC-V 芯片上运行的 SQL 数据库

SQL on RISC-V Chip in Rust (tensorbase.io)

AWS 添加了 9 项关于rust sdk的新服务

github.com/awslabs/aws…

Reddit 讨论:Rust语言在项目管理上的优势

Rust在技术/项目管理上有什么优势吗?足以支撑你说服自己和其他人在公司内部开始尝试使用Rust?

作者提到了两点:

  1. 安全
    • 理由:"70%的安全问题都和内存安全有关"
    • 证据:
  1. 维护

或者你有其他任何观点和证据来说服别人使用rust吗?

www.reddit.com/r/rust/comm…

在 Facebook Rust 是如何被用来构建 Linux 系统工具、库和服务的

这篇是一篇采访纪录,@NavyataBawa邀请到了 Facebook 工程师 Daniel Xu,分享他在 Facebook 是如何使用 Rust 来构建 Linux 系统工具、库和服务的。

developers.facebook.com/blog/post/2…