Thinstall + Wine = Windows apps without Windows? - Brian Madden - BrianMadden.com
Brian Madden Logo
Your independent source for desktop virtualization, consumerization, and enterprise mobility management.
Brian Madden's Blog

Past Articles

Thinstall + Wine = Windows apps without Windows?

Written on May 15 2008 23,876 views, 22 comments


by Brian Madden

At my training class in Brisbane last month, one of the students, Sharin Yeoh, demoed Microsoft Office 2007 running locally on a Linux desktop via Thinstall packages on Wine. My inner geek response was "This is the coolest thing I've ever seen!" As we watched Sharin poke around the applications, the whole class sort of had a simultaneous thought: "If we can run Windows apps in Linux, why do we need Windows?"

This sounds like a crazy idea, and probably not realistic. But it's fun to think about...

First things first, what is Thinstall and Wine? Most of you probably know that Thinstall is VMware's application virtualization product. It lets you package Windows applications into single-file EXEs that can then be copied or streamed to any Windows desktop. The apps run right out of the packages and don't conflict with apps that are natively installed on the Windows machine.

Wine is an open source implementation of the Microsoft Windows API that can be used to run Windows applications on non-Windows platforms, like Mac and Linux.

So to get Office 2007 on Linux, Sharin used Thinstall to build a standard Office 2007 Thinstall package, then she installed Wine on Linux and ran the "thinstalled" Office EXE on Wine. Simple! ;)

Ironically (and a bit off topic but very cool), Thinstall and Wine are not too different conceptually. They both emulate a Windows API calls in their wrappers, although Thinstall's purpose for doing so is to ensure that apps don't conflict with each other or native apps, and Wine's purpose is to translate all the native Windows API calls into calls the host OS can understand. Thinstall's CTO (and now VMware employee) Jonathan Clark has a great blog post about the similarities between Thinstall and Wine.

And since we're still wandering off topic, I should point out that I'm only focusing on how Thinstall runs on Wine because it's the only app virtualization product I'm familiar with that will even run on Wine. The other major app virtualization players: SoftGrid, Citrix streaming, and Altiris SVS all use a file system filter driver to intercept and redirect file system and registry calls the application makes. That's fine enough for isolating apps on Windows, but unfortunately it means those products won't work on Wine since Wine is a user mode-only implementation that doesn't work with drivers. How does Thinstall get around this? Remember, Thinstall has its own implementation of many Windows API calls, so it operates at the API interface to the app, before the app even has a chance to touch the file system. (By the way, my sense is that Xenocode might get around this too based on what I've read about their product, but I've never used it so I don't know for sure.)

Back on topic now.

How feasible is this "Windows apps without Windows"?

Not feasible at all, really.

First of all, Thinstall was not designed to run Windows apps in Wine. Besides being completely unsupported, there are plenty of cases where apps run fine via Thinstall on Windows, but they don't run on Wine.

And then there's the complexity of running Thinstall and Wine. This may lead you to wonder why you should even bother with Thinstall? Why not just use Wine? By adding Thinstall to the mix, you could deploy the same package to all desktops--Windows and Linux. And there are some other compatibility benefits you could get, like the fact that in Wine it's often the installation of the application installation that fails, not the actual app execution itself. Since Thinstall removes the "installation" portion from Wine, there could be a benefit there. And Thinstall virtualizes a bit more than Wine, so there could be cases where an app that won't run on Wine natively will run in Thinstall on Wine.

But really this is crazy. It's a lot of work. Who in the world would go to all this trouble.. Thinstall + Wine + Linux + who knows what? And what about the new Office Genuine Advantage?

Instead of going to all this trouble, why not just run VMware Workstation for Linux with a locked-down Windows VM with seamless windows just for those few specific Windows apps you need in Linux? (Kind of like that whole "employee-owned PC thing.")

What's the point?

But using a Windows VM on a Linux workstation is not what this article is about. This article is about a future without Windows, and Windows running in a locked-down VM is still Windows. This leads to the larger question: Who cares?

Who cares about a world without Windows? Well, probably Microsoft. And the Slashdot community. They'd love to see a Linux-based world.

You know who doesn't care? Enterprises. Enterprises couldn't care less about Linux on the desktop. Why is that? First of all, many enterprises are already starting to break the cycle of always upgrading to the latest version of Windows. Vista has less than 10% of the enterprise desktop market today, and more companies every day are just saying "Screw it! We're waiting for Windows 7."

But the reason that enterprises don't care about Linux is because all their apps are Windows apps. So a non-Windows desktop was never (or will never be?) an option for them. Even for companies whose devices run Linux (or Mac), they're still running some Windows apps somewhere, which means they're still paying for a Windows client license somewhere (either VECD or TS CAL).

