Wednesday, January 15

Haiku OS [GSoC 2024] Hardware Virtualization: Final Report

videobacks.net

summary

QEMU is which permits an within another. While there currently is a , presently does any through virtualization (through VT- and SVM.) This makes it too sluggish for lots of usages. This intended to bring virtualization to Haiku by NVMM, a hypervisor that currently has QEMU , into Haiku from DragonFlyBSD. job ( consisted of the ) were:

Job objectives

  • NVMM ported to Haiku (VMX backend )
  • QEMU efficient in speeding virtual through NVMM

The objectives didn' alter much throughout the job (although there were to get SVM backend working too, which didn't occur because didn't got at any to enter it) and they've been finished to some : The motorist (VMX backend) is practically entirely ported (there are just a few out on) and QEMU can speeding up virtual devices however a number of stay.

Now, the information:

Finished

  • NVMM frontend ported
  • NVMM VMX backend ported (with a staying)
  • libnvmm (& & suite) ported
  • EPT assistance contributed to the
  • QEMU covered to support NVMM on Haiku and working

Unsolved

  • SVM backend not ported
  • Some OSes do not correctly on QEMU
  • Various on hardware
  • QEMU when SMP is allowed
  • EPT translations not flushed from TLB on time

These are simply the problems, for a complete of insufficient describe (43 still opened while composing this post). Here can see QEMU virtualizing KolibriOS through NVMM (on embedded virtualization):

The code is offered at GitHub (devotes 13 and later on in the ). None of it has actually been combined yet given that the motorist isn't totally working and the kernel I made are just required for NVMM.

Finished goals: information

Some information everything I got done, in sequential , with a few of the more pertinent dedicates consisted of. Some dedicates from the of the job consist of modifications to more things than what the devote considering that at the start I needed to do great of modifications in several of the job and it was tough to divide things into different dedicates.

While the NVMM code from DragonFlyBSD was more OS- than the NetBSD one it still presumed a great of BSD macros were offered. A lot of them weren't readily available on Haiku so we brought some headers from DragonFlyBSD:

  • sys/specialreg. from DragonFlyBSD
  • Include _ IOR and comparable macros to nvmm ioctl

NVMM is composed in C while substantial pieces of Haiku are composed on . We chose to NVMM in C (that is,

ยป …
Find out more

videobacks.net