Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3341301.3359641acmconferencesArticle/Chapter ViewAbstractPublication PagessospConference Proceedingsconference-collections
research-article
Open access

Scaling symbolic evaluation for automated verification of systems code with Serval

Published: 27 October 2019 Publication History

Abstract

This paper presents Serval, a framework for developing automated verifiers for systems software. Serval provides an extensible infrastructure for creating verifiers by lifting interpreters under symbolic evaluation, and a systematic approach to identifying and repairing verification performance bottlenecks using symbolic profiling and optimizations.
Using Serval, we build automated verifiers for the RISC-V, x86--32, LLVM, and BPF instruction sets. We report our experience of retrofitting CertiKOS and Komodo, two systems previously verified using Coq and Dafny, respectively, for automated verification using Serval, and discuss trade-offs of different verification methodologies. In addition, we apply Serval to the Keystone security monitor and the BPF compilers in the Linux kernel, and uncover 18 new bugs through verification, all confirmed and fixed by developers.

References

[1]
Eyad Alkassar, Wolfgang J. Paul, Artem Starostin, and Alexandra Tsyban. 2010. Pervasive Verification of an OS Microkernel: Inline Assembly, Memory Consumption, Concurrent Devices. In Proceedings of the 3rd Working Conference on Verified Software: Theories, Tools, and Experiments (VSTTE). Edinburgh, United Kingdom, 71--85.
[2]
Sidney Amani, Alex Hixon, Zilin Chen, Christine Rizkallah, Peter Chubb, Liam O'Connor, Joel Beeren, Yutaka Nagashima, Japheth Lim, Thomas Sewell, Joseph Tuong, Gabriele Keller, Toby Murray, Gerwin Klein, and Gernot Heiser. 2016. Cogent: Verifying High-Assurance File System Implementations. In Proceedings of the 21st International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). Atlanta, GA, 175--188.
[3]
Nadav Amit, Dan Tsafrir, Assaf Schuster, Ahmad Ayoub, and Eran Shlomo. 2015. Virtual CPU Validation. In Proceedings of the 25th ACM Symposium on Operating Systems Principles (SOSP). Monterey, CA, 311--327.
[4]
Alasdair Armstrong, Thomas Bauereiss, Brian Campbell, Alastair Reid, Kathryn E. Gray, Robert M. Norton, Prashanth Mundkur, Mark Wassell, Jon French, Christopher Pulte, Shaked Flur, Ian Stark, Neel Krishnaswami, and Peter Sewell. 2019. ISA Semantics for ARMv8-A, RISC-V, and CHERI-MIPS. In Proceedings of the 46th ACM Symposium on Principles of Programming Languages (POPL). Cascais, Portugal, Article 71, 31 pages.
[5]
Roberto Baldoni, Emilio Coppa, Daniele Cono D'elia, Camil Demetrescu, and Irene Finocchi. 2018. A Survey of Symbolic Execution Techniques. ACM Computing Survey 51, 3, Article 50 (July 2018), 39 pages.
[6]
Mike Barnett, Bor-Yuh Evan Chang, Robert DeLine, Bart Jacobs, and K. Rustan M. Leino. 2005. Boogie: A Modular Reusable Verifier for Object-Oriented Programs. In Proceedings of the 4th International Symposium on Formal Methods for Components and Objects. Amsterdam, The Netherlands, 364--387.
[7]
Adam Belay, Andrea Bittau, Ali Mashtizadeh, David Terei, David Mazières, and Christos Kozyrakis. 2012. Dune: Safe User-level Access to Privileged CPU Features. In Proceedings of the 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI). Hollywood, CA, 335--348.
[8]
William R. Bevier. 1989. Kit: A Study in Operating System Verification. IEEE Transactions on Software Engineering 15, 11 (Nov. 1989), 1382--1396.
[9]
Sven Beyer, Christian Jacobi, Daniel Kröning, Dirk Leinenbach, and Wolfgang J. Paul. 2006. Putting it all together - Formal verification of the VAMP. International Journal on Software Tools for Technology Transfer 8, 4-5 (Aug. 2006), 411--430.
[10]
Armin Biere, Alessandro Cimatti, Edmund M. Clarke, and Yunshan Zhu. 1999. Symbolic Model Checking without BDDs. In Proceedings of the 5th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). Amsterdam, The Netherlands, 193--207.
[11]
Sandrine Blazy and Xavier Leroy. 2009. Mechanized semantics for the Clight subset of the C language. Journal of Automated Reasoning 43, 3 (Oct. 2009), 263--288.
[12]
Barry Bond, Chris Hawblitzel, Manos Kapritsos, K. Rustan M. Leino, Jacob R. Lorch, Bryan Parno, Ashay Rane, Srinath Setty, and Laure Thompson. 2017. Vale: Verifying High-Performance Cryptographic Assembly Code. In Proceedings of the 26th USENIX Security Symposium. Vancouver, Canada, 917--934.
[13]
James Bornholt and Emina Torlak. 2018. Finding Code That Explodes Under Symbolic Evaluation. In Proceedings of the 2018 Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). Boston, MA, Article 149, 26 pages.
[14]
Robert S. Boyer, Matt Kaufmann, and J Strother Moore. 1995. The Boyer-Moore Theorem Prover and Its Interactive Enhancement. Computers and Mathematics with Applications 29, 2 (Jan. 1995), 27--62.
[15]
Jo Van Bulck, Marina Minkin, Ofir Weisse, Daniel Genkin, Baris Kasikci, Frank Piessens, Mark Silberstein, Thomas F. Wenisch, Yuval Yarom, and Raoul Strackx. 2018. Foreshadow: Extracting the Keys to the Intel SGX Kingdom with Transient Out-of-Order Execution. In Proceedings of the 27th USENIX Security Symposium. Baltimore, MD, 991--1008.
[16]
Cristian Cadar. 2015. Targeted Program Transformations for Symbolic Execution. In Proceedings of the 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE). Bergamo, Italy, 906--909.
[17]
Cristian Cadar, Daniel Dunbar, and Dawson Engler. 2008. KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs. In Proceedings of the 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI). San Diego, CA, 209--224.
[18]
Cristian Cadar, Vijay Ganesh, Peter M. Pawlowski, David L. Dill, and Dawson R. Engler. 2006. EXE: Automatically Generating Inputs of Death. In Proceedings of the 13th ACM Conference on Computer and Communications Security (CCS). Alexandria, VA, 322--335.
[19]
Cristian Cadar and Koushik Sen. 2013. Symbolic Execution for Software Testing: Three Decades Later. Commun. ACM 56, 2 (Feb. 2013), 82--90.
[20]
Quentin Carbonneaux, Jan Hoffmann, Tahina Ramananandro, and Zhong Shao. 2014. End-to-End Verification of Stack-Space Bounds for C Programs. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Edinburgh, United Kingdom, 270--281.
[21]
Haogang Chen, Tej Chajed, Alex Konradi, Stephanie Wang, Atalay İleri, Adam Chlipala, M. Frans Kaashoek, and Nickolai Zeldovich. 2017. Verifying a high-performance crash-safe file system using a tree specification. In Proceedings of the 26th ACM Symposium on Operating Systems Principles (SOSP). Shanghai, China, 270--286.
[22]
Haogang Chen, Daniel Ziegler, Tej Chajed, Adam Chlipala, M. Frans Kaashoek, and Nickolai Zeldovich. 2015. Using Crash Hoare Logic for Certifying the FSCQ File System. In Proceedings of the 25th ACM Symposium on Operating Systems Principles (SOSP). Monterey, CA, 18--37.
[23]
Vitaly Chipounov, Volodymyr Kuznetsov, and George Candea. 2011. S2E: A Platform for In-vivo Multi-path Analysis of Software Systems. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). Newport Beach, CA, 265--278.
[24]
Adam Chlipala. 2015. From Network Interface to Multithreaded Web Applications: A Case Study in Modular Program Verification. In Proceedings of the 42nd ACM Symposium on Principles of Programming Languages (POPL). Mumbai, India, 609--622.
[25]
Maria Christakis and Patrice Godefroid. 2015. Proving Memory Safety of the ANI Windows Image Parser using Compositional Exhaustive Testing. In Proceedings of the 16th International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI). Mumbai, India, 373--392.
[26]
Andrey Chudnov, Nathan Collins, Byron Cook, Joey Dodds, Brian Huffman, Colm MacCárthaigh, Stephen Magill, Eric Mertens, Eric Mullen, Serdar Tasiran, Aaron Tomb, and Eddy Westbrook. 2018. Continuous formal verification of Amazon s2n. In Proceedings of the 30th International Conference on Computer Aided Verification (CAV). Oxford, United Kingdom, 430--446.
[27]
Lori A. Clarke. 1976. A System to Generate Test Data and Symbolically Execute Programs. TSE 2, 3 (5 1976), 215--222.
[28]
Jonathan Corbet. 2015. Post-init read-only memory. https://lwn.net/Articles/666550/.
[29]
Victor Costan, IliaLebedev, and Srinivas Devadas. 2016. Sanctum: Minimal Hardware Extensions for Strong Software Isolation. In Proceedings of the 25th USENIX Security Symposium. Austin, TX, 857--874.
[30]
David Costanzo, Zhong Shao, and Ronghui Gu. 2016. End-to-End Verification of Information-Flow Security for C and Assembly Programs. In Proceedings of the 37th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Santa Barbara, CA, 648--664.
[31]
Leonardo de Moura and Nikolaj Bjørner. 2008. Z3: An Efficient SMT Solver. In Proceedings of the 14th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS). Budapest, Hungary, 337--340.
[32]
Leonardo de Moura and Nikolaj Bjørner. 2010. Bugs, Moles and Skeletons: Symbolic Reasoning for Software Development. In Proceedings of the 5th International Joint Conference on Automated Reasoning. Edinburgh, United Kingdom, 400--411.
[33]
David L. Detlefs, K. Rustan M. Leino, Greg Nelson, and James B. Saxe. 1998. Extended Static Checking. Research Report SRC-RR-159. Compaq Systems Research Center.
[34]
Mihai Dobrescu and Katerina Argyraki. 2014. Software Dataplane Verification. In Proceedings of the 11th USENIX Symposium on Networked Systems Design and Implementation (NSDI). Seattle, WA, 101--114.
[35]
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam Tobin-Hochstadt. 2018. A Programmable Programming Language. Commun. ACM 61, 3 (March 2018), 62--71.
[36]
Andrew Ferraiuolo, Andrew Baumann, Chris Hawblitzel, and Bryan Parno. 2017. Komodo: Using verification to disentangle secure-enclave hardware from software. In Proceedings of the 26th ACM Symposium on Operating Systems Principles (SOSP). Shanghai, China, 287--305.
[37]
Matt Fleming. 2017. A thorough introduction to eBPF. https://lwn.net/Articles/740157/.
[38]
Patrice Godefroid, Michael Y. Levin, and David Molnar. 2012. SAGE: Whitebox Fuzzing for Security Testing. Commun. ACM 55, 3 (March 2012), 40--44.
[39]
J. A. Goguen and J. Meseguer. 1982. Security Policies and Security Models. In Proceedings of the 3rd IEEE Symposium on Security and Privacy. Oakland, CA, 11--20.
[40]
Ronghui Gu, Jeremie Koenig, Tahina Ramananandro, Zhong Shao, Xiongnan Wu, Shu-Chun Weng, Haozhong Zhang, and Yu Guo. 2015. Deep Specifications and Certified Abstraction Layers. In Proceedings of the 42nd ACM Symposium on Principles of Programming Languages (POPL). Mumbai, India, 595--608.
[41]
Ronghui Gu, Zhong Shao, Hao Chen, Xiongnan (Newman) Wu, Jieung Kim, Vilhelm Sjöberg, and David Costanzo. 2016. CertiKOS: An Extensible Architecture for Building Certified Concurrent OS Kernels. In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI). Savannah, GA, 653--669.
[42]
Chris Hawblitzel, Jon Howell, Manos Kapritsos, Jacob R. Lorch, Bryan Parno, Michael L. Roberts, Srinath Setty, and Brian Zill. 2015. Iron-Fleet: Proving Practical Distributed Systems Correct. In Proceedings of the 25th ACM Symposium on Operating Systems Principles (SOSP). Monterey, CA, 1--17.
[43]
Chris Hawblitzel, Jon Howell, Jacob R. Lorch, Arjun Narayan, Bryan Parno, Danfeng Zhang, and Brian Zill. 2014. Ironclad Apps: End-to-End Security via Automated Full-System Verification. In Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI). Broomfield, CO, 165--181.
[44]
Daniel Jackson and Jeannette Wing. 1996. Lightweight Formal Methods. IEEE Computer 29, 4 (April 1996), 20--22.
[45]
Neil D. Jones, Carsten K. Gomard, and Peter Sestoft. 1993. Partial Evaluation and Automatic Program Generation. Prentice Hall International.
[46]
Dejan Jovanović and Leonardo de Moura. 2012. Solving Non-linear Arithmetic. In Proceedings of the 6th International Joint Conference on Automated Reasoning. Manchester, United Kingdom, 339--354.
[47]
James C. King. 1976. Symbolic Execution and Program Testing. Commun. ACM 19, 7 (July 1976), 385--394.
[48]
Gerwin Klein. 2009. Operating system verification---An overview. Sādhanā 34, 1 (Feb. 2009), 27--69.
[49]
Gerwin Klein, June Andronick, Kevin Elphinstone, Toby Murray, Thomas Sewell, Rafal Kolanski, and Gernot Heiser. 2014. Comprehensive formal verification of an OS microkernel. ACM Transactions on Computer Systems 32, 1 (Feb. 2014), 2:1--70.
[50]
Gerwin Klein, Kevin Elphinstone, Gernot Heiser, June Andronick, David Cock, Philip Derrin, Dhammika Elkaduwe, Kai Engelhardt, Michael Norrish, Rafal Kolanski, Thomas Sewell, Harvey Tuch, and Simon Winwood. 2009. seL4: Formal Verification of an OS Kernel. In Proceedings of the 22nd ACM Symposium on Operating Systems Principles (SOSP). Big Sky, MT, 207--220.
[51]
Paul Kocher, Jann Horn, Anders Fogh, Daniel Genkin, Daniel Gruss, Werner Haas, Mike Hamburg, Moritz Lipp, Stefan Mangard, Thomas Prescher, Michael Schwarz, and Yuval Yarom. 2019. Spectre Attacks: Exploiting Speculative Execution. In Proceedings of the 40th IEEE Symposium on Security and Privacy. San Francisco, CA, 19--37.
[52]
Volodymyr Kuznetsov, Johannes Kinder, Stefan Bucur, and George Candea. 2012. Efficient State Merging in Symbolic Execution. In Proceedings of the 33rd ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Beijing, China, 193--204.
[53]
Leslie Lamport. 2008. Computation and State Machines.
[54]
Chris Lattner and Vikram Adve. 2004. LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation. In Proceedings of the 2004 International Symposium on Code Generation and Optimization (CGO). Palo Alto, CA, 75--86.
[55]
Dayeol Lee, David Kohlbrenner, Shweta Shinde, Dawn Song, and Krste Asanović. 2019. Keystone: A Framework for Architecting TEEs. https://arxiv.org/abs/1907.10119.
[56]
K. Rustan M. Leino. 2010. Dafny: An Automatic Program Verifier for Functional Correctness. In Proceedings of the 16th International Conference on Logic for Programming, Artificial Intelligence and Reasoning (LPAR). Dakar, Senegal, 348--370.
[57]
K. Rustan M. Leino and Michał Moskal. 2010. Usable Auto-Active Verification. In Workshop on Usable Verification. Redmond, WA, 4.
[58]
Xavier Leroy. 2009. Formal verification of a realistic compiler. Commun. ACM 52, 7 (July 2009), 107--115.
[59]
Xavier Leroy, Andrew Appel, Sandrine Blazy, and Gordon Stewart. 2012. The CompCert Memory Model, Version 2. Research Report RR-7987. INRIA.
[60]
Peng Li and Steve Zdancewic. 2005. Downgrading Policies and Relaxed Noninterference. In Proceedings of the 32nd ACM Symposium on Principles of Programming Languages (POPL). Long Beach, CA, 158--170.
[61]
Moritz Lipp, Michael Schwarz, Daniel Gruss, Thomas Prescher, Werner Haas, Anders Fogh, Jann Horn, Stefan Mangard, Paul Kocher, Daniel Genkin, Yuval Yarom, and Mike Hamburg. 2018. Meltdown: Reading Kernel Memory from User Space. In Proceedings of the 27th USENIX Security Symposium. Baltimore, MD, 973--990.
[62]
Haohui Mai, Edgar Pek, Hui Xue, Samuel T. King, and P. Madhusudan. 2013. Verifying Security Invariants in ExpressOS. In Proceedings of the 18th International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS). Houston, TX, 293--304.
[63]
Frank McKeen, Ilya Alexandrovich, Ittai Anati, Dror Caspi, Simon Johnson, Rebekah Leslie-Hurd, and Carlos Rozas. 2016. Intel Software Guard Extensions (Intel SGX) Support for Dynamic Memory Management Inside an Enclave. In Proceedings of the 5th Workshop on Hardware and Architectural Support for Security and Privacy. Seoul, South Korea, 9.
[64]
Toby Murray, Daniel Matichuk, Matthew Brassil, Peter Gammie, Timothy Bourke, Sean Seefried, Corey Lewis, Xin Gao, and Gerwin Klein. 2013. seL4: from General Purpose to a Proof of Information Flow Enforcement. In Proceedings of the 34th IEEE Symposium on Security and Privacy. San Francisco, CA, 415--429.
[65]
Luke Nelson, Helgi Sigurbjarnarson, Kaiyuan Zhang, Dylan Johnson, James Bornholt, Emina Torlak, and Xi Wang. 2017. Hyperkernel: Push-Button Verification of an OS Kernel. In Proceedings of the 26th ACM Symposium on Operating Systems Principles (SOSP). Shanghai, China, 252--269.
[66]
Tobias Nipkow, Lawrence C. Paulson, and Markus Wenzel. 2016. Isabelle/HOL: A Proof Assistant for Higher-Order Logic. Springer-Verlag.
[67]
Liam O'Connor, Zilin Chen, Christine Rizkallah, Sidney Amani, Japheth Lim, Toby Murray, Yutaka Nagashima, Thomas Sewell, and Gerwin Klein. 2016. Refinement Through Restraint: Bringing Down the Cost of Verification. In Proceedings of the 21st ACM SIGPLAN International Conference on Functional Programming (ICFP). Nara, Japan, 89--102.
[68]
Stuart Pernsteiner, Calvin Loncaric, Emina Torlak, Zachary Tatlock, Xi Wang, Michael D. Ernst, and Jonathan Jacky. 2016. Investigating Safety of a Radiotherapy Machine Using System Models with Pluggable Checkers. In Proceedings of the 28th International Conference on Computer Aided Verification (CAV). Toronto, Canada, 23--41.
[69]
Alastair Reid. 2017. Who Guards the Guards? Formal Validation of the ARM v8-M Architecture Specification. In Proceedings of the 2017 Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). Vancouver, Canada, Article 88, 24 pages.
[70]
John Rushby. 1992. Noninterference, Transitivity, and Channel-Control Security Policies. Technical Report CSL-92-02. SRI International.
[71]
Arvind Seshadri, Mark Luk, Ning Qu, and Adrian Perrig. 2007. SecVisor: A Tiny Hypervisor to Provide Lifetime Kernel Code Integrity for Commodity OSes. In Proceedings of the 21st ACM Symposium on Operating Systems Principles (SOSP). Stevenson, WA, 335--350.
[72]
Thomas Sewell, Magnus Myreen, and Gerwin Klein. 2013. Translation Validation for a Verified OS Kernel. In Proceedings of the 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Seattle, WA, 471--482.
[73]
SiFive. 2019. SiFive U54 Core Complex Manual, v19.05. SiFive, Inc. https://www.sifive.com/cores/u54
[74]
Helgi Sigurbjarnarson, James Bornholt, Emina Torlak, and Xi Wang. 2016. Push-Button Verification of File Systems via Crash Refinement. In Proceedings of the 12th USENIX Symposium on Operating Systems Design and Implementation (OSDI). Savannah, GA, 1--16.
[75]
Helgi Sigurbjarnarson, Luke Nelson, Bruno Castro-Karney, James Bornholt, Emina Torlak, and Xi Wang. 2018. Nickel: A Framework for Design and Verification of Information Flow Control Systems. In Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation (OSDI). Carlsbad, CA, 287--306.
[76]
Venkatesh Srinivasan and Thomas Reps. 2015. Partial Evaluation of Machine Code. In Proceedings of the 2015 Annual ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA). Pittsburgh, PA, 860--879.
[77]
Tachio Terauchi and Alex Aiken. 2005. Secure Information Flow As a Safety Problem. In Proceedings of the 12th International Static Analysis Symposium (SAS). London, United Kingdom, 352--367.
[78]
The Clang Team. 2019. UndefinedBehaviorSanitizer. https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
[79]
The Coq Development Team. 2019. The Coq Proof Assistant, version 8.9.0.
[80]
Emina Torlak and Rastislav Bodik. 2013. Growing Solver-Aided Languages with Rosette. In Onward! Boston, MA, 135--152.
[81]
Emina Torlak and Rastislav Bodik. 2014. A Lightweight Symbolic Virtual Machine for Solver-Aided Host Languages. In Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Edinburgh, United Kingdom, 530--541.
[82]
Jonas Wagner, Volodymyr Kuznetsov, and George Candea. 2013. -Overify: Optimizing Programs for Fast Verification. In Proceedings of the 14th Workshop on Hot Topics in Operating Systems (HotOS). Santa Ana Pueblo, NM, 6.
[83]
Xi Wang, David Lazar, Nickolai Zeldovich, Adam Chlipala, and Zachary Tatlock. 2014. Jitk: A Trustworthy In-Kernel Interpreter Infrastructure. In Proceedings of the 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI). Broomfield, CO, 33--47.
[84]
Xi Wang, Nickolai Zeldovich, M. Frans Kaashoek, and Armando Solar-Lezama. 2013. Towards Optimization-Safe Systems: Analyzing the Impact of Undefined Behavior. In Proceedings of the 24th ACM Symposium on Operating Systems Principles (SOSP). Farmington, PA, 260--275.
[85]
Andrew Waterman and Krste Asanović (Eds.). 2019. The RISC-V Instruction Set Manual, Volume II: Privileged Architecture. RISC-V Foundation.
[86]
Konstantin Weitz, Steven Lyubomirsky, Stefan Heule, Emina Torlak, Michael D. Ernst, and Zachary Tatlock. 2017. SpaceSearch: A Library for Building and Verifying Solver-Aided Tools. In Proceedings of the 22nd ACM SIGPLAN International Conference on Functional Programming (ICFP). Oxford, United Kingdom, Article 25, 28 pages.
[87]
Jean Yang and Chris Hawblitzel. 2010. Safe to the Last Instruction: Automated Verification of a Type-Safe Operating System. In Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). Toronto, Canada, 99--110.
[88]
Fengzhe Zhang, Jin Chen, Haibo Chen, and Binyu Zang. 2011. CloudVisor: Retrofitting Protection of Virtual Machines in Multi-tenant Cloud with Nested Virtualization. In Proceedings of the 23rd ACM Symposium on Operating Systems Principles (SOSP). Cascais, Portugal, 203--216.

