{"title":"A Precise Memory Model for Operating System Code Verification","authors":"Geng Chen, Lei Luo, Lijie Wang","doi":"10.1109/TrustCom.2011.153","DOIUrl":null,"url":null,"abstract":"Recently, safety and security requirements of real-time system received much attention. Several formal approaches have been presented to verify some related properties at the source code level. System's code is almost universally written in the C programming language, where memory is just a sequence of bytes and data can overlap almost arbitrarily. In this paper, we present a two-level formal memory model: abstract level and physical level. The abstract level is used to verify properties at design stage. While at physical level, the memory model captures some low-level features of C's pointers and memory. It is used to prove properties on code level. Then, we provide some well-behaved operations in the memory model and prove the well-formedness conditions of both levels. We use this model to solve the problems we encountered in an ongoing attempt to verify the Software Virtual Machine Kernel (SVMK). It is a real-time operating system kernel based on virtualization technology. The memory model is integrated in our verification environment based on the interactive theorem prover Coq. This verification environment will ultimately be used for the verification of the SVMK.","PeriodicalId":289926,"journal":{"name":"2011IEEE 10th International Conference on Trust, Security and Privacy in Computing and Communications","volume":"17 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2011-11-16","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2011IEEE 10th International Conference on Trust, Security and Privacy in Computing and Communications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/TrustCom.2011.153","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Recently, safety and security requirements of real-time system received much attention. Several formal approaches have been presented to verify some related properties at the source code level. System's code is almost universally written in the C programming language, where memory is just a sequence of bytes and data can overlap almost arbitrarily. In this paper, we present a two-level formal memory model: abstract level and physical level. The abstract level is used to verify properties at design stage. While at physical level, the memory model captures some low-level features of C's pointers and memory. It is used to prove properties on code level. Then, we provide some well-behaved operations in the memory model and prove the well-formedness conditions of both levels. We use this model to solve the problems we encountered in an ongoing attempt to verify the Software Virtual Machine Kernel (SVMK). It is a real-time operating system kernel based on virtualization technology. The memory model is integrated in our verification environment based on the interactive theorem prover Coq. This verification environment will ultimately be used for the verification of the SVMK.