Simulating a Flash File System with CoreASM and Eclipse

The formal specification of a file system for flash memory is the first step towards its verification. But creating such a formal specification is complex and error- prone. Visualizing the system state and having an executable version of the specifi- cation helps to better understand the specified system. In this paper, we present an approach for simulating and visualizing specifications written in the Abstract State Machine (ASM) formalism. We extend the ASM execution engine CoreASM to exe- cute ASMs written using algebraic specifications. Furthermore we develop an Eclipse- based visualization framework and integrate CoreASM into it. This enables us to cre- ate different abstract views of the CoreASM system state and allows the user to interact with the specification in an intuitive way. We apply our techniques to the visualization of an abstract specification of a flash memory file system and report on our experiences with CoreASM and Eclipse.

[1]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[2]  G. Reeves,et al.  The Mars Rover Spirit FLASH anomaly , 2005, 2005 IEEE Aerospace Conference.

[3]  Yuri Gurevich,et al.  Evolving algebras 1993: Lipari guide , 1995, Specification and validation methods.

[4]  C. A. R. Hoare,et al.  The verifying compiler: A grand challenge for computing research , 2003, JACM.

[5]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[6]  Gerard J. Holzmann,et al.  A mini challenge: build a verifiable filesystem , 2007, Formal Aspects of Computing.

[7]  Matthias Anlauff,et al.  XASM - An Extensible, Component-Based ASM Language , 2000, Abstract State Machines.

[8]  Michael J. Butler,et al.  Modelling and Proof of a Tree-Structured File System in Event-B and Rodin , 2008, ICFEM.

[9]  Egon Börger,et al.  Abstract State Machines. A Method for High-Level System Design and Analysis , 2003 .

[10]  Wim H. Hesselink,et al.  Formalizing a hierarchical file system , 2009, Formal Aspects of Computing.

[11]  Roozbeh Farahbod,et al.  CoreASM: An Extensible ASM Execution Engine , 2007, Fundam. Informaticae.

[12]  Wolfgang Reif,et al.  Abstract Specification of the UBIFS File System for Flash Memory , 2009, FM.

[13]  Jean-Raymond Abrial,et al.  Modeling in Event-B: Train system , 2010 .

[14]  Kurt Stenzel,et al.  Structured Specifications and Interactive Proofs with KIV , 1998 .

[15]  Carroll Morgan,et al.  Specification of the UNIX Filing System , 1984, IEEE Transactions on Software Engineering.