Haiku OS [GSoC 2024] Hardware Virtualization: Final Report
The GSoC 2024 project enhanced the Haiku operating system by integrating NVMM hypervisor support, achieving key milestones but facing unresolved issues with SVM backend, OS compatibility, and performance discrepancies.
Read original articleThe GSoC 2024 project focused on enhancing the Haiku operating system by integrating hardware virtualization through the NVMM hypervisor, which supports QEMU. The primary objective was to port the NVMM driver to Haiku, specifically the VMX backend, to enable accelerated virtual machine performance. The project achieved significant milestones, including the near-complete porting of the NVMM driver and the successful patching of QEMU to support NVMM on Haiku. However, several unresolved issues remain, such as the incomplete SVM backend, compatibility problems with certain operating systems, and performance discrepancies when running on real hardware versus nested virtualization. The project also faced challenges with QEMU crashing under specific conditions and issues related to EPT translations not being flushed from the TLB in a timely manner. Despite these challenges, the project provided valuable learning experiences in virtualization, kernel development, and debugging. The code developed during the project is available on GitHub, although it has not yet been merged due to outstanding issues.
- The project aimed to integrate NVMM hypervisor support into Haiku for improved virtualization.
- Key achievements include the porting of the NVMM driver and QEMU patching for NVMM support.
- Several unresolved issues persist, including incomplete SVM backend and OS compatibility problems.
- Performance issues were identified when running on real hardware compared to nested virtualization.
- The project provided significant learning opportunities in virtualization and kernel development.
Related
FreeBSD Bhyve Companion Tools
The author details transitioning from VirtualBox to FreeBSD Bhyve, praising Bhyve's benefits in a FreeBSD setting. Tools like VNC connection and pause/resume scripts optimize Bhyve operations, simplifying VM management.
Re-visiting VM/386 (2023)
The author shares experiences with VM/386, an emulation software from 1988. Running on 86box, it enables multitasking on an 80386 processor with graphical PC programs, despite limitations hindering broader success.
WebVM is a server-less virtual Linux environment running client-side
WebVM is an open-source Linux virtualization platform on GitHub, focusing on CPU and HDD compatibility. Users connect via Tailscale for networking, engaging the community through Discord and GitHub for issue tracking.
Upgrading my Chumby 8 kernel part 13: the end
The blog post concludes a series on upgrading the Chumby 8's kernel to a modern 6.x version, detailing challenges faced, achievements in subsystem improvements, and ongoing potential for future updates.
Haiku Activity and Contract Report, July 2024
The Haiku operating system report for July 2024 highlights major performance improvements, including true vectored I/O, a fixed CPU profiler, faster application startup, and a 25% reduction in compile times.
”On the other side of the road are two competitors that have come along more recently.
One of them (Be, Inc.) is selling fully operational Batmobiles (the BeOS). They are more beautiful and stylish even than the Euro-sedans, better designed, more technologically advanced, and at least as reliable as anything else on the market--and yet cheaper than the others.
With one exception, that is: Linux…”
I guess that the lack of comments around this project indicates the extreme technical detail of low level operating system code which is over the heads of >90% of HN readers which I want to see such posts like this here rather than yet another copy-and-paste LLM project.
This report is nicely presented and offers a neat explanation into what was done around hardware-assisted virtualization with the goal of using the NetBSD NVVM driver in another OS to support this in QEMU.
Great job to them.
Related
FreeBSD Bhyve Companion Tools
The author details transitioning from VirtualBox to FreeBSD Bhyve, praising Bhyve's benefits in a FreeBSD setting. Tools like VNC connection and pause/resume scripts optimize Bhyve operations, simplifying VM management.
Re-visiting VM/386 (2023)
The author shares experiences with VM/386, an emulation software from 1988. Running on 86box, it enables multitasking on an 80386 processor with graphical PC programs, despite limitations hindering broader success.
WebVM is a server-less virtual Linux environment running client-side
WebVM is an open-source Linux virtualization platform on GitHub, focusing on CPU and HDD compatibility. Users connect via Tailscale for networking, engaging the community through Discord and GitHub for issue tracking.
Upgrading my Chumby 8 kernel part 13: the end
The blog post concludes a series on upgrading the Chumby 8's kernel to a modern 6.x version, detailing challenges faced, achievements in subsystem improvements, and ongoing potential for future updates.
Haiku Activity and Contract Report, July 2024
The Haiku operating system report for July 2024 highlights major performance improvements, including true vectored I/O, a fixed CPU profiler, faster application startup, and a 25% reduction in compile times.