Towards Porting Operating Systems with Program Synthesis

04/15/2022
by   Jingmei Hu, et al.
0

The end of Moore's Law has ushered in a diversity of hardware not seen in decades. Operating system (and system software) portability is accordingly becoming increasingly critical. Simultaneously, there has been tremendous progress in program synthesis. We set out to explore the feasibility of using modern program synthesis to generate the machine-dependent parts of an operating system. Our ultimate goal is to generate new ports automatically from descriptions of new machines. One of the issues involved is writing specifications, both for machine-dependent operating system functionality and for instruction set architectures. We designed two domain-specific languages: Alewife for machine-independent specifications of machine-dependent operating system functionality and Cassiopea for describing instruction set architecture semantics. Automated porting also requires an implementation. We developed a toolchain that, given an Alewife specification and a Cassiopea machine description, specializes the machine-independent specification to the target instruction set architecture and synthesizes an implementation in assembly language with a customized symbolic execution engine. Using this approach, we demonstrate successful synthesis of a total of 140 OS components from two pre-existing OSes for four real hardware platforms. We also developed several optimization methods for OS-related assembly synthesis to improve scalability. The effectiveness of our languages and ability to synthesize code for all 140 specifications is evidence of the feasibility of program synthesis for machine-dependent OS code. However, many research challenges remain; we also discuss the benefits and limitations of our synthesis-based approach to automated OS porting.

READ FULL TEXT
research
07/31/2019

Aquarium: Cassiopea and Alewife Languages

This technical report describes two of the domain specific languages use...
research
03/01/1998

Synthesizing Customized Planners from Specifications

Existing plan synthesis approaches in artificial intelligence fall into ...
research
09/20/2022

Assisted Specification of Code Using Search

We describe an intelligent assistant based on mining existing software r...
research
01/03/2019

The Challenges in Specifying and Explaining Synthesized Implementations of Reactive Systems

In formal synthesis of reactive systems an implementation of a system is...
research
01/26/2023

Synthesizing Specifications

Every program should always be accompanied by a specification that descr...
research
05/29/2021

Examiner: Automatically Locating Inconsistent Instructions Between Real Devices and CPU Emulators for ARM

Emulator is widely used to build dynamic analysis frameworks due to its ...
research
07/31/2019

Aquarium Technical Report Preprint

In this technical report, we present the core calculi for two of the dom...

Please sign up or login with your details

Forgot password? Click here to reset