Skip to content

project-flexos/project-flexos.github.io

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


News


Operating Systems (OSes) have historically been classified according to their isolation properties: monolithic OSes, microkernels, single-address-space OSes, or unikernels... Decades of experience in research and industry showed that there is no silver bullet and that different use-cases might demand different approaches to optimize safety and performance.

What if we tried to design an operating system able to be easily reconfigured into any of these points in the OS design space? What if the OS could be a microkernel, a unikernel, or a monolithic OS, at will, and using a wide range of hardware- and software-backed isolation mechanisms?

FlexOS is an effort to try and answer these questions. FlexOS is an OS allowing users to easily specialize the safety and isolation strategy of an OS at compilation/deployment time, instead of design time. Depending on the configuration, the same FlexOS code can mimic a microkernel with multiple address-spaces, a single-address-space OS with Intel MPK compartments, or many other OS isolation approaches. A prototype of FlexOS on top of Unikraft, a popular library OS framework, is available on GitHub.

Getting Started

Our main README provides a step-by-step guide to get started with our prototype. The README of our ASPLOS artifact evaluation repository is also a great starting point to reproduce our experiments and create new ones.

Publications

  • Software Compartmentalization Trade-Offs with Hardware Capabilities.
    J. A. Kressel, H. Lefeuvre, P. Olivier.
    PLOS'23 [ArXiv]

  • FlexOS: Towards Flexible OS Isolation.
    H. Lefeuvre, V-A. Bădoiu, A. Jung, S. Teodorescu, S. Rauch, F. Huici, C. Raiciu, P. Olivier.
    ASPLOS'22 [ACM] [ArXiv] [Artifact] [YouTube]

  • FlexOS: Easy Specialization of OS Safety Properties.
    H. Lefeuvre.
    Middleware DW'21 [ACM] [YouTube]

  • FlexOS: Making OS Isolation Flexible.
    H. Lefeuvre, V-A. Bădoiu, S. Teodorescu, P. Olivier, T. Mosnoi, R. Deaconescu, F. Huici, C. Raiciu.
    HotOS'21 [ACM] [YouTube]

Presentations

Tutorials

Student Theses

  • VM/EPT: A Virtualisation-based Isolation Backend for FlexOS.
    S. Rauch, 2022, Master Thesis at KIT [PDF]
  • Enforcing Control-Flow Integrity in FlexOS
    M. Krajewski, 2023, BSc Thesis at The University of Manchester [PDF]
  • Exploring Software Compartmentalisation with Hardware Capabilities
    J. A. Kressel, 2023, MPhil Thesis at The University of Manchester [PDF]

Contact

Hugo Lefeuvre, The University of Manchester: hugo.lefeuvre at manchester.ac.uk


FlexOS is an open-source project resulting from a collaboration between the University of Manchester, Politehnica University of Bucharest, and NEC Laboratories Europe.

FlexOS is supported in part by a studentship from NEC Labs Europe, EU H2020 grants 825377 (UNICORE), 871793 (ACCORDION) and 758815 (CORNET), as well as the UK’s EPSRC grants EP/V012134/1 (UniFaaS) and EP/V000225/1 (SCorCH). UPB authors are partly supported by VMWare gift funding.

FlexOS logo made by Kerbreizh Informatique.