Verified Functional Programming of an IoT Operating System's Bootloader

2021 19th ACM-IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE)(2021)

引用 2|浏览9
暂无评分
摘要
The fault of one device on a grid may incur severe economical or physical damages. Among the many critical components in such IoT devices, the operating system's bootloader comes first to initiate the trusted function of the device on the network. However, a boot-loader uses hardware-dependent features that make its functional correctness proof difficult. This paper uses verified programming to automate the verification of both the C libraries and assembly boot-sequence of such a, real-world, bootloader in an operating system for ARM-based IoT devices: RIoT. We first define the ARM ISA specification, semantics and properties in F to model its critical assembly code boot sequence. We then use Low , a DSL rendering a C-like memory model in F , to implement the complete boot-loader library and verify its functional correctness and memory safety. Other than fixing potential faults and vulnerabilities in the source C and ASM bootloader, our evaluation provides an optimized and formally documented code structure, a reasonable specification/implementation ratio, a high degree of proof automation and an equally efficient generated code.
更多
查看译文
关键词
Verified programming,IoT kernel,boot loader,case study
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要