在做开题报告的时候找到了这篇论文,挺巧妙的想法,简单记录一下其思路。
Creating pipelines with the C programming language can be a bit more involved than our simple shell example. To create a simple pipe with C, we make use of the pipe()
system call.
本文介绍了基于现代文件系统的应用层崩溃一致性协议的首个全面研究。研究发现,应用程序使用复杂的更新协议来持久化状态,而这些协议的正确性高度依赖于底层文件系统的微妙行为,我们称之为持久性属性。作者开发了一个名为BOB的工具来测试持久性属性,并使用它来证明这些属性在六种流行的Linux文件系统中存在广泛的差异。作者还构建了一个名为ALICE的框架,分析应用程序更新协议并发现崩溃漏洞,即需要特定持久性属性才能保证正确性的更新协议代码。使用ALICE,作者分析了11个广泛使用的系统,并发现了60个漏洞,其中许多会导致严重后果。作者还展示了ALICE可以用于评估新文件系统设计对应用程序级一致性的影响。
主要思路是统计多个文件系统的实现,计算具体文件系统与多个文件系统总体之间的差异性(直方图/信息熵),从而窥探出其文件系统的具体实现在语义上的差异。