Cited By

View all
  • (2024)VConMC: Enabling Consistency Verification for Distributed Systems Using Implementation-Level Model Checkers and Consistency OraclesElectronics10.3390/electronics1306115313:6(1153)Online publication date: 21-Mar-2024
  • (2024)EvilCS: An Evaluation of Information Leakage through Context Switching on Security Enclaves2024 Design, Automation & Test in Europe Conference & Exhibition (DATE)10.23919/DATE58400.2024.10546809(1-6)Online publication date: 25-Mar-2024
  • (2024)Towards Functional Verification of eBPF ProgramsProceedings of the ACM SIGCOMM 2024 Workshop on eBPF and Kernel Extensions10.1145/3672197.3673435(37-43)Online publication date: 4-Aug-2024
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SOSP '19: Proceedings of the 27th ACM Symposium on Operating Systems Principles
October 2019
615 pages
ISBN:9781450368735
DOI:10.1145/3341301
Permission to make digital or hard copies of part or all 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 third-party components of this work must be honored. For all other uses, contact the Owner/Author.

Sponsors

In-Cooperation

  • USENIX Assoc: USENIX Assoc

Publisher

Association for Computing Machinery

New York, NY, United States

Publication Notes

Badge change: Article originally badged under Version 1.0 guidelines https://www.acm.org/publications/policies/artifact-review-badging

