I get this question less often recently than I used to but it still shows up.
- Can Application Streaming be ported to Apple Mac or Linux?
The question is usually based on the idea of wanting to run XenApp published streamed applications in an isolation system on the foreign operating system. That is, to bring streamed Windows applications to the other system.
You can insert your favorite operating system on the above list, but the answer remains the same, no.
APPLICATION ISOLATION is about changing things and lying to applications so that they think they are doing one thing when they are really doing another. Fundamentally though, the executed application is still a "native" application for the operating system. The executed Windows based application is still a Windows based application and it will not run unless something exists below to satisfy the Windows APIs. The application won't even load unless the Windows loader brings it into memory.
Can you use App Streaming on Mac? SURE!
Insert your favorite MACHINE virtualization system such as Parallels, install Windows into the virtual machine, install the streaming client (aka: offline plug-in) and then run all the applications streamed that you want. This works fine!
Is it "streaming" to the Mac? No!
I see people around Citrix doing this all the time. They run streamed MS Outlook 2007 and happily check their email and do many things of their job, all day long with lots of apps. Many of them spend most of their day inside the Windows environment of the Mac machine.
In this usage, I call the MAC the ...
- THE WORLD'S LARGEST WINDOWS LOADER!
For the non programmers in the room, the "loader" is the component of the operating system that is responsible for bringing the operating system to life. The quick version goes something like this:
The machine powers up and and a whole bunch of things happen, but eventually the hardware kicks off the machine loader from ROM in "real mode" at address CS:IP FFFF:0000, this kicks starts the BIOS. The BIOS h has the job of finding a 512 byte sector of disk, loading it into memory and "jumping" to it. From the BIOS perspective, at this point the machine is "booted". The 512 byte initial loader, brings in a bigger loader, which brings in a bit more, which brings in a primitive part of the operating system, which brings in some "boot" device drivers such as "disk" boot load device drivers, which brings in more of the operating system, which loads more device drivers, like NTFS, enables paging and does a bunch more stuff until you eventually get a machine, running and ready to do useful work. You can make a career out of any of these activities.
In my mac example without machine isolation, the Mac must boot first and once it's done, it loads the virtual machine thingie which "powers on" the x86 box, which does a bunch of things, which then runs from "ROM", which is really "RAM" and jumpts to a "real mode" address FFFF:0000 and then boots the Windows machine.
This continues on until the Windows box is ready to do work => ergo, the Mac is the worlds largest Windows loader. While boot sequences are fun, I am way off topic.
Can you run App Streaming based apps on a non-Windows platform?
Answer the question with a question:
- Can you run WINDOWS based applications on a non-Windows platform? Answer no.
Sometimes this answer receives a follow up: Have you considered adding this capability?
Now, a white-board is needed. We use a white-board because nobody has chalk-boards anymore. Frankly, I prefer the old style because they could be readily and reliably erased, but I'm digressing away from the topic.
How much slower does a streamed app run compared to a locally installed app?
Answer: They are the same! CPU wise, it's the same. A process is a process is a process and program code is program code. The isolated app runs NATIVE on the machine. It is loaded by Windows and the app uses Windows to do things that apps do with Windows.
Eventually, the program may call a Windows API, such as RegOpenKeyEx or CreateFile. When this happens, the program execution takes a brief side journey through the isolation system where the parameters to the API are "adjusted" to make the application run inside of an "isolated environment". This is how the layers of glass are implemented.
The application is still an application and it is still dependent on the Windows machine for running the application. Things do get a bit more complicated because even DOS apps running on the Windows machine can be isolated (link), but fundamentally, Application Isolation "adjusts" the execution of applications that are running native on the Windows machine.
Finally, the question can be answered: You can't run "isolated" Windows apps on a non-Windows machine, so there is no point is worrying about running App Streaming under MAC or Linux or others.
What about App Streaming to Windows XP Embedded?
Sure, that will work and this has been done.
What about App Streaming to Linux under Wine?
Sounds like an interesting activity. I'm quite sure it won't work, but there could be other neat things.
Enjoy!
Joe Nord
Citrix Product Architect - Application Streaming and User Profile Manager
Comments (10)
Nov 19
Brian Cross says:
It's nice to see someone actively commenting on this topic, which seems to be a ...It's nice to see someone actively commenting on this topic, which seems to be a common question people have asked; although the obnoxiousness of the comment I could do without, as this is a serious question, and it came off a bit like mocking your customers.
I've asked this question before, because frankly the way Citrix had been delving out applications (is it App Virtualization what it's called now?) doesn't work over high-latency WAN connections.
I know, you're going to tell me about using Branch Repeater, and using WANScaler tech, and all these new improvements Citrix has put into things. That's great, but many of us had already made the Citrix investment, only to be told that you need this new hardware to get any level of performance in a high-latency, low bandwidth environment (like an airport lounge, hotel, or convention center sharing DSL and other connections).
That's why streaming is a great feature. If the client were doing the brunt of the work, and streaming back changes to the server, then it operates like a native application without any lag.
Many people are moving to using Apple. While Parallels and Fusion provide a way of running Windows applications, it still requires the user to run a separate OS on top of OS X. This is not the most effective way of supporting Macs on a corporate level. I know, I'm doing it, and while it works, it's not an elegant solution, and in combination with using XenApp, just frustrates them more.
I was looking for this so we can further reduce the dependence on Windows on our Macs. I appreciate you explaining how this isn't possible, but that doesn't negate the fact that people want something like this.
Sorry, but it felt like you think we're all just big pains in the *&@ for asking for this.
Nov 19
Joseph Nord says:
Hi Brian. No negative aspects were intended. I send my apologies tha...Hi Brian. No negative aspects were intended. I send my apologies that it came across that way.
-Joe
Nov 20
Brian Cross says:
Joe, I appreciate that. I'm sorry if I was too hard on you. Unfortunately, the...Joe,
I appreciate that. I'm sorry if I was too hard on you.
Unfortunately, the expectations my users have always had about XenApp is that they want it to run as fast as their local copies of Office or their local desktop. It just doesn't. I've upgraded my bandwidth, and tweaked until I can't tweak anymore, and I'll just never meet this goal.
Their problem is they connect into these junk ISP's or Wi-Fi hotspots, and browse the web halfway decent, then use Citrix and don't understand why Citrix is slower than their web browsing.
It is maddening. Like I said, Fusion and/or Parallels work, but they're glitchy at times, and sometimes just not very elegant.
Nov 19
Shawn Bass says:
@Joe - I've answered this same question numerous times and frankly I'm shocked i...@Joe - I've answered this same question numerous times and frankly I'm shocked it's a question that gets asked at all. I suspect the reason why people like Joe and I might come off as "mocking" people that ask is question is because we understand how applications work at a very deep level and we're both programmers. We've spent years looking for ways of doing these types of things and we've tracked the progress of things like WINE, Codeweavers/Crossover, and Mono. The fact of the matter is that while these technologies (which are essential "emulating" the closed source Windows APIs have some limited success you're never going to reach a level of providing any type of commercial grade support for Windows apps running natively on Mac/Linux. Citrix could and would burn millions if not billions in an effort to provide this (all the while essentially providing something that is a HUGE hack). So while it may appear that Joe, I or anyone else are "mocking" people, we're not. We just realize what an insanely difficult, expensive, etc. effort such a thing would be. When someone commented on this a long time ago on a blog and said "Wouldn't it be great if Citrix had a way to run Windows apps on Linux, Mac, etc" my response was "They do, the product is called XenApp". Remote display technology and/or Virtual Machine technology is unfortunately the only real way you're ever going to see this happen. Sorry, but that's just how it is.
As far as what to do about your high latency connections, my question would be what types of apps are you using? Unless they are apps that run completely offline they might have as much if not worse of an issue with back end communication over a highly latent connect than running it over ICA would. It all depends on the app of course and things like MS Office, etc would certainly be apps that could execute locally just fine. If you're really itching for locally streamed apps, then either use VMware Fusion / Parallels or what for Citrix's XenClient and run a type-1 Client Hypervisor with Citrix Streaming to deliver the apps to your corporate managed Windows VM. That's pretty much all you're ever going to get unless you want to rewrite your apps to be web based.
Sorry for the harsh dose of reality.
Shawn
Nov 20
Brian Cross says:
I appreciate your comments Shawn. I am actually excited about XenClient, but i...I appreciate your comments Shawn.
I am actually excited about XenClient, but it's still alpha, and no time frame on when someone like me could try it and find out if it fills that gap.
It's just hard to justify a cost for additional scaling equipment when my company uses a web browser as the bar by which speed is determined. "My web is fast, why isn't Citrix as fast as my web?" or "Why do we need all this additional equipment; our Internet is fast enough, and we've already spent money on Citrix as it is?"
These are some of the questions I received when suggesting we use something like Branch Repeater or WANScaler to streamline our connections. First I had to prove that Citrix fit; then I had to prove that Citrix needed updating, and now another roadblock to prove I can make it go faster.
It just won't work in the situations my people are in. They'll always go for Outlook Anywhere or some offline client before using XenApp.
Nov 19
Shawn Bass says:
BTW, nice work on not mentioning VMware Fusion Joe. Citrix is really drilling i...BTW, nice work on not mentioning VMware Fusion Joe. Citrix is really drilling it into you guys eh?
BTW, one of my clients was in a GTA session with Citrix support a few days ago. The support tech was running VMware Workstation...LOL Guess you guys will have to rollout a type-2 product soon or replace peoples PC's to get some XenClient goodness out there sooner or later eh?
Shawn
Nov 19
Joseph Nord says:
Re: Fusion. Yeah - I knew they had one, just couldn't come up with the nam...Re: Fusion. Yeah - I knew they had one, just couldn't come up with the name so I left it off.
As for support and VMWare Workstation, yep - the use of VMWare is not completely banished. You'll find a few people in dev hiding a copy in their office too. I taught a class in the support group after the XenSource acquisition and we used the VMWare Lab Manager (right name?) for running the class. I would say that its mostly a legacy item as its just plain easy to get and use the Xen stuff - and surely they have replaced that lab setup by now...
Nov 26
Anonymous says:
Streaming Windows Apps to a Mac sounds like a funny idea. It's a real newbie Ide...Streaming Windows Apps to a Mac sounds like a funny idea. It's a real newbie Idea. How could this work? These Apps don't run on a Mac, so how could we stream there? *loool*
However, I could think, it could be possible to stream Mac Apps to a Mac, if someone writes a streaming Client for Macs. These Apps would, however, not stream to a PC (as Mac Apps don't run on Windows).
Don't understand People: Buying a Mac and longing for Windows *zzzz*
Dec 08
Lukas Pravda says:
Quick thoughts... With Win7's XP mode, this has become just a matter of semanti...Quick thoughts...
With Win7's XP mode, this has become just a matter of semantics...
Does user care, that his PC/laptop's hosting VM? He might, but probably not...
What matters? Is it users' perception? ...
Dec 08
Joseph Nord says:
Yeah - I agree with you. Some people have even discussed having every app ...Yeah - I agree with you. Some people have even discussed having every app on the machine get its own virtual machine. The ultimate app isolation, one OS and one APP per virtual machine. Absolutely dreadful from a system resource perspective, but its hard to argue with the logic that the virtual machines will only get faster.
It starts to get complicated when consider drag/drop and clipboards and similar, but yeah - still agree.
Add Comment