另一个Rust-y操作系统:Openus加入氧化还原,追求更安全,更多的弹性系统

这个不仅仅是用锈病编写的 - 它的设计是基于锈的特征


锈,一种专注于性能,安全性和并发性的现代系统编程语言,似乎是创建新操作系统的理想选择,并且已经存在了几个这样的项目。现在有一个新的,忒修斯,由Creator Kevin Boos描述为“操作系统结构和国家管理的实验”。

openus背后的关键是避免米和耶鲁大学的嘘声和其他三个贡献者称之为“国家泄漏”。

在一个 去年11月在USENIX研讨会上介绍了usenix研讨会,研究人员定义了这一点,因为当由于处理来自另一个组件的互动而讨论改变状态的一个软件组件时,他们的未来正确性取决于所述状态。“

编辑oftingus的代码:开发人员推荐Visual Studio代码

编辑oftingus的代码:开发人员推荐Visual Studio代码

这是现代系统中的常态,他们说,并以Android系统服务失败,“整个用户空间框架”崩溃,即使是那些未使用失败的服务也会影响所有应用程序。

他们认为,国家泄漏是可靠性的障碍,它争论,它会影响来自小型起搏器的固件到数据中心的网络。为了发现“在操作系统代码中可以避免避免州泄漏的程度溢出”,研究人员决定从头开始编写一个新的操作系统,选择生锈,因为它具有所有权模型。

所有权, 描述 通过生锈文档作为“Rust的Central功能”,语言如何实现内存安全的关键,强制执行三种规则:

  1. 锈中的每个值都有一个称为其所有者的变量
  2. 一次只能有一个所有者
  3. 当业主超出范围时,该值将被删除

研究人员表示,避免状态泄漏所需的重新思考OS结构,特别是操作系统是如何模块化的。 Openus OS具有许多叫做小区的微小组件,每个组件都有清晰的界限。细胞基于锈板(项目容器)。

然而,更大的创新是他们称之为“intralingual OS设计”,它们的意思是使用编程语言机制来实现操作系统。这个想法是“将语义错误从运行时的失败转移到编译时错误。”

这意味着忒修斯比其他基于铁锈的操作系统更深入地绑定。

opeus中的细胞是锈板箱,可以换出用于修复问题或更新操作系统

opeus中的细胞是锈板箱,可以换出用于修复问题或更新操作系统

国家管理由基于客户端 - 服务器模型的原则处理。客户拥有自己的状态和服务器使用无状态通信“这决定了应包括在该请求中的给定请求所需的一切。”

这是熟悉的静止网络模型。因此,Openus避免了处理的东西,指向操作系统所拥有的资源,支持直接拥有其资源。

Opesus的恢复力使用称为单元格交换的技术,新单元格替换现有的并遵守其依赖项。在不再被任何其他单元格不再引用之前,实际上没有丢弃旧单元。

故障恢复涉及用新的拒收损坏的单元格。这是,研究人员声称,“允许[opeteus]在多个失败子系统面上忍受最低系统层中的故障。”

类似的机制使实时更新能够。在对故障恢复的测试中,研究人员注入了80万个断层,并取得了69%的成功回收率。

表现如何?

“我们没有声称,忒修斯通常优于Linux等现有的信息......但是我们的结果并不表明重要的性能缺点,”研究人员表示,基于测试 lmbench..

尽管实验架构,但有局限性。研究人员表示,不安全的代码是“在低级内核环境中的不幸必要性”,因为需要与硬件进行交互。另一个限制是组件必须以安全生锈实现。

可以支持其他“安全或管理”语言,但不安全的语言需要基于硬件或软件的隔离。设计人员也在某些区域(例如文件系统)中的原则损害原则。

“无完全溢出的FS将通过向当前访问它的客户端授予文件的唯一所有权来打破现有的POSIX接口,这意味着在客户释放它之前将似乎不存在该文件。”

这听起来不方便。 “当前权衡”是支持遗留文件系统标准,并为这种情况接受状态泄漏。

目前忒修斯是 在GitHub上 并包含38,000行的生锈代码和900行组装。操作系统可以在Linux上构建,Windows使用WSL(Linux的Windows子系统),MacOS或Docker容器中的Windows。它可以在qemu仿真器中运行。

该团队喜欢Visual Studio代码进行开发,并表示它具有“锈蚀的优秀跨平台支持。其他选择可用,但我们不推荐它们。”

另一个突出的基于锈的操作系统是 氧化还原OS.,目前版本0.6。最后一次重大更新是12月,并包含一个完整的内核内存管理器的重写,许多更新和新组件,包括大大改进的Relibc库(由大多数用户应用程序使用)以及称为Pkgar的新包格式。

redox OS是另一个基于RUS的OS,但具有更熟悉的UNIX的设计。

redox OS是另一个突出的基于RUS的操作系统,但具有更熟悉的UNIX的设计

当我们有氧化还原时为何打扰忒修斯?

答案是,这两个项目的共同点是除了生锈之外的共同点,它们是新的操作系统。 redox支持unix样的syscalls,并有一个架构“大量启发了Minix”, 根据 to its docs.

雷诺将更熟悉开发人员。但请注意,氧化还原旨在具有孤立的组件的弹性,抵抗一个故障组件崩溃的其他组件,并限制组件之间的通信。氧化还原,它的设计师声称,是“对于希望与计算机系统最小的问题的用户”。“这听起来像我们大多数人。

另一个基于RUST的操作系统是 托克,专为嵌入式系统而设计。还有其他人,但大多数不是很活跃。

oposus提出的问题是无论是完全不同的新操作系统是否可以具有足够的优势,以克服在一个如此大量投资的世界中建立它的巨大困难,如Linux(基于Linux的Android),MacOS和Windows。

谷歌有一个很好的机会 紫红色, 也许。然而,基于RUST的选项是有吸引力的,并且像这样一个和雷诺OS这样的项目值得关注。 ®

类似主题


您可能喜欢的其他故事

咬住它的手©1998-2021