I would like to suggest making virtualization a first-class citizen on Haiku. I know the idea of KVM and FreeBSD-like jails(linux namespaces) has been suggested before, but I’d like to go a bit deeper into why this would game changes for Haiku.
Over the past 15 years, virtualization and containers have completely transformed computing. Since Docker’s release in 2013, containers have become the backbone of almost every server-side deployment. Even on the desktop, container-like package systems such as Flatpak and Snap are gaining traction. Meanwhile, clever uses of virtualization—like Windows Subsystem for Linux (WSL)—have made it easier to bridge ecosystems.
Why This Matters for Haiku
Managing Complexity
Haiku has grown far beyond the simplicity of the original BeOS. While that’s natural given the technology progress, it also introduces a growing challenge: managing dependencies and third-party libraries . A container or namespace-based package management system could significantly simplify this by isolating apps and their dependencies. Native Haiku applications could continue to be built directly on the Be API, while ported apps could run inside lightweight containers with encapsulated dependencies.
Expanding Use Cases
With support for KVM or similar technologies, Haiku could introduce a Docker-like system that enables running Linux-based images. This would open the door to a massive range of use cases, especially for developers without need to port complex applications. Combined with support for X11 or Wayland, it would even be possible to run full-featured graphical applications in a seamless way as it with docker on Linux. Or even have Windows Application with Wine in Linux Container
This is why Microsoft introduced WSL—they realized they were losing developers to Unix-like systems. Instead of making Windows in to Unix, they made it possible to run Linux tools directly within it.
Unlocking Hardware Potential
If Haiku could support hardware passthrough via KVM, it could enable near-native performance for things like gaming or AI —without needing to dual boot or switch operating systems or implement drivers for specialize hardware
Would love to hear you options on this. Love all you work thanks!
You can use qemu. KVM is “only” an acceleration for this… docker does not use kvm on linux, but namespaces, this works because docker images are based on the linux ABi. We have a wip port of NVMM which should work similarily to KVM.
Encapsulating depndencies in vms can be done… but this does not reduce complexities at all, even worse you now have duplicate dependencies with duplicate config files and duplicate disk storage with vms… with haikus packagefs we already have a better solution, if you want you can mount a package in two places and create severall “views” of the miunted packages as such, so for one app, in it’s path it looks like depA is installed, and for another package depB is installed. But this “only” requires chroot functionality, or alternatively for native code the find paths api.
It doesn’t work like that. KVM is “only” for cpu virtualization, passthrough only works if the host does not use the hardware itself, even on linux… so for example if you want to use a gpu for gaming you have to have a second gpu in your machine (or integrated gpu and dedicated) for this to work.
The alternative is dedicated drivers for example virgil3d, but that then again requires proper host support for the gpu.
In addition to this, we do not really need linux abi compatibility. FreeBSD has this for example, and requires it because it is a server OS and competes with linux in the server space.
For desktop use this has very limited useability, for example if you’d want to support steam we still need proper gpu drivers… so no real improvements over native code.
Windows solved the dependency hell more than two decades ago. Libraries are included with the main application. This solution could be applied to Haiku as well. VMs are great, but completely overkill in this situation.
Windows solved the dependency hell more than two decades ago. Libraries are included with the main application. This solution could be applied to Haiku as well. VMs are great, but completely overkill in this situation.
True, however Unix type systems are way more fragmented than windows.
if VMs / Namespace are not solution to dependency still can play important roll by bring more use cases to the system as has M$ WSL to windows
Yes. I agree. Implementing virtualization or sandboxing in kernel or userspace system level as part of the system will not bring enough to a desktop-exclusive usecase. It may make sense in “desktops” as considered by microsoft, Apple or linux major distros of what is a desktop.
Desktops may also be considered as actually designed to be able to function offline as well as online.