Bao is a lightweight Type 1 hypervisor designed for embedded systems where isolation, predictable execution and real-time behaviour are important. It enables multiple operating systems and bare-metal applications to share a physical computing platform while maintaining separation between their allocated resources.
The hypervisor uses a static partitioning architecture. Rather than dynamically scheduling virtual processors, Bao assigns dedicated CPU resources to virtual machines. Memory and devices are also allocated according to a predefined configuration, reducing interference between workloads.
Bao is particularly relevant to mixed-criticality systems, where applications with different safety and timing requirements operate on the same hardware. Potential uses include industrial controllers, automotive electronics and other specialised embedded systems.
Its deliberately small implementation avoids reliance on a privileged Linux management virtual machine. This reduces the amount of trusted software involved in maintaining isolation between guests.
This is free and open source software.
Key Features
- Static partitioning of processor cores, memory and hardware devices between virtual machines.
- Direct one-to-one mapping between virtual CPUs and physical processor cores.
- Eliminates the need for conventional virtual CPU scheduling in its baseline partitioning model.
- Memory isolation using hardware-supported address translation and protection mechanisms.
- Direct assignment of I/O devices to individual virtual machines.
- Mapping of physical interrupts to the appropriate virtual machines.
- Supports Linux, FreeRTOS, Zephyr and bare-metal guest workloads.
- Explicit shared-memory configurations for communication between isolated guests.
- Small trusted computing base without a privileged management operating system.
- Configuration of virtual machine resources before system execution.
- Designed to minimise interference and provide predictable real-time behaviour.
- Supports multiple embedded hardware families and QEMU-based development environments.
Website: github.com/bao-project/bao-hypervisor
Support:
Developer: Bao Project contributors
License: Apache License 2.0
Bao is written in C. Learn C with our recommended free books and free tutorials.
Related Software
| Hypervisors | |
|---|---|
| Proxmox | Virtualization management platform |
| Xen Hypervisor | Fastest and most secure infrastructure virtualization solution |
| KVM | Full virtualization solution for x86 hardware |
| oVirt | Virtualization solution for your entire enterprise |
| Firecracker | Create and run lightweight microVMs |
| XCP-ng | High performance enterprise level virtualization platform |
| Lguest | Little hypervisor designed for experimentation with virtualization |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.