Alexander Vaynberg's research while affiliated with Yale University and other places
What is this page?
This page lists the scientific contributions of an author, who either does not have a ResearchGate profile, or has not yet added these contributions to their profile.
It was automatically created by ResearchGate to create a record of this author's body of work. We create such pages to advance our goal of creating and maintaining the most comprehensive scientific repository possible. In doing so, we process publicly available (personal) data relating to the author as a member of the scientific community.
If you're a ResearchGate member, you can follow this page to keep up with this author's work.
If you are this author, and you don't want us to display this page anymore, please let us know.
It was automatically created by ResearchGate to create a record of this author's body of work. We create such pages to advance our goal of creating and maintaining the most comprehensive scientific repository possible. In doing so, we process publicly available (personal) data relating to the author as a member of the scientific community.
If you're a ResearchGate member, you can follow this page to keep up with this author's work.
If you are this author, and you don't want us to display this page anymore, please let us know.
Publications (4)
A virtual memory manager (VMM) is a part of an operating system that provides the rest of the kernel with an abstract model of memory. Although small in size, it involves complicated and interdependent invariants that make monolithic verification of the VMM and the kernel running on top of it difficult. In this paper, we make the observation that a...
Though attractive as a model for elastic on-demand service, cloud computing solutions based on existing hypervisors cannot guaran-tee that the provider will service a user's requests correctly, and will not leak sensitive information to unauthorized parties. We in-troduce CertiKOS (Certified Kit Operating System), a hypervi-sor architecture that le...
Self-modifying code (SMC), in this paper, broadly refers to anyprogram that loads, generates, or mutates code at runtime. It is widely used in many of the world's critical software systems tosupport runtime code generation and optimization, dynamic loading and linking, OS boot loader, just-in-time compilation, binary translation,or dynamic code enc...
Runtime stacks are critical components of any modern software--they are used to implement powerful control structures such as function call/return, stack cutting and unwinding, coroutines, and thread context switch. Stack operations, however, are very hard to reason about: there are no known formal specifications for certifying C-style setjmp/longj...
Citations
... The overall approach in that body of work is many layers of refinement proofs, using a proliferation of layers with small differences to keep most individual refinements tractable. In keeping with precursor work on the project from the same group [51], the purpose of some layers is to abstract away from virtual memory, so the proof is essentially a simulation proof covering for example a proof that execution with page-in on page faults is a valid refinement of an execution model where no paging occurs. ...
... Klein et al. (2017) gives a more thorough overview of the work in this area. Some major achievements are the comprehensive verification of the seL4 microkernel (Klein et al., 2009), the verification stack of the Verisoft project (Alkassar et al., 2009(Alkassar et al., , 2010, the increase of verification productivity in CertiKOS (Gu et al., 2011(Gu et al., , 2015 and the full end-to-end application verification in Ironclad (Hawblitzel et al., 2014), which builds on a modified verified Verve kernel (Yang & Hawblitzel, 2010) and the aforementioned Dafny language. ...
... This makes it difficult, or in the case of highly optimized code impossible, to adapt logics for high-level languages by mapping binary fragments to high-level statements: the code may be re-ordered by compilation, and one high-level statements may be implemented by multiple overlapping fragments and share fragments with other statements. A number of authors have explored the possibility of regaining Hoare-style reasoning also for the unstructured case [18,55,35,2,21,10,51,53,28,44]. However, we argue that there is still room for progress. ...
Reference: Hoare-Style Logic for Unstructured Programs
... Nonetheless, the lack of run-time information makes the code discovery problem and the code location problem [5] hard to solve. In addition, self-modifying code [11], which modifies its own instructions in run time, makes translating such binary a challenge. Dynamically linked programs or libraries are also difficult to translate using static binary translation. ...