Skip to main content

Development of a Verified Flash File System

  • Conference paper
Abstract State Machines, Alloy, B, TLA, VDM, and Z (ABZ 2014)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 8477))

Abstract

This paper gives an overview over the development of a formally verified file system for flash memory. We describe our approach that is based on Abstract State Machines and incremental modular refinement. Some of the important intermediate levels and the features they introduce are given. We report on the verification challenges addressed so far, and point to open problems and future work. We furthermore draw preliminary conclusions on the methodology and the required tool support.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Arkoudas, K., Zee, K., Kuncak, V., Rinard, M.: Verifying a file system implementation. In: Davies, J., Schulte, W., Barnett, M. (eds.) ICFEM 2004. LNCS, vol. 3308, pp. 373–390. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  2. Back, G.: DataScript - A Specification and Scripting Language for Binary Data. In: Batory, D., Blum, A., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487, pp. 66–77. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  3. Baumann, C., Beckert, B., Blasum, H., Bormer, T.: Lessons Learned From Microkernel Verification – Specification is the New Bottleneck. In: SSV, pp. 18–32 (2012)

    Google Scholar 

  4. Börger, E.: The ASM Refinement Method. Formal Aspects of Computing 15(1-2), 237–257 (2003)

    Article  MATH  Google Scholar 

  5. Börger, E., Stärk, R.F.: Abstract State Machines — A Method for High-Level System Design and Analysis. Springer (2003)

    Google Scholar 

  6. Butterfield, A., Woodcock, J.: Formalising Flash Memory: First Steps. In: IEEE Int. Conf. on Engineering of Complex Computer Systems, pp. 251–260 (2007)

    Google Scholar 

  7. Cohen, E., Dahlweid, M., Hillebrand, M., Leinenbach, D., Moskal, M., Santen, T., Schulte, W., Tobies, S.: VCC: A practical system for verifying concurrent C. In: Berghofer, S., Nipkow, T., Urban, C., Wenzel, M. (eds.) TPHOLs 2009. LNCS, vol. 5674, pp. 23–42. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  8. http://www.garz-fricke.com/cupid-core_de.html

  9. Damchoom, K.: An incremental refinement approach to a development of a flash-based file system in Event-B (October 2010)

    Google Scholar 

  10. Samsung Electronics. Page program addressing for MLC NAND application note (2009), http://www.samsung.com

  11. Ernst, G., Pfähler, J., Schellhorn, G.: Web presentation of the Flash Filesystem (2014), https://swt.informatik.uni-augsburg.de/swt/projects/flash.html

  12. Ernst, G., Pfähler, J., Schellhorn, G., Haneberg, D., Reif, W.: KIV - Overview and VerifyThis Competition. Software Tools for Technology Transfer (to appear, 2014)

    Google Scholar 

  13. Ernst, G., Pfähler, J., Schellhorn, G., Reif, W.: Modular Refinement for Submachines of ASMs. In: Ait Ameur, Y., Schewe, K.-D. (eds.) ABZ 2014. LNCS, vol. 8477, pp. 188–203. Springer, Heidelberg (2014)

    Google Scholar 

  14. Ernst, G., Schellhorn, G., Haneberg, D., Pfähler, J., Reif, W.: A Formal Model of a Virtual Filesystem Switch. In: Proc. of Software and Systems Modeling (SSV), pp. 33–45 (2012)

    Google Scholar 

  15. Ernst, G., Schellhorn, G., Haneberg, D., Pfähler, J., Reif, W.: Verification of a Virtual Filesystem Switch. In: Cohen, E., Rybalchenko, A. (eds.) VSTTE 2013. LNCS, vol. 8164, pp. 242–261. Springer, Heidelberg (2014)

    Chapter  Google Scholar 

  16. Intel Corporation, et al.: Open NAND Flash Interface Specification (June 2013), http://www.onfi.org

  17. Ferreira, M.A., Silva, S.S., Oliveira, J.N.: Verifying Intel flash file system core specification. In: Modelling and Analysis in VDM: Proc. of the Fourth VDM/Overture Workshop, School of Computing Science, Newcastle University, Technical Report CS-TR-1099, pp. 54–71 (2008)

    Google Scholar 

  18. Freitas, L., Woodcock, J., Butterfield, A.: POSIX and the Verification Grand Challenge: A Roadmap. In: ICECCS 2008: Proc. of the 13th IEEE Int. Conf. on Engineering of Complex Computer Systems (2008)

    Google Scholar 

  19. Freitas, L., Woodcock, J., Fu, Z.: Posix file store in Z/Eves: An experiment in the verified software repository. Sci. of Comp. Programming 74(4), 238–257 (2009)

    Article  MATH  MathSciNet  Google Scholar 

  20. Gleixner, T., Haverkamp, F., Bityutskiy, A.: UBI - Unsorted Block Images (2006), http://www.linux-mtd.infradead.org/doc/ubidesign/ubidesign.pdf

  21. Hesselink, W.H., Lali, M.I.: Formalizing a hierarchical file system. Formal Aspects of Computing 24(1), 27–44 (2012)

    Article  MATH  MathSciNet  Google Scholar 

  22. Hoare, C.A.R.: The verifying compiler: A grand challenge for computing research. Journal of the ACM 50(1), 63–69 (2003)

    Article  Google Scholar 

  23. Hunter, A.: A brief introduction to the design of UBIFS (2008), http://www.linux-mtd.infradead.org/doc/ubifs_whitepaper.pdf

  24. Joshi, R., Holzmann, G.J.: A mini challenge: build a verifiable filesystem. Formal Aspects of Computing 19(2) (June 2007)

    Google Scholar 

  25. Kang, E., Jackson, D.: Formal Modeling and Analysis of a Flash Filesystem in Alloy. In: Börger, E., Butler, M., Bowen, J.P., Boca, P. (eds.) ABZ 2008. LNCS, vol. 5238, pp. 294–308. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  26. Kang, E., Jackson, D.: Designing and Analyzing a Flash File System with Alloy. Int. J. Software and Informatics 3(2-3), 129–148 (2009)

    Google Scholar 

  27. McCann, P.J., Chandra, S.: Packet Types: Abstract Specification of Network Protocol Messages. SIGCOMM Comp. Comm. Rev. 30(4), 321–333 (2000)

    Article  Google Scholar 

  28. Morgan, C., Sufrin, B.: Specification of the unix filing system. In: Specification Case Studies, pp. 91–140. Prentice Hall Ltd., Hertfordshire (1987)

    Google Scholar 

  29. Memory Technology Device (MTD) and Unsorted Block Images (UBI) Subsystem of Linux, http://www.linux-mtd.infradead.org/index.html

  30. Odersky, M., Spoon, L., Venners, B.: Programming in Scala: A Comprehensive Step-by-step Guide, 1st edn. Artima Incorporation, USA (2008)

    Google Scholar 

  31. Oliveira, J.N., Ferreira, M.A.: Alloy Meets the Algebra of Programming: A Case Study. IEEE Transactions on Software Engineering 39(3), 305–326 (2013)

    Article  MathSciNet  Google Scholar 

  32. Pfähler, J., Ernst, G., Schellhorn, G., Haneberg, D., Reif, W.: Formal Specification of an Erase Block Management Layer for Flash Memory. In: Bertacco, V., Legay, A. (eds.) HVC 2013. LNCS, vol. 8244, pp. 214–229. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  33. Pfähler, J., Ernst, G., Schellhorn, G., Haneberg, D., Reif, W.: Crash-Safe Refinement for a Verified Flash File System. Technical report, University of Augsburg (2014)

    Google Scholar 

  34. Reeves, G., Neilson, T.: The Mars Rover Spirit FLASH anomaly. In: Aerospace Conference, pp. 4186–4199. IEEE Computer Society (2005)

    Google Scholar 

  35. Reif, W., Schellhorn, G., Stenzel, K., Balser, M.: Structured specifications and interactive proofs with KIV. In: Bibel, W., Schmitt, P. (eds.) Automated Deduction—A Basis for Applications, vol. II, pp. 13–39. Kluwer, Dordrecht (1998)

    Chapter  Google Scholar 

  36. Reynolds, J.C.: Separation logic: A logic for shared mutable data structures. In: Proc. of LICS, pp. 55–74. IEEE Computer Society (2002)

    Google Scholar 

  37. Rushby, J., Owre, S., Shankar, N.: Subtypes for Specifications: Predicate Subtyping in PVS. IEEE Transactions on Software Engineering 24(9), 709–720 (1998)

    Article  Google Scholar 

  38. Schellhorn, G.: Completeness of Fair ASM Refinement. Science of Computer Programming 76(9) (2009)

    Google Scholar 

  39. Schierl, A., Schellhorn, G., Haneberg, D., Reif, W.: Abstract Specification of the UBIFS File System for Flash Memory. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 190–206. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  40. Szeredi, M.: File system in user space, http://fuse.sourceforge.net

  41. The Open Group. The Open Group Base Specifications Issue 7, IEEE Std 1003.1, 2008 Edition (2008), http://www.unix.org/version3/online.html (login required)

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Schellhorn, G., Ernst, G., Pfähler, J., Haneberg, D., Reif, W. (2014). Development of a Verified Flash File System. In: Ait Ameur, Y., Schewe, KD. (eds) Abstract State Machines, Alloy, B, TLA, VDM, and Z. ABZ 2014. Lecture Notes in Computer Science, vol 8477. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-43652-3_2

Download citation

  • DOI: https://doi.org/10.1007/978-3-662-43652-3_2

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-662-43651-6

  • Online ISBN: 978-3-662-43652-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics