Windows, ARM, emulation, misconceptions and misremembered history

Last Updated on January 23, 2022 by Dave Farquhar

I keep reading stuff about Windows and ARM and, well, I think people just aren’t remembering history.

I’m not saying that Windows 8 on ARM will save the world, or even change it substantially. It probably won’t, since Microsoft tends not to get things right the first time. But will I automatically write off the project? No. It could prove useful for something other than what it was originally intended. That happens a lot.

But I’m more interested in clearing up the misinformation than in trying to predict the future.

Microsoft has ARM experience. Windows CE, Windows Mobile, and whatever else you want to call the operating system that ran on Pocket PC PDAs ran on ARM. Because that was the CPU architecture those devices were designed for–precisely because there was nothing else that met the platform’s requirements at the time. Windows CE wasn’t exactly optimal, but the devices it ran on weren’t powerful enough to run something comparable to Windows 2000. Today’s ARM processors have more horsepower and more memory than 1997’s models did.

Emulation isn’t the black art some people seem to think it is. Ask any Mac user. Any time Apple changes architectures, the operating system has to emulate the previous architecture for a time so that people can run their old software. And Mac users ran Windows software through emulation for years and years during the PowerPC era. Yes, there’s some slowdown involved. But the degree of compatibility is reasonable. And an ARM processor running at a couple gigahertz–a reasonable expectation by the time Windows 8 actually appears–would be able to emulate x86 at a reasonable enough speed to be a stopgap. And that’s the primary goal of emulation anyway–to be a stopgap until native software appears.

It’s also entirely true that Windows NT appeared on other, non-x86 CPUs. Specifically, it was available for Alpha, MIPS, and PowerPC in addition to x86 through version 4. Microsoft was hedging its bets, in case x86 wasn’t the dominant platform of the future. As laughable as it seems now, every software developer I knew in the early and even mid 1990s regarded their brand-new PCs as stopgaps “until I buy a RISC machine.”

Then a couple of things happened. Intel’s volume allowed them to keep improving their manufacturing processes and making their chips faster and faster. Windows NT and Linux were reliable enough and ran reasonably well enough on Intel CPUs that people were willing to consider them as alternatives to pricey Unix systems running on RISC architectures. And although Windows NT ran on several architectures, if you wanted to run existing Windows software on NT, you had to stick to Alpha or Intel. If you wanted to run existing Windows software at a reasonable speed, you had to stick with Intel.

ARM existed while all of this was going on–it first appeared in the mid 1980s, but ARM always settled for niche markets, places where something smaller and cheaper than Intel was necessary. But the same technology that made everything else faster also made ARM faster, over time. And now ARM is starting to look like it’s capable of taking some market share from Intel, for the same reason Intel was able to take market share from other RISC architectures. It’s cheaper, and it’s good enough to be usable.

Dvorak asks why Microsoft can’t develop software for anything not based on an Intel 8080 or 8088 architecture. The answer is that they can and have. In the 1970s, computers were separated into two different classes: 8080 (or compatible) CPUs running CP/M, and 6502 computers running proprietary operating systems. Bill Gates famously disliked the 6502. Microsoft grudgingly ported its BASIC interpreter to the various 6502 computers because their makers paid them to do so. The 8080 and compatible CPUs were better suited to running more advanced computer languages, and Microsoft was at that time primarily a computer languages vendor, so they concentrated most of their efforts on CP/M versions of computer languages. And then IBM came along, and Microsoft got the DOS contract, and we all know how that played out.

But that wasn’t the end of the story either. The Macintosh and the Motorola 68000 CPU that powered it were no secret to Microsoft. In fact, some of the accessory programs that shipped with the Mac, such as the calculator, were written by Microsoft. Microsoft initially designed Excel on the Mac, then ported it to its fledgling Windows platform. History could be very different today if Lotus had managed to release a good spreadsheet product on the Mac in the 1985 timeframe. Microsoft also released a very good version of Word on the Mac. Microsoft used that experience when it developed Word and Excel for its own Windows environment.

