Skip to content
Shriram Raja edited this page Dec 4, 2024 · 4 revisions

quest

A lightweight, predictable and dependable kernel for multicore processors.


Quest is a relatively small real-time operating system (RTOS). 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), a scalable multikernel (running multiple instances of the OS on separate cores, thereby reducing cross-core contention), or as a secure separation kernel (a.k.a. partitioning hypervisor, called Quest-V, operating as a distributed system on a chip). In the latter case, hardware virtualization is used to “sandbox”, or isolate subsets of hardware resources (i.e., memory regions, CPU cores, and I/O devices) amongst different software components. In this way, the system can be made more secure and robust, in the presence of faults from both errant or malicious code.

The system 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 support both spatial and temporal partitioning of resources.

When operating as a distributed system on a chip, in multi-/separation kernel mode, online fault detection and recovery mechanisms can be employed to maintain system availability. Quest is open source software available under the terms of the GNU General Public License v3.

Introduction to Quest

Building and Debugging Quest

Getting Started with Quest