Working in the XenClient team in Cambridge is never dull. All around you are examples of the team’s never ending drive to Just Make Stuff Work. Over there on top of a meeting pod there’s an old LED scrolling messageboard that has been setup and programmed to display the time … in roman numerals. Next to that is a set of lamps that automatically change colour depending on the success or failure of the latest Xenclient build (code red!). Next to that is a lamp you can turn on and off over IRC because … well because. Somebody is working with a soldering iron. Someone else is prying a chip off a motherboard and inspecting it with a microscope in order to determine its maker and model number. And then occassionally there is someone wielding a hammer, but hey that’s QA and they’re *supposed* to break things.
Then of course there is XenClient itself, built on top of the uber-flexible Xen, and what these guys do with it. I admit that when I joined the XenClient team I was one of the ones who was sceptical that what we’re trying to achieve was even possible. But after laughing at stupidly ambitious plans that came to fruition once too often, I’m begining to believe. At the heart of it, what we’re doing here is trying to make hardware and software do stuff that it simply is not designed to do. And there’s sometimes no comprehending how far this still small team, here in Cambridge and scattered around the world, has managed to come in the past few years.
All of this makes me want to share some of the things that I see in action on a day-to-day basis. Some of this is work in progress towards a roadmapped XenClient feature, some of it is developer led R&D, and some of it is just the result of a developer saying ‘Hey, we could make Xenclient do this cool thing’.
Today’s example? Well I’ve been working with XenClient XT for a while now, and find it really useful in the following setup. I’ve got one desktop, which has two GPUs, attached to two monitors. I then run an XP VM on the left monitor (which uses one GPU) and a Windows 7 VM on the right monitor, which uses the full power of the other one. OK, and I also can switch the VM on the left monitor to reveal a Vista VM which I use for testing. But the cool thing is that I can simply move my mouse to the right edge of the left monitor and my mouse and keyboard follow me to seamlessly work in the VM on the right. All of these VMs could have access to different networks, but that’s another story.
Anyhow, I casually mentioned that it’d be great to have a Ubuntu VM on a third screen, with the same ability to simply move my mouse to it and start using it. Oh, and although people around me don’t seem too keen on Unity I’d like to try it, so it’d be great if the Ubuntu VM could use a GPU from a second graphics card or something. Fast forward a week and (sssh) I just got called over to witness exactly that. 3 VMs, including an Ubuntu VM, each with a dedicated GPU, each running on its own monitor, seamless switching between them using the mouse, and all running on a single desktop machine, but securely isolated from eachother. And heck, maybe I want my main work VM to have a display stretched over two monitors, or I want a few testing machines dedicated to one of the monitors … it’s all possible, and it is a reality now. Personally I think that is some type of awesome, and its stuff like that that makes me love working here. Mostly because I know how difficult it is to make this wizardry work, the hoops we’ve had to jump through and the hours we’ve had to put in to get this far.
So when is this functionality going to be available? When we’ve tested the hell out of it, and we’re happy that its stable. Or maybe we’ll have to put it on ice while we work on something else for a bit. ‘Cause that the really fun thing, it’s not about where we can take XenClient, its about where we’re taking XenClient *next*. In the ideal world everyone’s favourite feature (or at least mine!) would be top of the priority list, but if there’s one thing I’ve learnt, sometimes you’ve got to wait before you get the pony you asked for. And sometimes you have to make sure that you’ve built a strong stable first and …. before I kill that metaphor completely, I best get back to work. 🙂