As much as Apple and Microsoft became rivals, in the early days the two companies needed each other. Apple needed quality software for its new computer to survive, and Microsoft needed an environment it could grow in. In the mid 1980s, Microsoft’s productivity titles on the PC were also-rans, overshadowed by Lotus 1-2-3, Wordstar, and other programs. Microsoft apologists often point to the lack of non-Microsoft software on Windows as the reason for Microsoft’s success, but there was a similar lack of non-Microsoft competitors to Word and Excel on the Mac too, for about six years before anyone started paying any attention to Windows.

During the 1980s, when Bill Gates ran though the various scenarios that he thought could cause Microsoft to fail, one of the items in the equation was always the failure of the Macintosh.

I have also read that Atari considered using a 68000 port of Microsoft Windows on its 1985-era Atari ST computer. But Windows wasn’t ready yet, so Atari used Digital Research’s competing GEM graphical environment instead. And this was the only reason Microsoft didn’t do any development for the Atari ST. Once again, had things gone a bit differently and Microsoft had been releasing business software on the ST, things could have turned out quite a bit differently than they did.

Microsoft did develop a BASIC interpreter for Commodore’s Amiga, the other major 68000-based platform. They didn’t do any other development on the Amiga. I can only speculate about the reason, but I suspect it was because Commodore had negotiated a one-time license to use Microsoft BASIC on its 8-bit computers and Microsoft was bitter. By 1985 when the Amiga had appeared, Commodore had already sold nearly 10 million 8-bit machines, and Microsoft only made $25,000 on the deal. They had initially wanted $3 per machine. Had Microsoft gotten its $3 per machine, I suspect they would have been a lot more interested in the Amiga, since it could do anything the 1984 Mac could do, plus it had color and multitasking.

So it’s not like Microsoft has always had Intel tunnel vision.

There are a couple of reasons I don’t think Windows 8 running on ARM-based tablets will be a success. Microsoft has been trying to sell tablets running Windows for years. I first became aware of them in 2003. But Windows wasn’t really designed with tablets in mind, and they never got anywhere trying to sell them. Nobody was interested in tablets until Apple released one, which I suspect was due to two factors. One is that it came from Apple, and the other was because Apple figured out that people would use tablets differently from a regular computer.

The only difference between Windows 8 on ARM tablets in 2012 and Windows XP on x86 tablets in 2003 is the slightly updated interface and the underlying architecture. Consumers don’t care about the underlying architecture. The interface could make a difference if they make larger changes to the interface based on what they can learn from the tablet and smartphone market. But only if.

Due to their legacy on smartphones, I think Android and even Web OS (the successor to Palm) stand a better chance of becoming a dominant tablet OS than Windows 8. They’ve been slow coming to market and that hurts, but then again, Windows was exceptionally late too. The public will put up with late if it’s really cheap, and Windows initially was both.

But on the other hand, the OLPC (one Laptop Per Child) folks have been asking for an ARM port of Windows for a long time. I suspect Windows on ARM would do better in that space, if they keep the price down. Once Windows appears on ARM with a suitable compiler, it’s only a matter of time before the largest Windows free software projects end up on ARM, so there’ll be plenty of free software to run on it.

There are ARM-based netbooks running Windows CE available right now for around $100. If they price Windows 8 on ARM like they do Windows CE, why wouldn’t $100 netbooks running Windows 8 be successful? People sure liked their $300 netbooks running Windows XP for a while. That fad is past, because I think people would rather spend a little more to get a tablet. But a $100 netbook is an impulse buy. I’d gladly get one of those for my sons to learn about computers.

But if Microsoft gets greedy and prices Windows 8 on ARM like it does the x86 versions, or if they limit it to only running three tasks like they considered doing with Windows 7 Starter Edition, then yeah, I don’t think it has much of a future. If Microsoft wants to play in the ARM space, they’re going to have to get into the ARM mindset. And that mindset, for everyone other than Apple, is to price low and make it up in volume. Apple exists in a different universe, and Microsoft doesn’t have the same brand cachet that Apple does.

If you found this post informative or helpful, please share it!