And really at the end of the day, a Windows desktop costs what, $100 per year, per user? That's nothing. Probably cheaper than Thinstall actually. And much cheaper than trying to cobble together your own solution based on a billion different little GPL versions of everything you need.

So I guess Windows is here to stay, at least for the next five years. Next week let's talk about RIAs!

 
 




Our Books


Comments

Thomas McKinley wrote at first
on Thu, May 15 2008 9:40 AM Link To This Comment

At first the cool factor kinda gets you excited, then at the end its really not that interesting or game changing. Although maybe this does shine some light on the fact that one day the location(specific OS) of where application executes really will not matter as much as it does today. 

 

 

Glenda Canfield wrote Win32 Apps on Linux
on Thu, May 15 2008 12:22 PM Link To This Comment
What would really be cool is if Citrix had a truly VIRTUALIZED application isolation environment so that there would be no file or registry dependency’s needed on the client side to run a 32 bit app.  That would mean it would not matter what OS you had, MS, MAC, Linux, etc.  Because the end user experience would be universal no matter what OS they logged in from.  The end user could TRULY be mobile.  That would be ideal in my mind.
Glenda Canfield wrote Win32 Apps on Linux
on Thu, May 15 2008 12:24 PM Link To This Comment
Sorry forgot to mention I was referring to streamingJ
Brian Madden wrote Re: Win32 Apps on Linux
on Thu, May 15 2008 1:30 PM Link To This Comment

Sure, that would be cool, but I think impossible, no? I mean unless you're talking about running Windows in a VM? :)

Cause otherwise how would they do that? Running an app locally on non-Windows clients would require that Citrix had some way to service the Windows API calls the app is making. And the only way to do that would be to (a) use Wine, where they've been working on this for fifteen years, or (b) run Windows in a VM.

Glenda Canfield wrote Agree on API Calls
on Thu, May 15 2008 1:56 PM Link To This Comment

I agree with you on the API call dependencies, however, I don’t think it would be that difficult to add that feature into future ICA Clients.  Especially if companies were using something like the App Receiver that Templeton mentioned in a Keynote speech at Iforum 07.  It just delivers the modules the end users need anyway.  Why couldn’t they embed something like the Wine features into this and only deliver it to the clients that need to use it?  Like Mac and Linux, seems to me it would be difficult not impossible for Citrix to do this.  I think the real barrier here is Citrix’s reluctance to provide client parity across platforms that compete with Microsoft. 

Guest wrote this is kind of funny
on Thu, May 15 2008 3:12 PM Link To This Comment

I was taling to a coworker of mine the other day about how VMware Fusion worked since I am a Mac user at home and he's a PC user at home.  He was aware of Fusion, but got the impression that it was somoething that ran in the background like a windows service that service any windows api calls that were made from any windows applications.  I told him that this is sort of how it works when in Untiy mode, but explained to him that you as the user would have to still start up Fusion and the VM first and then go into Unity mode in order to achieve this.  Do something like this takes the extra steps out, and I would imagine that the preformance would be better then that of the same app ran on a system via VMware/Parallels.  Honestly I've never used Thinstall, but if it' is truely cheaper just to run a Windows VM on a beefer system, then the only way I could see this implementation making any headway, is the easy of management factor.  With a VM you still have to update the VM the Windows patches, and even then you have to start the VM inorder to start the application.  It may not sound like much of a workload, but when you look at the alternative (Thinstall + Wine) where there is no maintence required or little to no presteps to launch the application, its a no brainer.  I'm siging up for Project North Star today.

Mads Soerensen wrote InstallFree instead of Thinstalls (ThinApp)
on Thu, May 15 2008 4:09 PM Link To This Comment
HiI just got a demo of InstallFree today by the Yori (CEO of InstallFree) and let me tell you - this is a REALLY cool piece of software. It’s the best of Thinstalls and the best of SoftGrid.
Now in this case with linux + wine + Thinstalls - I think that you could get a lot better result by using InstallFree.
But I will wait to say more until I have received the software (Should be here in a couple of days) and then I will start playing :-)

 

Shawn Bass wrote Re: Win32 Apps on Linux
on Thu, May 15 2008 4:37 PM Link To This Comment
Citrix has this already.  It's called Presentation Server.  Getting something like this to work via local execution (i.e. streaming) is almost impossible.  Don't get me wrong, WINE is cool but it's about 10,000 miles away from being able to run any Windows app on any platform.  And if you think it's hard to get support for an app running on Citrix/TS, or being delivered by any type of streaming or isolation just wait until you suggest to the vendor that you want to run it cross platform via API emulation.  Yikes!
Shawn Bass wrote Re: this is kind of funny
on Thu, May 15 2008 4:39 PM Link To This Comment
VMware Fusion's Unity feature as well as Parallel's Coherence feature does not perform any type of cross platform API emulation crazyness.  All they do is some graphics tricks to make you believe it's running on the local platform.  In reality everything you run via Unity/Coherence is very much running within a Windows O/S.  It just looks like it's running on the host Mac, etc.  This is not much different than what Citrix does with Seamless windows.
SYeoh wrote Ummm...it was actually Microsoft Office 2003... :)
on Thu, May 15 2008 5:32 PM Link To This Comment

