Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I recently read this question on how Windows 8 will support ARM.

Now, my question. How? ARM isn't anything like the PC/x86.

List of things that vary across different devices:

  1. MMU. Some lack them, some are more limited than others. They all vary across each ARM processor. Microsoft would have to explicitly write kernel support for each ARM processor they intend to support
  2. Multi-Processing. There is no standardization that I know of for multi processing on ARM processors that are capable.
  3. Memory Maps. These vary extremely widely across each device and CPU. There is no standard for "detecting" the memory map either
  4. There is no "standard" bus for devices other than USB. PCI isn't common, and I've never seen any real standardization for buses. Some devices use proprietary buses or don't have any "real" ones at all.
  5. Opcode support. Many of the ARM CPUs out there have conflicting opcode sets. It's very difficult if not impossible to go to a "generic" set of opcodes. Some processors include an FPU and some don't. There is no way to detect what opcodes will work and what won't and how they'll behave. There is no equivalent for CPUID

The only commonly standardized thing is the interrupt controller.

How does Microsoft expect to pull this off? A different version of Windows for each device they support? A very limited list of supported devices? Forcing manufacturers to follow some standard they create?

share|improve this question

closed as not constructive by Linker3000, music2myear, BloodPhilia, Ƭᴇcʜιᴇ007, Shinrai Aug 26 '11 at 22:39

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

I expect some of the Microsoft code developers might have the architectural expertise to tackle this, but to answer this question we'd need some insight from them - I don't think the question is a good fit for SU. –  Linker3000 Aug 26 '11 at 22:17
The same way they already did for the different builds of NT for x86, x86-64 and IA-64, and previously for Alpha, PowerPC and MIPS -- C and C++. :) –  Ƭᴇcʜιᴇ007 Aug 26 '11 at 22:38
This is a terrible question. Here's how they're going to do it - they'll rewrite everything they have to until it works. Nobody ever said it was TRIVIAL to port it, but I think MICROSOFT has the resources to release Windows for your toaster if they so choose. –  Shinrai Aug 26 '11 at 22:39
The hardware architecture does not matter. As long as you can write a low-level bootloader in assembly, you can compile the higher-level code (usually written in C or C++) on any architecture that has a C/C++ compiler, and it will run. Obviously there are going to be some specific changes related to conditional compilation (only when Windows needs to use inline assembly instructions in the code), but those changes are far and few in the grand scheme of the operating system. –  Breakthrough Aug 26 '11 at 22:41
...and the same way other operating systems support x86, ARM, PPC, VAX, toasters, SPARC... –  grawity Aug 26 '11 at 23:13

2 Answers 2

There will be different builds of Windows 8 - the same way that there are different builds of Android for different handsets with varying ARM CPU's. While they have the same feature sets and behave the same way from device to device - the kernel, memory mapping, SMP is handled appropriately for the CPU implementation.

You're not going to pick up a copy of Windows 8 off the shelf at your local electronics store to install it on your custom built ARM PC; instead, you're going to have it pre-installed from the factory. With that said, I'm sure many of the feats you described in the ARM architecture will standardize over time as we are already seeing this happening since the explosion of Android devices.

Edit / Addition: Microsoft will be selective on the ARM implementations / architectures they support in Windows 8 as well:

"Windows is growing more flexible in other ways. Microsoft said back in January that the next version of Windows would support ARM-based chips from Nvidia, Texas Instruments and Qualcomm, in addition to the traditional Windows processors from Intel and AMD. Though Sinofsky and Green used Intel-based machines for Wednesday’s demo at D, Microsoft plans to demonstrate some of the ARM-based designs later today at the Computex trade show in Taiwan."


share|improve this answer
Thank you @Nano8Blazex for helping with my obsessive use of ellipses... I used to be a IP relay operator and they were used to indicate pauses or slight separations of thought. –  Dustin G. Aug 27 '11 at 2:18

Not an impossible task, given that there's the Linux on ARM model to copy from. Once you construct a hardware abstraction layer, all of those HW differences (except the opcode issue, which relates more to compliers and binary distribution) essentially are compartmentalized and become manageable.

One possibility is there will be vendor and model specific versions of Win8, much like how firmware is tailored for embedded devices (ever install DD-WRT on a wireless router?). Since the blurbs mention these ARM-based devices were tablet computers, the firmware resemblance is strong, compared to the standardized PC model of SW distribution.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.