操作系统内核并发错误检测研究进展
方法:形式化验证、静态分析、动态分析和静态动态
应对并发错误的措施:并发错误检测、并发错误避免、并发错误预测和诊断
常见的并发错误:包括死锁、数据竞争、原子性违例和顺序性违例等
并发错误检测指标:误报率、漏报率和检测速度
目前很多内核开发人员仍在广泛使用的内核级并发错误检测工具,如 Linux 内核死锁检测工具 Lockdep [38] 、内存检查工具
KASAN [39] 、模糊测试工具 Syzkaller [40] 和数据竞争检测工具 KTSAN [41] 等都存在很大的不足
形式化验证方法有:
-
- 基于定理证明的操作系统验证-一组规则并进行推理证明
- 基于模型检验的检测
静态检测方法:
-
- 基于数据流分析的检测
- 基于符号执行的检测
- 基于操作系统内核特性的检测
动态检测方法:
-
- 基于动态二进制插桩的检测
- 基于动态调试的检测
- 基于系统化调度的检测
- 基于模糊测试的检测
静态与动态相结合的检测方法
未来研究趋势:
- 结合操作系统内核
- 发掘新的内核并发错误类型
- 静态与动态相结合的并发错误检测
- 基于形式化验证方法的并发错误检测
- 其他操作系统内核的并发错误检测
目前针对模糊测试的研究趋势,希望各位大佬能够多多提出有益处的意见!
论文、工具、技术都不限