Quest Kernel Development

Quest is a small operating system designed to be used as the basis for research and education. Richard West and Gary Wong developed the beginning of Quest in the summer of 2005. The first release included a shell, basic device support, fork/exec/exit process control semantics, simple preemptive scheduling, coroutine and paging capabilities on uni-processor 32-bit x86 architectures.

Thanks to Matt Danish and Ye Li, the current version of Quest supports SMP and more extensive drivers, including those for ACPI, PCI, UHCI, USB Hub, USB Mass Storage, USB ASIX network adapter, Netgear USB Wireless Adapter, Logitec Webcam Pro 1000 and the Prolific PL2303 USB Serial Coverter.

Quest features a unique scheduling infrastructure based on time-constrained “virtual CPUs” (or VCPUs, for short).  This infrastructure integrates the scheduling of asynchronous events such as interrupts with conventional tasks, which are all executed as time-budgeted priority-based threads. Additionally, a performance monitoring subsystem takes advantage of hardware performance counters, to influence the placement of VCPUs on physical processing cores (PCPUs) according to microarchitectural factures such as cache usage. In this way, multiple threads of execution, co-running on separate VCPUs mapped to different PCPUs can be arranged to avoid/reduce microarchitectural resource contention.

The main goals of Quest are: safety, predictability and efficiency. Quest’s scheduling infrastructure provides temporal isolation and predictability for VCPUs, which we believe are the foundations for a system suitable for real-time/embedded computing, or even virtual machines and cloud computing where performance isolation guarantees are needed.

  • Quest is GLP’d open-source software, available for download from github.
  • A description of the Quest-V virtualized multikernel version of our system is available.
  • Slides presented at Charles River Analytics (CRA), Cambridge, MA on Quest VCPU Scheduling
  • Slides for the talk at the 17th IEEE Real-Time and Embedded Technology and Applications Symposium, Chicago, USA, April 13, 2011
  • A poster presented at the BU Science Day, Spring 2011 on Quest’s VCPU Scheduling Infrastructure
  • A poster describing the background to the hardware performance monitoring subsystem in Quest, based on collaborations with VMware

RacerX – High-speed Autonomous Robot Control