Publication History

Published: 27 October 2019

Check for updates

Badges

Qualifiers

  • Research-article

Funding Sources

Conference

SOSP '19
Sponsor:
SOSP '19: ACM SIGOPS 27th Symposium on Operating Systems Principles
October 27 - 30, 2019
Ontario, Huntsville, Canada

Acceptance Rates

Overall Acceptance Rate 131 of 716 submissions, 18%

Upcoming Conference

SOSP '24

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)525
  • Downloads (Last 6 weeks)77
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2024)VConMC: Enabling Consistency Verification for Distributed Systems Using Implementation-Level Model Checkers and Consistency OraclesElectronics10.3390/electronics1306115313:6(1153)Online publication date: 21-Mar-2024
  • (2024)EvilCS: An Evaluation of Information Leakage through Context Switching on Security Enclaves2024 Design, Automation & Test in Europe Conference & Exhibition (DATE)10.23919/DATE58400.2024.10546809(1-6)Online publication date: 25-Mar-2024
  • (2024)Towards Functional Verification of eBPF ProgramsProceedings of the ACM SIGCOMM 2024 Workshop on eBPF and Kernel Extensions10.1145/3672197.3673435(37-43)Online publication date: 4-Aug-2024
  • (2024)Foundational Integration Verification of a Cryptographic ServerProceedings of the ACM on Programming Languages10.1145/36564468:PLDI(1704-1729)Online publication date: 20-Jun-2024
  • (2024)NetEdit: An Orchestration Platform for eBPF Network Functions at ScaleProceedings of the ACM SIGCOMM 2024 Conference10.1145/3651890.3672227(721-734)Online publication date: 4-Aug-2024
  • (2024)Avoiding Instruction-Centric Microarchitectural Timing Channels Via Binary-Code TransformationsProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 210.1145/3620665.3640400(120-136)Online publication date: 27-Apr-2024
  • (2024)Free Facts: An Alternative to Inefficient Axioms in DafnyFormal Methods10.1007/978-3-031-71162-6_8(151-169)Online publication date: 11-Sep-2024
  • (2024)First Steps towards Deductive Verification of LLVM IRFundamental Approaches to Software Engineering10.1007/978-3-031-57259-3_15(290-303)Online publication date: 6-Apr-2024
  • (2024)A Comprehensive Specification and Verification of the L4 Microkernel APITools and Algorithms for the Construction and Analysis of Systems10.1007/978-3-031-57249-4_11(217-234)Online publication date: 6-Apr-2024
  • (2023)Leveraging Rust for Lightweight OS CorrectnessProceedings of the 1st Workshop on Kernel Isolation, Safety and Verification10.1145/3625275.3625398(1-8)Online publication date: 23-Oct-2023
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media