【24h】

Using Model Checking to Debug Device Firmware

机译:使用模型检查调试设备固件

获取原文
获取原文并翻译 | 示例

摘要

Device firmware is a piece of concurrent software that achieves high performance at the cost of software complexity. They contain subtle race conditions that make them difficult to debug using traditional debugging techniques. The problem is further compounded by the lack of debugging support on the devices. This is a serious problem because the device firmware is trusted by the operating system. Model checkers are designed to systematically verify properties of concurrent systems. Therefore, model checking is a promising approach to debugging device firmware. However, model checking involves an exponential search. Consequently, the models have to be small to allow effective model checking. This paper describes the abstraction techniques used by the ESP compiler to extract abstract models from device firmware written in ESP. The abstract models are small because they discard some of the details in the firmware that is irrelevant to the particular property being verified. The programmer is required to specify the abstractions to be performed. The ESP compiler uses the abstraction specification to extract models conservatively. Therefore, every bug in the original program will be present in the extracted model. This paper also presents our experience with using Spin model checker to develop and debug VMMC firmware for the Myrinet network interfaces. An earlier version of the ESP compiler yielded models that were too large to check for system-wide properties like absence of deadlocks. The new version of the compiler generated abstract models that were used to identify several subtle bugs in the firmware. So far, we have not encountered any bugs that were not caught by Spin.
机译:设备固件是一种并行软件,可以以软件复杂性为代价实现高性能。它们包含微妙的竞争条件,使它们难以使用传统的调试技术进行调试。由于缺少设备上的调试支持,该问题进一步恶化。这是一个严重的问题,因为设备固件受操作系统信任。模型检查器旨在系统地验证并发系统的属性。因此,模型检查是调试设备固件的一种有前途的方法。但是,模型检查涉及指数搜索。因此,模型必须很小,才能进行有效的模型检查。本文介绍了ESP编译器用来从用ESP编写的设备固件中提取抽象模型的抽象技术。抽象模型很小,因为它们丢弃了固件中与要验证的特定属性无关的某些细节。要求程序员指定要执行的抽象。 ESP编译器使用抽象规范保守地提取模型。因此,原始程序中的每个错误都将出现在提取的模型中。本文还介绍了我们使用Spin模型检查器开发和调试Myrinet网络接口的VMMC固件的经验。 ESP编译器的早期版本产生的模型太大,无法检查系统范围内的属性(例如是否缺少死锁)。新版本的编译器生成了抽象模型,这些抽象模型用于识别固件中的一些细微错误。到目前为止,我们还没有遇到Spin未捕获的任何错误。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号