Microsoft’s x86-on-ARM is a sign of the times

I’m just writing this to be a total prick and rub your face in things and make you angry at me, because now even Microsoft is taking ARM seriously after announcing an x86-on-ARM emulator for Windows, and six years ago I told you (more or less) so. But anyone in computing could have made that prediction at the time, so don’t be too angry. It seems I was quite optimistic back then. Let’s see what happened to the rest of my predictions:

I said Atom would never catch up to ARM in terms of energy efficiency or power consumption vs. performance. This is probably one reason why Intel dropped their Atom for mobile processors now. So I got that one right.

I said the Linux kernel would play a big role in this and would expand to more and more devices. Since then things like the Raspberry Pi were introduced, Chromecast happened, the Amazon Fire TV stick thingy came out, cheap Chinese Android TV boxes are a normal thing, the Amazon Echo appeared and all of these run Linux. Devices that sold millions or even dozens or hundreds of millions of units. I’ll rate that as correct.

These are things probably anyone could’ve predicted. Were there people doubting ARM at the time? I don’t know. Maybe Microsoft was, but that was under old management and old management was not good at seeing the signs. Ballmer was good at propping up the old business model, but completely uninspired with regards to innovation.

It turns out some of my optimism was unwarranted, though. There still isn’t a fast general-purpose ARM computer for the desktop. There still isn’t a good and open set of firmware or boot managers. I know about U-Boot and the like, but the state of ARM hardware is in massive internal disagreement and even Linus is unhappy with things.

At this point I’m also not sure if an ARM-based desktop or an array of ARM servers is what ARM wants. For this to work I feel like more data centers would have to go to 12V DC power to squeeze out the full power saving potential. 12V in racks is still in its infancy and a pile of ARMs isn’t the right sort of processor for every workload, so there’s a way to go here.

But Microsoft tasted some blood now. They have a fair bit of weight in the data center market, even if more and more loads are shifting to GNU/Linux. The enterprise, on-premises market is still dangling by the cojones from Redmond’s tightened black fist of doom.

We have seen Windows 10 for IoT, which could be an experiment in getting “normal” workloads onto a plain Windows kernel on ARM. This could be exploited in future for a Windows Server version that runs natively on ARM. Microsoft have become experts at making good use of leftovers from older projects, and maybe they’ll do the same here; use the Win-for-IoT experience to be ready for the ARM server market before it even takes off. They would probably have fewer problems porting their first-party server stuff like MS SQL Server to ARM64 than e.g. Adobe would have to port something like Photoshop. Then again, PostgreSQL is already on ARM, so if you need a grown up database you might be able to use that.

This would all e a shrewd move, but under Nadella’s lead these kinds of moves become possible again, and Microsoft has become much more fun to watch.

So if in six years we see Windows Server on ARM and a significant number of 12V data centers running it, I’ll say “I told you so”. If not, I’ll just act as if this blog post never happened so that it seems like I’m reliable at forecasting things. I’m sure that’s exactly how professional tech augurs do it.

Update: Only days after I posted this, Microsoft revealed the reason they timed their announcement like they did: They’re working with Qualcomm to put a full recompile of Windows 10 on ARM (but only Qualcomm’s ARM). Performance won’t be great for emulated x86 apps, but that is probably not the target market. Also, this shows one of the weaknesses of ARM-based systems; many of them are SoCs. If you have a SoC, you won’t be able to mix and match hardware, and you are most likely bound to proprietary firmware blobs to even get any graphics output.

This can be dangerous because it turns the PC from an open environment for general-purpose computing to a walled garden completely controlled by very few SoC makers. The next six years will be very interesting.

Update 2: Oh, and of course Linux already runs just fine on ARM. No need to wait for Microsoft if you want an easy OS running on ARM. Try something like a Chromebook or perhaps Jide’s Remix OS running on Remix Mini or Remix IO. The Microsoft offering will be mostly interesting for fans or for enterprises, probably less so for the home user.