Re:_Proposal_—_Seamless_Windows_Application_Virtua lization_via_bhyve
- In reply to: Mario Marietto : "Re:_Proposal_—_Seamless_Windows_Application_Virtua lization_via_bhyve"
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Sat, 08 Aug 2026 13:36:50 UTC
this is exactly the kind of grounding this thread needed a clear, testable Gate 0 instead of more speculation. Thanks for laying out the RDP/RAIL tradeoffs so concretely too. Really appreciate everyone's input here Wine limitations, licensing, sshfs-win, Looking Glass, and now this this has been a great discussion. 8 Ağu 2026 Cmt 14:28 tarihinde Mario Marietto <marietto2008@gmail.com> şunu yazdı: > I must give you some clarifications because taken by enthusiasm, I made > some mistake : > > > What I've described is essentially WinApps / WinBoat. WinApps uses FreeRDP > as a backend to render Windows applications alongside Linux ones, with the > host /home directory reachable inside Windows via \tsclient\home, and > WinBoat exposes individual Windows program windows to the host using > FreeRDP and Windows' RemoteApp protocol, avoiding the overhead of streaming > an entire desktop by returning individual windows to the compositor. Nobody > has built this on FreeBSD/bhyve. That gap is the actual contribution. > GitHub <https://github.com/winapps-org/winapps>Windows Forum > <https://windowsforum.com/windows-news.4/winboat-run-real-windows-apps-on-linux-with-per-app-remoteapp-windows.395476/> > > But three parts of my sketch were wrong, and they're the load-bearing ones. > > *1. Looking Glass cannot give me seamless windows.* LG captures the > guest's *whole framebuffer* as one surface. It has no concept of a > top-level window. I would get a Windows desktop in a box — exactly the VNC > experience I'm trying to escape, just faster. The mechanism that produces > "one Photoshop window on my FreeBSD desktop, no desktop behind it" is RDP *RemoteApp > (RAIL)*: the guest exports each top-level window as its own surface and > FreeRDP maps each one to a local X11 window. > > So my "without remote desktop server and client" requirement has to be > restated. I *do* use RDP. I just never see a desktop. The protocol is an > implementation detail; the UX is what you described. If I want to insist on > literally no RDP, I have to write a RAIL-equivalent myself — a guest agent > hooking window creation, plus a host compositor client — which is a > multi-year project for a strictly worse result. > > *2. Windows cannot live in a jail or a podman container.* A jail shares > the FreeBSD kernel. Podman on FreeBSD runs FreeBSD containers. > dockur/windows on Linux is not containerized Windows — it's a container > that *wraps QEMU*; the isolation is the VM. On FreeBSD the sandbox is > bhyve, full stop. A vnet jail is still useful, but as a wrapper around the *bhyve > process* (network confinement, resource limits), not as the thing Windows > runs in. > > *3. sshfs-win points the wrong direction, and I probably don't need it.* > sshfs-win mounts *my FreeBSD* filesystem *inside Windows* — that's the > useful direction, but RDP already does it for free with > /drive:home,/home/marietto, appearing as \\tsclient\home, over the same > connection, no WinFsp, no extra daemon. The apps then read and write my > real FreeBSD files natively, which makes "access files installed inside the > VM" a non-goal — I never need to reach into C:\Program Files. If I still > want host→guest visibility, I have to run SMB in the guest and mount_smbfs > it; do not mount the live zvol. > > *What the FreeBSD stack actually is* > > net/freerdp3 is in ports and supports /app:program:... — the RAIL client > is done, cross-platform, already builds on FreeBSD. That's the piece that > looked hardest and isn't. The rest is: > > - bhyve + edk2, virtio-blk on a zvol, headless, VNC only for the > initial install > - Win11 Pro (your own DVD/key), RemoteApp unlocked via the > TSAppAllowList registry keys — Microsoft doesn't expose RemoteApp on > client SKUs but it works; this is what WinApps does > - a thin CLI + a guest agent that enumerates Start Menu .lnk entries > into a JSON manifest on the shared drive, from which the host generates > shims and .desktop files > > install and run then become two RDP invocations: install launches the > installer as a RemoteApp (or drops me into a full session for the ones that > demand it), run launches the registered target. > > *The part that's genuinely better on FreeBSD than on Linux:* ZFS. > Snapshot the zvol before every install, and uninstall becomes a rollback. > Per-app clones give me real per-application sandboxes off one golden > Windows dataset, at near-zero disk cost. That's a feature Wine structurally > cannot have and WinApps doesn't bother with. > > *Where Looking Glass does fit* — as a *second display path*, not the > primary one. RAIL for normal apps; LG for fullscreen GPU-accelerated > single-app mode where RDP's encode/decode latency hurts. My ivshmem-plain > work isn't wasted, it's just answering a different question. Don't let this > project block on it. > > *Honest weaknesses* > > - Cold start. Wine launches in ~1s; I need a warm VM. bhyve > suspend/resume exists but is still experimental and requires kernel and > userland rebuilt with the BHYVE_SNAPSHOT option, and has had limitations > with multiple devices of the same type. Plan on a daemon holding the VM up, > first launch 30–60s, subsequent ~1–2s. FreeBSD > <https://man.freebsd.org/cgi/man.cgi?query=vm&sektion=8&manpath=freebsd-release-ports> > FreeBSD <https://reviews.freebsd.org/D35590> > - GPU. Under RDP the presentation surface is encoded on the host-guest > link. A passthrough GPU still serves compute (Adobe's accelerated filters, > CUDA), but I need the "use hardware graphics adapters for all RDS sessions" > policy set. > - Multi-monitor RAIL has known artifacts depending on compositor. > > *Gate 0*, before writing any CLI: bring up a headless Win11 Pro guest > under bhyve, unlock RemoteApp, and get xfreerdp3 /app:program:notepad.exe > /drive:home,/home/marietto to paint a single Notepad window on my FreeBSD > X session that can open a file from my home directory. If that works, > everything else is orchestration. If it doesn't, no amount of CLI design > saves it. > > > On Sat, Aug 8, 2026 at 3:11 PM Asiye Sarıyıldız <asiyee994@gmail.com> > wrote: > >> Hmm. Actually it's... It's true. I was overly cautious there looking at >> Looking Glass's actual requirements, iGPU + dedicated GPU is officially one >> of their two supported configurations (the other being iGPU + vGPU), and >> it's explicitly called out as the common laptop/desktop scenario. Your >> Aorus Pro setup (iGPU + GTX 1060 + RTX 2080 Ti) is well beyond what's >> needed. >> The only real caveat in their docs is that if the iGPU is used on the >> host side, you may hit some bandwidth/resolution limits since it shares >> system RAM but that's a minor tradeoff, not a blocker. So GPU passthrough >> is much more broadly achievable than I gave it credit for. Stepping back a >> bit I'd love to hear what you think of where this thread has landed >> overall. Between the qemu-bhyve install/run workflow, bringing your own >> Windows ISO to sidestep licensing, sshfs-win or a jail for file access, and >> now Looking Glass for near-native seamless display, it feels like the >> pieces could actually fit together into something coherent. >> Do you think this is realistic to build, or are we underestimating the >> effort? My hope is that if something like this existed, it could genuinely >> make FreeBSD a more viable desktop choice for people who are currently >> stuck on Windows just for a handful of apps >> >> >> 8 Ağu 2026 Cmt 14:03 tarihinde Mario Marietto <marietto2008@gmail.com> >> şunu yazdı: >> >>> ->The main constraint I see is GPU passthrough requirements Looking >>> Glass typically needs >dedicated/secondary GPU (or at least IOMMU-capable >>> hardware) for good performance, which not >every FreeBSD desktop user will >>> have >>> >>> Are you sure ? Today every mobo has one integrated gpu embedded inside >>> it. And a dedicated GPU for intensive tasks. I regularly run the Intel GPU >>> integrated inside my Aorus Pro with one Intel I9 cpu on top of it and two >>> dedicated GPUs I use for programming. A GTX 1060 and one RTX 2080 ti. I >>> think this is the common scenario for most people. >>> >>> On Sat, Aug 8, 2026 at 2:53 PM Asiye Sarıyıldız <asiyee994@gmail.com> >>> wrote: >>> >>>> Looking Glass is a brilliant addition to this idea exactly the kind of >>>> "seamless" experience I was hoping for, and much better than VNC in terms >>>> of latency. Having the client run natively on FreeBSD while the server runs >>>> inside the jail/VM with Windows would make the whole thing feel like a real >>>> native app rather than a remote session. >>>> The main constraint I see is GPU passthrough requirements Looking Glass >>>> typically needs a dedicated/secondary GPU (or at least IOMMU-capable >>>> hardware) for good performance, which not every FreeBSD desktop user will >>>> have. Maybe we could fall back to a VNC-based mode when passthrough isn't >>>> available, and use Looking Glass as the "fast path" when it is. >>>> Combined with the qemu-bhyve install/run workflow and sshfs-win (or a >>>> jail-based file mount) for file access, this is shaping up to be a pretty >>>> complete picture. Really appreciate you connecting the dots here. >>>> >>>> 8 Ağu 2026 Cmt 13:48 tarihinde Mario Marietto <marietto2008@gmail.com> >>>> şunu yazdı: >>>> >>>>> >Thanks for the feedback Actually what I had in mind is closer to how >>>>> WSL2 works on Windows >>>>> >>>>> qemu-bhyve install Windows (and here you should insert the WIndows DVD >>>>> to avoid licensing issues). >>>>> Windows will be installed inside the sandbox. Actually I like the idea >>>>> to use sshfs-win >>>>> >>>>> Later,you can do : qemu-bhyve "tool". And again the tool will be >>>>> installed inside the sandbox. >>>>> >>>>> This is the perfect chance to port Looking Glass,with the client part >>>>> which runs on FreeBSD and the server part inside the jail where Windows is >>>>> installed :) >>>>> >>>>> So nice. >>>>> >>>>> On Sat, Aug 8, 2026 at 2:39 PM Asiye Sarıyıldız <asiyee994@gmail.com> >>>>> wrote: >>>>> >>>>>> I haven't yet considered how to resolve the licensing issue; if we >>>>>> were to implement something like WSL2, it shouldn't come pre-installed the >>>>>> user would need to download the ISO or a similar file themselves. >>>>>> >>>>>> 8 Ağu 2026 Cmt 13:35 tarihinde Asiye Sarıyıldız <asiyee994@gmail.com> >>>>>> şunu yazdı: >>>>>> >>>>>>> Thanks for the feedback Actually what I had in mind is closer to how >>>>>>> WSL2 works on Windows: it runs a real Linux kernel inside a lightweight >>>>>>> Hyper-V VM, but the user never manages the VM directly file sharing, >>>>>>> networking, and even GUI apps (via WSLg) are fully integrated, so it feels >>>>>>> native. >>>>>>> I'd love something like that for FreeBSD + Windows apps: bhyve >>>>>>> running a minimal Windows VM in the background, but the user just does >>>>>>> qemu-bhyve install adobe and interacts with the app almost like a native >>>>>>> FreeBSD program — no manual VM management, no VNC. Your container/jail idea >>>>>>> for file access sounds like a great way to get part of that seamlessness >>>>>>> without needing full window integration. >>>>>>> Regular Wine can't run Adobe or Teams reliably because of missing >>>>>>> Win32 API coverage, which is exactly why I think a real Windows kernel >>>>>>> (even a minimal one) is needed rather than translation >>>>>>> >>>>>>> 8 Ağu 2026 Cmt 13:18 tarihinde Mario Marietto < >>>>>>> marietto2008@gmail.com> şunu yazdı: >>>>>>> >>>>>>>> >Yes, I know about Wine, but Wine tries to replicate Windows APIs >>>>>>>> which often causes compatibility >bugs or performance overhead. My idea >>>>>>>> with bhyve was closer to a lightweight virtualized Windows >kernel >>>>>>>> operating in the background, where the GUI windows are seamlessly >>>>>>>> integrated into the >FreeBSD desktop environment (like seamless mode in >>>>>>>> VirtualBox or WSLg in Linux). I thought bhyve >could achieve better raw >>>>>>>> hardware compatibility for specific professional Windows apps. Example >>>>>>>> >Adobe >>>>>>>> >>>>>>>> Your idea is intriguing me,but probably not in the same way you are >>>>>>>> thinking about it. In my vision I would keep the way wine works almost >>>>>>>> intact,but I would use plane bhyve or qemu accelerated with bhyve instead >>>>>>>> of wine,so that we can have something like this : >>>>>>>> >>>>>>>> qemu-bhyve install or run "application". >>>>>>>> >>>>>>>> The tool (for example Adobe) will be installed inside a sandbox >>>>>>>> after having issued "install" or it can be run in the same way. And you can >>>>>>>> have direct access to the files installed without accessing inside the vm >>>>>>>> with vnc viewer,but easier,we can install a container (podman ? a jail ? ). >>>>>>>> It sounds nice to me. >>>>>>>> >>>>>>>> ERRATA CORRIGE : we can install the desired tool directly inside a >>>>>>>> container (podman ? a jail ? sshfs-win ? >>>>>>>> >>>>>>>> >>>>>>>> https://forums.freebsd.org/threads/windows-drive-mapping-to-freebsd-directory-fails-with-sshfs-win.96474/ >>>>>>>> >>>>>>>> What do you think ? >>>>>>>> >>>>>>>> On Sat, Aug 8, 2026 at 12:32 PM Asiye Sarıyıldız < >>>>>>>> asiyee994@gmail.com> wrote: >>>>>>>> >>>>>>>>> Yes, I know about Wine, but Wine tries to replicate Windows APIs >>>>>>>>> which often causes compatibility bugs or performance overhead. My idea with >>>>>>>>> bhyve was closer to a lightweight virtualized Windows kernel operating in >>>>>>>>> the background, where the GUI windows are seamlessly integrated into the >>>>>>>>> FreeBSD desktop environment (like seamless mode in VirtualBox or WSLg in >>>>>>>>> Linux). I thought bhyve could achieve better raw hardware compatibility for >>>>>>>>> specific professional Windows apps. Example Adobe >>>>>>>>> >>>>>>>>> 8 Ağu 2026 Cmt 11:30 tarihinde Mario Marietto < >>>>>>>>> marietto2008@gmail.com> şunu yazdı: >>>>>>>>> >>>>>>>>>> ---> have you tried wine11? >>>>>>>>>> >>>>>>>>>> I think he wants to "duplicate" the look and feel and the >>>>>>>>>> exterior working of wine,but using bhyve at the place of wine ? Did I >>>>>>>>>> understand correctly ? >>>>>>>>>> >>>>>>>>>> On Sat, Aug 8, 2026 at 12:17 PM Tomek CEDRO <tomek@cedro.info> >>>>>>>>>> wrote: >>>>>>>>>> >>>>>>>>>>> have you tried wine11? >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> CeDeROM, SQ7MHZ, http://www.tomek.cedro.info >>>>>>>>>>> >>>>>>>>>>> On Sat, Aug 8, 2026, 00:22 Asiye Sarıyıldız <asiyee994@gmail.com> >>>>>>>>>>> wrote: >>>>>>>>>>> >>>>>>>>>>>> I've been thinking about a potential enhancement to bhyve that >>>>>>>>>>>> could make Windows application compatibility much smoother for FreeBSD >>>>>>>>>>>> desktop users. >>>>>>>>>>>> Currently, running Windows applications (e.g., Adobe products) >>>>>>>>>>>> requires manually setting up a full Windows VM in bhyve — creating disk >>>>>>>>>>>> images, configuring UEFI/BIOS, installing drivers, and manually managing >>>>>>>>>>>> the guest OS. This works, but it's a heavy, manual process compared to >>>>>>>>>>>> solutions like Wine/Proton on Linux or Parallels' seamless mode on macOS. >>>>>>>>>>>> What if bhyve offered a more automated, "appliance-style" >>>>>>>>>>>> workflow: the user supplies their own Windows installation ISO (and their >>>>>>>>>>>> own license), and bhyve handles VM provisioning, NT kernel boot >>>>>>>>>>>> configuration, and required virtio/driver setup automatically — with >>>>>>>>>>>> minimal manual steps. Since the user brings their own ISO and license, this >>>>>>>>>>>> avoids any licensing or redistribution concerns on the project's side. >>>>>>>>>>>> Ideally, this could eventually extend toward seamless window integration >>>>>>>>>>>> (running individual Windows apps like Adobe software without exposing the >>>>>>>>>>>> full Windows desktop), similar to what VMware Fusion or Parallels offer on >>>>>>>>>>>> macOS. >>>>>>>>>>>> I understand this raises real challenges — driver signing, GPU >>>>>>>>>>>> passthrough for apps like Adobe's Creative Suite, and the significant >>>>>>>>>>>> engineering effort seamless integration would require compared to a >>>>>>>>>>>> standard full-VM setup. >>>>>>>>>>>> Is this something the core team has considered, or is it >>>>>>>>>>>> already covered by existing tools (e.g., vm-bhyve, or work in progress)? >>>>>>>>>>>> I'd appreciate your perspective on whether this is a realistic direction >>>>>>>>>>>> for bhyve, or whether the complexity outweighs the benefit compared to just >>>>>>>>>>>> using a standard full VM setup. >>>>>>>>>>>> Thank you for your time and for your work on FreeBSD. >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> Mario. >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Mario. >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Mario. >>>>>>>> >>>>>>> >>>>> >>>>> -- >>>>> Mario. >>>>> >>>> >>> >>> -- >>> Mario. >>> >> > > -- > Mario. >