Certifying a file system using crash hoare logic

FSCQ is the frst fle system with a machine-checkable proof that its implementation meets a specifcation, even in the presence of fail-stop crashes. FSCQ provably avoids bugs that have plagued previous fle systems, such as performing disk writes without suffcient barriers or forgetting to zero out di...

Full description

Bibliographic Details
Main Authors: Chajed, Tej, Chen, Haogang, Chlipala, Adam, Kaashoek, M. Frans, Zeldovich, Nickolai, Ziegler, Daniel Todd
Other Authors: Massachusetts Institute of Technology. Laboratory for Computer Science
Format: Article
Language:English
Published: Association for Computing Machinery (ACM) 2019
Online Access:https://hdl.handle.net/1721.1/122622
_version_ 1811086883760898048
author Chajed, Tej
Chen, Haogang
Chlipala, Adam
Kaashoek, M. Frans
Zeldovich, Nickolai
Ziegler, Daniel Todd
author2 Massachusetts Institute of Technology. Laboratory for Computer Science
author_facet Massachusetts Institute of Technology. Laboratory for Computer Science
Chajed, Tej
Chen, Haogang
Chlipala, Adam
Kaashoek, M. Frans
Zeldovich, Nickolai
Ziegler, Daniel Todd
author_sort Chajed, Tej
collection MIT
description FSCQ is the frst fle system with a machine-checkable proof that its implementation meets a specifcation, even in the presence of fail-stop crashes. FSCQ provably avoids bugs that have plagued previous fle systems, such as performing disk writes without suffcient barriers or forgetting to zero out directory blocks. If a crash happens at an inopportune time, these bugs can lead to data loss. FSCQ's theorems prove that, under any sequence of crashes followed by reboots, FSCQ will recover its state correctly without losing data. To state FSCQ's theorems, this paper introduces the Crash Hoare logic (CHL), which extends traditional Hoare logic with a crash condition, a recovery procedure, and logical address spaces for specifying disk states at different abstraction levels. CHL also reduces the proof effort for developers through proof automation. Using CHL, we developed, specifed, and proved the correctness of the FSCQ fle system. Although FSCQ's design is relatively simple, experiments with FSCQ as a user-level fle system show that it is suffcient to run Unix applications with usable performance. FSCQ's specifcations and proofs required signifcantly more work than the implementation, but the work was manageable even for a small team of a few researchers.
first_indexed 2024-09-23T13:36:03Z
format Article
id mit-1721.1/122622
institution Massachusetts Institute of Technology
language English
last_indexed 2024-09-23T13:36:03Z
publishDate 2019
publisher Association for Computing Machinery (ACM)
record_format dspace
spelling mit-1721.1/1226222022-10-01T15:58:39Z Certifying a file system using crash hoare logic correctness in the presence of crashes Chajed, Tej Chen, Haogang Chlipala, Adam Kaashoek, M. Frans Zeldovich, Nickolai Ziegler, Daniel Todd Massachusetts Institute of Technology. Laboratory for Computer Science Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology. Department of Electrical Engineering and Computer Science FSCQ is the frst fle system with a machine-checkable proof that its implementation meets a specifcation, even in the presence of fail-stop crashes. FSCQ provably avoids bugs that have plagued previous fle systems, such as performing disk writes without suffcient barriers or forgetting to zero out directory blocks. If a crash happens at an inopportune time, these bugs can lead to data loss. FSCQ's theorems prove that, under any sequence of crashes followed by reboots, FSCQ will recover its state correctly without losing data. To state FSCQ's theorems, this paper introduces the Crash Hoare logic (CHL), which extends traditional Hoare logic with a crash condition, a recovery procedure, and logical address spaces for specifying disk states at different abstraction levels. CHL also reduces the proof effort for developers through proof automation. Using CHL, we developed, specifed, and proved the correctness of the FSCQ fle system. Although FSCQ's design is relatively simple, experiments with FSCQ as a user-level fle system show that it is suffcient to run Unix applications with usable performance. FSCQ's specifcations and proofs required signifcantly more work than the implementation, but the work was manageable even for a small team of a few researchers. National Science Foundation (U.S.) (Award CNS-1053143) National Science Foundation (U.S.) (Award CCF-1253229) 2019-10-18T13:28:41Z 2019-10-18T13:28:41Z 2017-04 2019-10-04T16:17:23Z Article http://purl.org/eprint/type/JournalArticle 0001-0782 https://hdl.handle.net/1721.1/122622 Chajed, Tej et al. "Certifying a file system using crash hoare logic: correctness in the presence of crashes." Communications of the ACM 60, 4 (April 2017): 75-84 © 2017 The Authors en http://dx.doi.org/10.1145/3051092 Communications of the ACM Creative Commons Attribution-Noncommercial-Share Alike http://creativecommons.org/licenses/by-nc-sa/4.0/ application/pdf Association for Computing Machinery (ACM) Prof. Chlipala via Phoebe Ayers
spellingShingle Chajed, Tej
Chen, Haogang
Chlipala, Adam
Kaashoek, M. Frans
Zeldovich, Nickolai
Ziegler, Daniel Todd
Certifying a file system using crash hoare logic
title Certifying a file system using crash hoare logic
title_full Certifying a file system using crash hoare logic
title_fullStr Certifying a file system using crash hoare logic
title_full_unstemmed Certifying a file system using crash hoare logic
title_short Certifying a file system using crash hoare logic
title_sort certifying a file system using crash hoare logic
url https://hdl.handle.net/1721.1/122622
work_keys_str_mv AT chajedtej certifyingafilesystemusingcrashhoarelogic
AT chenhaogang certifyingafilesystemusingcrashhoarelogic
AT chlipalaadam certifyingafilesystemusingcrashhoarelogic
AT kaashoekmfrans certifyingafilesystemusingcrashhoarelogic
AT zeldovichnickolai certifyingafilesystemusingcrashhoarelogic
AT zieglerdanieltodd certifyingafilesystemusingcrashhoarelogic
AT chajedtej correctnessinthepresenceofcrashes
AT chenhaogang correctnessinthepresenceofcrashes
AT chlipalaadam correctnessinthepresenceofcrashes
AT kaashoekmfrans correctnessinthepresenceofcrashes
AT zeldovichnickolai correctnessinthepresenceofcrashes
AT zieglerdanieltodd correctnessinthepresenceofcrashes