Trials and Tribulations in Synthesizing Operating Systems

  title={Trials and Tribulations in Synthesizing Operating Systems},
  author={Jingmei Hu and Eric Lu and David A. Holland and Ming Kawaguchi and Stephen Chong and Margo I. Seltzer},
  journal={Proceedings of the 10th Workshop on Programming Languages and Operating Systems},
  • Jingmei Hu, Eric Lu, +3 authors Margo I. Seltzer
  • Published 27 October 2019
  • Computer Science
  • Proceedings of the 10th Workshop on Programming Languages and Operating Systems
Recent advances in program synthesis convinced us that it was the right time to transform the process of porting an operating system into a program synthesis problem. We set out to synthesize the needed machine dependent code for an existing operating system. This undertaking proved far more challenging than we anticipated. We summarize our experience and lessons learned and propose next steps in realizing such an undertaking. 
Declarative Power Sequencing
This article takes a first step toward putting BMC software on a sound footing by specifying the hardware environment and the constraints necessary for safe and correct operation by presenting both a modeling language for complex power-delivery networks and a tool to automatically generate safe, efficient power sequences for complex modern platforms.
Specification and verification in the field: Applying formal methods to BPF just-in-time compilers in the Linux kernel
The results show that it is possible to build a verified component within a large, unverified system with careful design of specification and proof strategy and an automated proof strategy that scales to practical implementations.
Assuage: Assembly Synthesis Using A Guided Exploration
Assuage is a parallel interactive assembly synthesizer that engages the user as an active collaborator, enabling synthesis to scale beyond current limits, and exposes information about the underlying synthesis process using multiple representations to help users guide synthesis.
Software Engineering and Formal Methods: 18th International Conference, SEFM 2020, Amsterdam, The Netherlands, September 14–18, 2020, Proceedings
The approach and preliminary results undertaken in the project EXOSOUL are presented, aimed at equipping humans with an automatically generated exoskeleton, a software shield that protects and empowers them and their personal data in all interactions with the digital world by mediating or discarding those ones that would result in unacceptable or morally wrong behaviors according to the user’s ethical and privacy preferences.
Generating correct initial page tables from formal hardware descriptions
This work adopts an existing, powerful hardware description language, and efficiently compile it to generate correct initial page tables and memory maps for OS kernels and firmware from a single system description, and can use the generated data structures to successfully initialize translation hardware, devices, memory maps, and allocators enabling easy support of new hardware platforms.


The Synthesis Kernel
The Synthesis distributed operating system combines efficient kernel calls with a high-level, orthogonal interface with the use of a code synthesizer in the kernel to generate specialized kernel routines for specifrc situations to avoid the traditional trade-off in operating systems between powerful interfaces and efrcient implementations.
Program synthesis using conflict-driven learning
The notion of equivalence modulo conflict is introduced and it is shown how this idea can be used to learn useful lemmas that allow the synthesizer to prune large parts of the search space.
FlashMeta: a framework for inductive program synthesis
The FlashMeta framework implements a novel program synthesis methodology, allowing synthesizer developers to generate an efficient synthesizer from the mere DSL definition (if properties of the DSL operators have been modeled), and found that 10+ existing industrial-quality mass-market applications based on PBE can be cast as instances of D4.
Program synthesis from polymorphic refinement types
The tool was able to synthesize more complex programs than those reported in prior work, as well as most of the benchmarks tackled by existing synthesizers, often starting from a more concise and intuitive user input.
Safe manual memory management in Cyclone
It is found that statically-scoped regions and tracked pointers can be combined to build alternative memory-management abstractions, such as reference counted objects and arenas with dynamic lifetimes, and thus provide a flexible basis.
Sketching concurrent data structures
PSketch is a program synthesizer that helps programmers implement concurrent data structures using a new counterexample-guided inductive synthesis algorithm (CEGIS) that generalizes the original sketch synthesis algorithm from Solar-Lezama
User-Guided Device Driver Synthesis
Tmite-2 is the first tool to combine the power of automation with the flexibility of conventional development, and is also the first practical synthesis tool based on abstraction refinement, to support automated debugging of input specifications.
Synthesizing memory models from framework sketches and Litmus tests
It is shown that MemSynth can synthesize specifications for x86 in under two seconds, and for PowerPC in 12 seconds from 768 litmus tests, and it is used to reproduce, debug, and automatically repair a paper on comparing memory models in just two days.
Structuring the synthesis of heap-manipulating programs
A deductive approach to synthesizing imperative programs with pointers from declarative specifications expressed in Separation Logic, which introduces the novel framework of Synthetic Sep separation Logic (SSL), and implements a proof search engine for SSL in a form of the program synthesizer called SuSLik.
Making paths explicit in the Scout operating system
The potential advantages of a path-based OS structure are articulated, the specific path architecture implemented in the Scout OS is described, and the advantages in a particular application domain---receiving, decoding, and displaying MPEG-compressed video are demonstrated.