A new report about Microsoft working on x86 emulation for the ARM-based versions of Windows 10 has Windows enthusiasts justifiably excited for the future. Assuming, of course, that Microsoft and ARM can actually pull this off.
This one will of course require a bit of explanation.
To date, most Windows PCs have run on what we still call the Intel x86 architecture, while modern mobile platforms like Android and iOS run on ARM-based architectures. The two systems are incompatible, and are oriented for different workloads. That is, x86 provides far more performance—and performance scalability–than does ARM. But ARM works better on the mobile computing platforms that are the norm today, offering great performance on lightweight mobile OSes with excellent power management capabilities.
It’s easy to emulate ARM on x86: In fact, developers do this all the time when creating mobile apps in Visual Studio, Xamarin Studio, Android Studio, and Apple’s Xcode. Emulating x86 on ARM, alas, is a sort of holy grail: An as-yet unobtainable goal that would help us bridge the legacy PC past with the mobile/ARM future.
There have been many efforts to emulate x86 on less-capable platforms. One many might not remember was the Transmeta Crusoe processor, which came to life in an early HP Tablet PC called the Compaq TC1000. That pretty but woeful device offered decent battery life for the day, but Windows and its desktop applications ran horribly slowly, and it quickly disappeared from the market. As did Transmeta.
Companies like Connectix and Parallels also offered x86 compatibility virtually to PowerPC-based Mac computers years before Apple itself switched to x86. These solutions let enterprising users run Windows in a window on the Mac desktop so that they could access Windows applications that were not available on their own platform. Like the Crusoe processor, these solutions were slow for the most part, though I suspect some will insist to this day that they ran well. It was certainly better than nothing.
In any event, we’re about to try again.
With the personal computing market having moved into the “mobile first, cloud first” era, the PC is being left behind: Each year, the combination of ARM-based devices—mostly smartphones and tablets—has vastly outsold x86-based PCs. And the gap is getting bigger.
The problem, of course, is that many people still need to access their Windows-based applications. So we’ve come up with a variety of ways to make this happen. The most obvious is virtual access to Windows environments and applications in the cloud, similar to what HP is doing with its Workspace solution for the Elite x3 Windows phone. That Windows 10 Mobile device can’t run Windows desktop (x86) natively, of course. But if the apps run in the cloud and are transmitted to the device—which is connected to a keyboard, mouse, and display—the user gets a reasonable desktop PC experience. Assuming they have a great internet connection and are connecting to a physically close datacenter.
If only ARM could run x86 apps. Which it can’t.
But what if ARM could emulate the x86 instruction set, and thus run x86 apps?
What if, indeed.
According to Mary Jo Foley’s sources, this work is now underway. It requires a few things, of course: ARM chips that are powerful enough to emulate x86 and provide a reasonable level of performance. And an ARM-based operating system that would bring this capability to users.
ARM chipset makers such as Qualcomm will need to figure out the first part of that equation. But Foley says that Microsoft is indeed working on the second. It’s due in the “Redstone 3” release of Windows 10, which is currently scheduled for late 2017. (We’re currently testing “Redstone 2,” which will be called the Creator’s Update and is due in the first half of 2017.)
This capability would allow ARM-based versions of Windows 10—currently Windows 10 Mobile, though there’s no reason that Windows 10 Home or Pro couldn’t make the ride too, in something similar to Windows RT—to emulate x86 code and thus run Windows desktop applications locally on the device. It would make the most sense in Continuum situations, where the phone would just run UWP apps, but desktop apps would come to life when the phone was docked and connected to a keyboard, mouse and display.
This is exciting. But it’s also challenging because our experience with past solutions of this kind was lackluster. And there is every reason to believe that x86 apps will run slowly on ARM. It will likely work better for simple apps than it will for big/complex apps like Photoshop, iTunes, or even Chrome.
But what if it worked? Can you imagine such a thing?
Done correctly, ARM support for x86 could be the final nail in the Windows desktop coffin, the thing that moves us past the legacy code that is now holding us back. I literally just wrote about this problem in The Biggest Problem with Windows Today? The Past. Interesting timing, no?
I don’t want to get too far ahead of ourselves here. It may never happen. It may not happen in time for Redstone 3. It may happen so far out in the future that it doesn’t matter anymore. But if you’ve been pining away for Surface phone or something a bit more nebulous—like Microsoft having an in-house mobile strategy that actually makes sense—this is hopeful news. No promises, yet. But still, hopeful.
So we’ll see what happens.
<blockquote><em><a href="#26546">In reply to </a><a href="../../../users/hrlngrv">hrlngrv</a><a href="#26546">:</a> UWP as supported on ARM is really just a new version of WinRT. The problem was never that you couldn’t do most desktop apps on WinRT but that that unless all your legacy apps ran on it, it had minimal value to PC users. Software companies wisely waited to see if there was a market for WinRT apps before investing a lot of money to develop for it. There wasn’t and so they didn’t. UWP is in a similar situation. With no viable WP market, a question of value of non-game apps on XBOX and uncertain HoloLens market, most companies are unwilling to invest.</em></blockquote>
<blockquote><em><a href="#26586">In reply to </a><a href="../../../users/hrlngrv">hrlngrv</a><a href="#26586">:</a></em></blockquote>
<p>I think we are in agreement. Realistically the greatest synergy would have been between WP and the desktop, although even there the ergonomics of the phone would be problematic. But since WP is barely alive, UWP isn’t all that useful anyway. </p>
<blockquote><em><a href="#26533">In reply to </a><a href="../../../users/asarathy">asarathy</a><a href="#26533">:</a></em></blockquote>
<p>That’s the way I see it too. They’d essentially have to implement the entire X86 machine code functionality in software. No doubt Intel has spent decades trying to make any X86 "cruft" as efficient as possible, it’s unlikely that MS can do better in 4 or 5 years.</p>
<p>it’s likely that a Win32 application running on ARM through emulation will consume more power than the same application running on an X86 processor for a given level of performance. Given the unsuitability of the ergonomics of cell phones and even small tablets’ to run conventional PC applications, the value of such a capability is difficult to imagine. But contrary to the article, such a capability if it were embraced, would rather bolster windows desktop applications rather than contribute to their demise. in any case, the Windows desktop isn’t holding anything back for MS. They chose to get into the touch-based mobile business late and then chose a doomed hybrid approach instead of creating a "best of breed" mobile OS.</p>
<blockquote><em><a href="#26639">In reply to </a><a href="../../../users/Meir Pletinsky">Meir Pletinsky</a><a href="#26639">:</a></em></blockquote>
<p>Most companies don’t provide a cell phone to employees except executives and sometimes people who do 24 hr support. You also left out the cost of the monitor and assumed that laptops require a dock. When you consider performance a better comparison would be a $700 phone + dock and monitor vs a $500 laptop.</p>