Hi Brian,

Yup, the Thinstall version of Microsoft Office 2003 worked fine across XP, Vista, Mac (running DarWine) and Linux (running Wine) :) You can actually see a demo of this from Thinstall's website : http://www.thinstall.com/sales/demo.php

Other applications that I managed to get working with Wine are WinRar and Adobe Reader 8.1!

Enjoy!

Glenda Canfield wrote Re: Win32 Apps on Linux
on Thu, May 15 2008 7:08 PM Link To This Comment

I see your point Shawn.  However, it would still be cool if it did exist.  I think there is a lot more Citrix could be doing to enable Citrix client pariity across platforms. The fact that you can't stream even Linux apps to a Linux Citrix Client is pretty sad.

Guest wrote thinstall and streaming
on Thu, May 15 2008 9:05 PM Link To This Comment

Brian,

Can you expand on something. Ever since VMWare purchased Thinstall, I have been asking myself why. They are trying to compete with Citrix for application delivery, but to the best of my knowledge, they only virtualize, they don't deliver. But, in your message above, you said they could stream the apps. I have never heard of that. I have only heard they can put on a network share and download and execute. DOn't get why that would be good for VDI. Now if it streams, that is different. Please talk a little more about this.

Kelly Craig wrote Re: thinstall and streaming
on Thu, May 15 2008 9:52 PM Link To This Comment

The packaged thinstall executable does sit in a share but when executed the entire package is not brought to the client. The thinstall client is loaded and a "sandbox" is created in the user's profile and only the initial files needed are copied to the client. Now I base this upon my consulting with the product before Vmware bought them. I don't believe they have changed this.

SYeoh wrote Re: thinstall and streaming
on Thu, May 15 2008 9:52 PM Link To This Comment

Thinstall does Block Based Streaming :)

http://www.thinstall.com/solutions/application_streaming.php

If anyone uses Microsoft Office Groove 2007, feel free to drop me an email (sharin.yeoh@mlogic.com.au) and I can invite you to my Thinstall Workspace where I've documented just over 50 Thinstalled applications :)

 

Ruben Spruijt wrote Re: InstallFree instead of Thinstalls (ThinApp)
on Fri, May 16 2008 11:14 AM Link To This Comment

In one of my presentations InstallFree will be presented. An interesting solution!

Guest wrote JustSomeGuy
on Fri, May 16 2008 1:15 PM Link To This Comment
My thought of the deal with app.virt. is that the It's not enough to do the virt. based/assuming an OS etc. The virt. should include (emulated or whatnot , both a bare bone OS stack and dependencies ought to be part of the pack) what makes the application.
I leave it at short as this.
jkenzig wrote Not really a big deal
on Sat, May 17 2008 8:55 PM Link To This Comment

I was running the Thinstall version of the Citrix Client on Thinapp 6 years ago and then was able to run any published app there. Wouldn't that make a whole lot more sense to stream down the Citrix client and run the apps on the server? Did to me. : )

Jim

Guest wrote TS CAL is gone!
on Sun, May 18 2008 11:06 AM Link To This Comment

The COOLEST thing about it that YOU DON'T HAVE TO BUY TS CAL if you run Windows Apps on Linux.

Should Microsoft be worried :-) ? 

Guest wrote Re: Win32 Apps on Linux
on Fri, May 23 2008 1:24 AM Link To This Comment

Wow, did you hear of Java?

 That was Sun's Attempt at creating a platform independant language.

Just my thought

Bradford Knowlton

 http://x86v.com/

Guest wrote updated link
on Sun, Oct 19 2008 10:25 PM Link To This Comment

an updated link to Jonathan Clark's blog post:

http://communities.vmware.com/blogs/thinapp/tags/wine

Pau Garcia i Quiles wrote re: Thinstall + Wine = Windows apps without Windows?
on Wed, Aug 29 2012 5:28 PM Link To This Comment

Actually, you don't want to run Thinstall + Wine, but to completely replace Thinstall with Wine. I blogged about the technical details of this a year ago:

http://www.elpauer.org/?p=1005

(Note: You must be logged in to post a comment.)

If you log in and nothing happens, delete your cookies from BrianMadden.com and try again. Sorry about that, but we had to make a one-time change to the cookie path when we migrated web servers.

Trackbacks

Brian Madden wrote IBM launches Ubuntu-based VDI solution
on Fri, Dec 5 2008 11:22 AM

Kevin Goodman (founder of RTO Software , previous BriForum presenter , and co-creator of the Logon Process