在 Linux 5.20/6.0 中,它提出了一种检查内核正确性的机制

Linux内核

最近有消息爆出 已提议将其纳入 的内核 Linux 5.20 (或者分支编号可能是 6.0,这完全取决于 Linus Torvalds 的决定,因为他对 Kernel 5.19 版本发表的评论)。

提出的建议是关于 一组实现 RV 机制的补丁 (运行时验证),这是一种在高度可靠的系统中验证正确操作的方法,以保证没有故障。

验证 通过将处理程序附加到跟踪点在运行时完成 根据自动机的预定义确定性参考模型检查执行的实际进度,该模型确定系统的预期行为。

Linux 开发人员, Daniel Bristot de Oliveira 提到:

在过去的几年里,我一直在探索使用运行时验证来验证 Linux 内核行为的可能性。

运行时验证 (RV) 是一种轻量级(但严格)的方法,它补充了经典的详尽验证技术(例如模型检查和定理证明),并以更实际的方法处理复杂系统。 VR 不依赖于系统的详细模型(例如,指令级的重新实现),而是通过分析系统的实际执行轨迹,将其与系统行为的正式规范进行比较来工作。

在 VR 中使用确定性自动机是一种行之有效的方法。 在 Linux 内核的具体案例中,您可以通过本文了解如何对 Linux 内核的复杂行为进行建模:

德奥利维拉,丹尼尔布里斯托; 库奇诺塔,托马索; 德奥利维拉,罗慕洛席尔瓦。 *Linux 内核的有效形式验证。* 在:国际软件工程和形式方法会议中。 施普林格,湛,2019 年。 315-332。

这种方法在这里的效率如何:

德奥利维拉,丹尼尔 B.; 德奥利维拉,罗慕洛 S.; 库奇诺塔,托马索。 *PREEMPT_RT Linux 内核的线程同步模型。* 系统架构杂志,2020,107:101729。

TLDR:可以以模块化方式对复杂行为进行建模,并具有可接受的开销(即使对于生产系统也是如此)。

有人提到 跟踪点信息将模型从一种状态移动到另一种状态,并且如果新状态与模型参数不匹配,则会生成警告或内核进入“恐慌”状态(假设高度可靠的系统会检测并响应此类情况)。

自动机模型 定义从一种状态到另一种状态的转换 导出为“点”格式 (graphviz),然后使用 dot2c 实用程序将其转换为 C 表示形式,该表示形式以跟踪偏差的内核模块的形式加载。 从预定义的模型执行。

在运行时检查模型被定位为更轻更容易的方法 实施以验证关键任务系统中执行的正确性,它补充了经典的可靠性验证方法,例如模型验证和代码符合以形式语言给出的规范的数学证明。

跟踪子系统维护者 Steven Rostedt 总结如下:

» 这是此拉取请求的最大变化。 引入了在安全关键系统上运行 Linux 所需的运行时验证。 它允许将确定性自动机模型插入内核以附加到跟踪点,其中有关这些跟踪点的信息会将模型从一种状态移动到另一种状态。

RV 的上述优点之一是能够提供严格的验证,而无需使用建模语言单独实现整个系统,以及对不可预见事件的灵活响应,例如阻止关键系统故障的传播。

最后,如果您有兴趣能够了解更多,可以在 以下链接。

数据来源: https://www.phoronix.com/


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责资料:AB Internet Networks 2008 SL
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。