Getting Started

For getting started with the Bao Hypervisor we recommend following the “Hello World” interactive tutorial.

The bao-helloworld repository provides a minimal tutorial designed to guide beginners through the process of setting up and running the Bao Hypervisor on QEMU platforms. It serves as a practical starting point for new users to understand Bao’s workflow and development, including the configuration and deployment of different VM (i.e., Linux OS, FreeRTOS, and baremetal applications).

This guide walks through the steps required to reproduce the “Hello World” demo. It begins with setting up a development environment, including the installation of all necessary dependencies and cross-compile toolchain. The tutorial then covers building Bao and necessary platform-specific firmware, i.e., Arm’s Trusted Firmware-A (TF-A) for aarch64 targets and RISC-V’s OpenSBI for riscv64 targets. Finally, you will configure and run different setups, such as single-guest and dual-guest configurations, on QEMU platforms for both architectures.

Whether you are evaluating Bao for the first time or seeking a minimal, reproducible reference environment for further development, this example offers a solid foundation.

You can find the complete tutorial and source code in the official repository at bao-helloworld. We also recommend watching the following video, which provides a step-by-step walk-through of the tutorial: