[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [win-pv-devel] Porting libvchan to use the Windows PV Drivers

Hash: SHA1


I'm unable to properly reply to the thread since I just subscribed to
this list but I figured it's worth chiming in (last message is here:

First, some background about me. I'm currently the main and pretty
much the only developer/maintainer of guest tools for Windows for
Qubes OS (https://wiki.qubes-os.org/). Some of you may have heard of
Qubes -- in short, it's an attempt at creating a secure OS based on
lightweight AppVMs, currently using Linux/Xen as base. It supports
Windows HVMs and our guest tools provide integration with dom0/other
domUs (services like data transfer, remote execution, seamless GUI
experience etc).

We're in the process of finalizing the next major release (r3) of
Qubes, it will use Xen 4.4 instead of r2's Xen 4.1. As for our Windows
tools, they are (currently) using PV drivers based on James Harper's cod

Our inter-VM communication protocol uses vchan (in fact, vchan
originates from our patch accepted into Xen's source a few years ago).
In Qubes r2 we have a Windows libvchan implementation, but as stated
above, it uses old PV drivers interfaces. You can find it here:

That implementation has one big flaw: client side vchan functions are
not implemented. It didn't matter for Qubes r2, where all vchan
communication is passing through dom0 anyway. In Qubes r3 however, we
need that working because of redesigned inter-VM communication
protocol that allows direct VM-VM communication after dom0 arbitration.

Unfortunately Harper's drivers don't seem to implement the needed
kernel interfaces for that as well. I didn't need to look into PV
drivers sources before, but it seems I will need to do that now :) I
found the new PV drivers and this mailing list, found the thread about
vchan implementation... and that's pretty much it for now.

As I said, I don't have much experience in Xen APIs (didn't need to
tinker with them directly before). I do, however, have extensive
WinAPI knowledge and moderate amount of Windows driver development
experience (part of our guest tools is a custom display driver that
allows no-copy video memory sharing with dom0). I managed to build the
new drivers and will test them on our dev Qubes build soon.

So, to summarize, I'm very interested in developing a Windows vchan
implementation on top of the new PV drivers. I'll be reading through
the driver sources for a bit still to familiarize myself with the
environment. If anyone managed to get something working, or just has
ideas, let me know.


- -- 
RafaÅ WojdyÅa
Qubes Tools for Windows developer


win-pv-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.