Getting Started with the Quest RTOS and Quest-V Partitioning Hypervisor
Overview
Quest is a relatively small real-time operating system (RTOS), developed at Boston University. It works on both uni- and multicore processors, and supports various operating modes depending on the underlying hardware features. It can be configured as either a lightweight SMP system, having a single memory image running on multiple cores, or as a secure separation kernel, known as Quest-V (as in “V for Virtualization”).
The Quest RTOS features a novel real-time scheduling framework, where all control flows (including those triggered by interrupts) are associated with threads mapped to priority-aware and resource accountable virtual CPUs (VCPUs). This enables Quest to provide resource reservations to tasks and interrupt handlers, which are scheduled together.
When configured as a secure separation kernel, Quest-V uses hardware virtualization features to sandbox guest OSes into separate domains, each having direct access to dedicated CPU cores, physical memory, and a subset of I/O devices. The Quest-V partitioning hypervisor is used to establish separate sandboxes for guest OS domains such as Quest, which can co-exist and work in unison with other OSes such as Linux. Secure shared memory channels link multiple guest domains together to form a tightly-coupled separation kernel.
Intended Audience
This tutorial is intended for both academic researchers and industry practitioners, interested in learning more about Quest and Quest-V. We will describe how to configure, build, develop, debug, and test applications, using code examples. The audience may wish to participate via the use of tools such as QEMU/KVM to run Quest/Quest-V. We welcome anyone who might want to know more about contributing to the work, or using it in their own research.
Schedule
Overview of Quest & Quest-V
Quest is an RTOS. Quest-V is a partitioning hypervisor.
Quest-V Kirkstone SDK Demo
Demo SDK on KVM/QEMU.