When I get the question of running 64-bit applications under Application Streaming, I always respond with “which 64-bit application do you want to run under isolation”?

The answer is usually “silence”.

Until that answer changes, there is no reason to build the support.

Now let me go into some detail…

Application Streaming isolates 32-bit applications and I’ll say proudly that this has worked on both 32 and 64 bit operating systems, since the first release of the technology in XenApp 4.5.

Lately my email is ringing off the hook with inquiries about isolating 64-bit applications.  This isn’t exactly new – but the quantity is way up.  Why?

To be clear – I’m talking about isolating 64-bit applications, the kind that will have no chance whatsoever of running on a 32-bit machine.  This means that the person who wrote it had a really good reason for wanting 2**64 bytes of virtual address space.

Application Steaming isolates only 32-bit apps – not exactly true.

We describe the technology as capable of running 32-bit applications under isolation and operating on both 32-bit and 64-bit Windows Operating Systems.

This is great, but some time back, I wrote a piece on how App Streaming will successfully isolate 16-bit DOS apps.  We never intended for that to work, but it does and it was just a fallout of design that it happens to work.

Does anybody care about this extra support?  Not really, DOS apps aren’t exactly a compelling application class in 2011.

Isolation of 64-bit windows applications

I’ve gone looking for 64-bit applications.  Here’s what I came up with.

  • Internet Explorer on Windows 7 comes in both 32 and 64 bit flavors.  I was once confused about this, but have since figured out that I should ignore the 64-bit one.
  • PowerShell comes in both 32-bit and 64 bit flavors.  Here I was less confused since I had already figured out the answer for Internet Explorer.

What applications NEED to be 64-bit?

My answer to this question is that kernel mode device drivers on Windows 64 bit need to be 64-bit.   That’s great, but isolating kernel mode components is rather pointless.  Isolate the whole machine instead.

There’s a fair argument that NT Services should be 64-bit as well, but they don’t need to be; afterall they are just applications that happen to run with privilege.   So long as the service is 32-bit (most are), the Citrix Application Streaming will happily isolate it on 32 or 64-bit machines.

What real applications need 64-bit

A 32-bit application can address 4GB of Virtual Address space.  That’s alot.  There are some classes of applications that need more than 4GB.  Here’s my list.

  1. Video creation – DVD Movie authoring
  2. Architecture applications such as AutoCAD

That’s it.  I’m out of candidates.  I considered adding sound editing applications to the list, but even at 48000, 16-bit stereo, you can record 6 hours without blowing up 32-bits and this assumes you want the whole thing “in memory” at the same time.

If you could, would you want to

The movie application likely also includes some device drivers to manipulate cameras and other instruments – making it a non-candidate for isolation.   The CAD apps are likely the whole mission of the computer, so if you run it under isolation, who are you isolating it from?

COULD we isolate 64-bit applications

Sure.  Citrix Application Streaming isolates file system stuff “in kernel” and registry and COM at user mode as part of the isolated process.  The “in kernel” stuff is immune from the bitness of the application because it is in kernel and all the application bitness has been made unimportant by the time the file operations reach the filter driver.

This is why we were successful on DOS apps without trying – it just worked because “apps is apps” and DOS apps happen to have no dependence on the Windows registry.

To implement isolation support for 64-bit applications, all we would have to do is make our registry and COM filtering hook into the execution of 64-bit isolated applications.  Already having this working on 32-bit, it would be a matter of programming to port this to 64-bit.  What is missing?  A NEED to do it.

I’m architect of this gig and despite years of looking, I haven’t found a good reason to isolate 64-bit apps.

Do you know of one that I’ve missed?

Joe Nord

Citrix Systems – Product Architect, Application Streaming