bao-project/bao-hypervisor
bao-project/bao-hypervisor has 593 GitHub stars and 192 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 10:43 UTC. Last push 2026-11-05.
Bao, a Lightweight Static Partitioning Hypervisor
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalBao - a lightweight static partitioning hypervisor
Introduction
Bao (from Mandarin Chinese “bǎohù”, meaning “to protect”) is a lightweight, open-source embedded hypervisor which aims at providing strong isolation and real-time guarantees. Bao provides a minimal, from-scratch implementation of the partitioning hypervisor architecture.
Designed mainly for targeting mixed-criticality systems, Bao strongly focuses on isolation for fault-containment and real-time behavior. Its implementation comprises only a minimal, thin-layer of privileged software leveraging ISA virtualization support to implement the static partitioning hypervisor architecture: resources are statically partitioned and assigned at VM instantiation time; memory is statically assigned using 2-stage translation; IO is pass-through only; virtual interrupts are directly mapped to physical ones; and it implements a 1-1 mapping of virtual to physical CPUs, with no need for a scheduler.
Bao has no external dependencies, such as on privileged VMs running untrustable, large monolithic general-purpose operating systems (e.g., Linux), and, as such, encompasses a much smaller TCB.
NOTE: This is work in progress! Don't expect things to be complete. Use at your own risk.
Supported Platforms
The full list of supported (and work in progress) platforms is presented below:
Armv8-A AArch64
- Xilinx Zynq UltraScale+ MPSoC ZCU102/4
- Ultra96 Zynq UltraScale+ ZU3EG
- NXP MCIMX8QM-CPU
- NVIDIA Jetson TX2
- 96Boards HiKey 960
- Raspberry Pi 4
- QEMU virt
- Arm Fixed Virtual Platforms
- Toradex Verdin iMX8M Plus (w/ Dahlia Carrier Board)
- NXP S32G3
- NXP iMX8M Nano EVK
- Altera Agilex 5 SoC FPGA
Armv7-A / Armv8-A AArch32
- Arm Fixed Virtual Platforms
- QEMU virt
Armv8-R AArch64
- Arm Fixed Virtual Platforms
Armv8-R AArch32
- Arm Fixed Virtual Platforms
- Arm MPS3-AN536
- Semidrive E3650
- NXP S32Z270
- Renesas RZT2M
RISC-V RV64
- QEMU virt
- SpacemiT K3 CoM260 Kit (Banana Pi BPI-SM10)
- SiFive HiFive Premier P550
RISC-V RV32
- QEMU virt
Infineon Tricore 1.8
- TC4x Communication Board
Renesas RH850
- RH850 U2A16
Community Resources
Project website:
Source code:
- https://github.com/bao-project/bao-hypervisor.git
- [email protected]:bao-project/bao-hypervisor.git
Documentation:
Contributing:
- Please get in touch ([email protected])
Demos
For a step-by-step guide on how to run different demo configurations of the Bao hypervisor featuring multiple guest operating systems and targeting several platforms please refer to: Bao Hypervisor Demo Guide
References
José Martins, Adriano Tavares, Marco Solieri, Marko Bertogna, and Sandro Pinto. "Bao: A Lightweight Static Partitioning Hypervisor for Modern Multi-Core Embedded Systems". In Workshop on Next Generation Real-Time Embedded Systems (NG-RES 2020). Schloss Dagstuhl-Leibniz-Zentrum für Informatik. 2020. https://drops.dagstuhl.de/opus/volltexte/2020/11779/
José Martins and Sandro Pinto. "Bao: a modern lightweight embedded hypervisor". In Proceedings of the Embedded World Conference, Nuremberg, Germany, 2020.
José Martins and Sandro Pinto. "Static Partitioning Virtualization on RISC-V". In RISC-V Summit, virtual, 2020. https://www.youtube.com/watch?v=yuxMn4ZApEM
Bruno Sá, José Martins and Sandro Pinto. "A First Look at RISC-V Virtualization from an Embedded Systems Perspective". In IEEE Transactions on Computers, doi: 10.1109/TC.2021.3124320.
Samuel Pereira, João Sousa, Sandro Pinto, José Martins, David Cerdeira "Bao-Enclave: Virtualization-based Enclaves for Arm. In https://arxiv.org/abs/2209.05572
José Martins and Sandro Pinto. "Shedding Light on Static Partitioning Hypervisors for Arm-based Mixed-Criticality Systems". In RTAS 2023, San Antonio, Texas, 2023. https://arxiv.org/abs/2303.11186
José Martins and Sandro Pinto. "Porting of a Static Partitioning Hypervisor to Arm’s Cortex-R52" In Embedded Open Source Summit 2023, Prague, Czech Republic, 2023. https://www.youtube.com/watch?v=GmeOikZJRas
David Cerdeira and José Martins. ""Hello 'Bao' World" Tutorial" In Bao Half-Day, Virtual Workshop, 2023. https://www.youtube.com/watch?v=6c8_MG-OHYo
João Peixoto, José Martins, David Cerdeira and Sandro Pinto. "BiRtIO: VirtIO for Real-Time Network Interface Sharing on the Bao Hypervisor" In IEEE Access, 2024. https://ieeexplore.ieee.org/document/10781314
Hidemasa Kawasaki and Soramichi Akiyama. "Running Bao Hypervisor on gem5" In gem5 blog, 2024. https://www.gem5.org/2024/11/12/bao-on-gem5.html
Explore related projects
trimstray/the-book-of-secret-knowledge
A collection of inspiring lists, manuals, cheatsheets, blogs, hacks, one-liners, cli/web tools and more.
257,225 starsHack-with-Github/Awesome-Hacking
A collection of various awesome lists for hackers, pentesters and security researchers
125,103 starsswisskyrepo/PayloadsAllTheThings
A list of useful payloads and bypass for Web Application Security and Pentest/CTF
82,508 starscaddyserver/caddy
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
78,910 stars