skip to main content
10.1145/1376789.1376802acmconferencesArticle/Chapter ViewAbstractPublication PagessospConference Proceedingsconference-collections
research-article

Checking the hardware-software interface in spec#

Published:18 October 2007Publication History

ABSTRACT

Research operating systems are often written in type-safe, high-level languages. These languages perform automatic static and dynamic checks to give basic assurances about run-time behavior. Yet such operating systems still rely on unsafe, low-level code to communicate with hardware, with little or no automated checking of the correctness of the hardware-software interaction. This paper describes experience using the Spec# language and Boogie verifier to statically specify and statically verify the safety of a driver's interaction with a network interface, including the safety of DMA.

References

  1. Thomas Ball, Ella Bounimova, Byron Cook, Vladimir Levin, Jakob Lichtenberg, Con McGarvey, Bohus Ondrusek, Sriram K. Rajamani and Abdullah Ustuner. Thorough Static Analysis of Device Drivers. EuroSys, 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Mike Barnett, K. Rustan M. Leino, and Wolfram Schulte. The Spec# programming system: An overview. CASSIS, 2004 Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Brian Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, David Becker, Marc Fiuczynski, Craig Chambers, Susan Eggers. Extensibility, Safety and Performance in the SPIN Operating System. Symposium on Operating System Principles (SOSP), 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Edoardo Biagioni. A structured TCP in standard ML. SIGCOMM, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Luca Cardelli. Type systems. The Computer Science and Engineering Handbook. CRC Press, 2004. Chapter 97.Google ScholarGoogle Scholar
  6. Christopher L. Conway and Stephen A. Edwards. NDL: A Domain-Specific Language for Device Drivers. Languages, Compilers, and Tools for Embedded Systems (LCTES), 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Digital Equipment Corporation. DIGITAL Semiconductor 21140A PCI Fast Ethernet LAN Controller Hardware Reference Manual. http://www.intel.com/design/network/manuals/21140ahm.pdfGoogle ScholarGoogle Scholar
  8. Dawson Engler, David Yu Chen, Seth Hallem, Andy Chou, and Benjamin Chelf. Bugs as Deviant Behavior: A General Approach to Inferring Errors in Systems Code. Symposium on Operating Systems Principles (SOSP), 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Manuel Fähndrich, Mark Aiken, Chris Hawblitzel, Orion Hodson, Galen C. Hunt, James R. Larus, and Steven Levi. Language Support for Fast and Reliable Message-based Communication in Singularity OS. EuroSys, 2006.Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Michael Golm, Meik Felser Christian Wawersich, and Jürgen Kleinöder. The JX Operating System. USENIX Annual Technical Conference, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Thomas Hallgren, Mark P. Jones, Rebekah Leslie, Andrew Tolmach. A Principled Approach to Operating System Construction in Haskell. International Conference on Functional Programming (ICFP), 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. F. Mérillon, L. Réveillère, C. Consel, R. Marlet, and G. Muller. Devil: An IDL for Hardware programming. Operating Systems Design and Implementation (OSDI), 2000.Google ScholarGoogle Scholar
  13. Jun Sun, Wanghong Yuan, Mahesh Kallahalla, Nayeem Islam. HAIL: a language for easy and correct device access. EMSOFT, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Lea Wittie. Type-Safe Operating System Abstractions. Ph.D. Thesis, 2004. Dartmouth Technical Report TR2004-526. Google ScholarGoogle ScholarDigital LibraryDigital Library

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    PLOS '07: Proceedings of the 4th workshop on Programming languages and operating systems
    October 2007
    55 pages
    ISBN:9781595939227
    DOI:10.1145/1376789

    Copyright © 2007 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 18 October 2007

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article

    Acceptance Rates

    Overall Acceptance Rate17of32submissions,53%

    Upcoming Conference

    SOSP '24

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader