Did Windows ever support any hardware architectures other than x86?

66

9

Microsoft Windows Internals, 4th Edition says:

The architecture of the Intel x86 processor defines four privilege levels, or rings, to protect system code and data from being overwritten either inadvertently or maliciously by code of lesser privilege. Windows uses privilege level 0 (or ring 0) for kernel mode and privilege level 3 (or ring 3) for user mode. The reason Windows uses only two levels is that some hardware architectures that were supported in the past (such as Compaq Alpha and Silicon Graphics MIPS) implemented only two privilege levels.

Does this mean Windows once supported Alpha and MIPS?

xiaokaoy

Posted 2016-04-07T08:03:55.270

Reputation: 783

49It may be hard to believe, but Microsoft was one of the most "open architecture" companies in the world. The original MS-DOS was compatible with tens of different platforms and other OSes, and Windows was designed in the same vein. Excel was built on a virtual machine that run on many different platforms. This was no accident - that's how IBM PC (and clones) became the de facto standard so pervasively and quickly, and how Microsoft was the one to supply the basic software. Which do you pick - the system that can run all your applications, or the one that has you vendor locked-in? :) – Luaan – 2016-04-07T13:28:44.447

13I have myself installed Windows on both Alpha and MIPS but that was a long, long time ago. When I was a Microsoft intern one of my jobs was to run the Visual Basic test suites on the hardware that the developers did not have on their desks. – Eric Lippert – 2016-04-07T15:20:34.853

7

@Luaan - not just "open architecture" but also "open OS"! How else can you explain that at one time their officially licensed Unix variant was the most common installed Unix in the world - see Xenix at Wikipedia.

– davidbak – 2016-04-07T17:45:09.400

4Even today, there are versions of Windows that run on architectures other than x86/x64, viz Windows RT for ARM devices. – TigerhawkT3 – 2016-04-08T23:46:35.897

@xiaokaoy this is old version,please read Sixth Edition – AminM – 2016-04-09T06:44:14.080

2

@Luaan It was also a real problem that needed solving because particularly early IBM PC clones weren't always fully IBM PC compatible. Back in the day, "100% IBM compatibility" was a selling point for hardware vendors. We take that kind of things for granted today, but in the first half of the 1980s or so, they weren't guaranteed at all. Microsoft didn't really move into the operating system retail market before MS-DOS 5.0 which hit the market in 1991. Yes, a year after the groundbreaking success story of Windows 3.0.

– a CVn – 2016-04-09T23:17:30.550

1@DevSolar May I humbly point toward the IBM PS/2, which flopped massively in part due to vendor lock-in (MCA being a major killer, and OS/2 never particularly taking off)? – a CVn – 2016-04-11T14:11:42.827

@Luaan: I disagree, massively, but don't see how to get the point across without violating ToS and / or inviting you over for a beer. ;-) So I'd better delete the comment so as to not invite others to jump the bandwaggon. – DevSolar – 2016-04-11T14:14:06.187

Answers

82

Microsoft released Windows NT 3.1 in 1993 as the first purely 32-bit version of Windows.

Windows NT was developed as a multi-architecture operating system. Initially supported different CPU architectures, including IA-32, DEC Alpha, MIPS, and PowerPC.

The original idea was to have a common code base with a custom Hardware Abstraction Layer (HAL) for each platform. However, support for MIPS, Alpha, and PowerPC was later dropped in Windows 2000.

jcbermu

Posted 2016-04-07T08:03:55.270

Reputation: 15 868

7

IIRC the Wikipedia page has a decent primer on the details of which architectures, who did it, and why they didn't come to market.

– Journeyman Geek – 2016-04-07T08:22:44.570

13I believe that the original development platform was i860. This was a deliberate choice to stop '386-isms' getting into the design. For a time Microsoft also released applications for different architectures; I have a CD of Word for Windows 6 built for Windows NT on i386, Alpha, MIPS and PowerPC. – Ed Avis – 2016-04-07T12:07:17.083

4I recall trying to buy software from Microsoft on run on our Alpha NT systems, the Microsoft sales people in the UK did not know what a Alpha CPU was. DEC gave us the machines very cheap as a ISP, in the end we just put unix on them and used them as X-Terms rather then for the project to port to NT. – Ian Ringrose – 2016-04-07T13:53:10.653

4"The original idea was to have a common code base with a custom Hardware Abstraction Layer (HAL) for each platform" makes it sound like there isn't an actual HAL around these days, which would be incorrect. For one Windows NT these days also supports ARM these days and even if you only support x86 there's a wide range of revisions for x86 (the biggest one obviously being x64) and bugfixes for varying processors, mainboards and anything else. – Voo – 2016-04-08T15:25:29.237

2NT 3.1 didn't support PowerPC (that wasn't added until NT 3.51, if I recall correctly). @EdAvis: Initial development was on an i860 emulator, but as far as I know, not i860 hardware--by the time they ran it on hardware, they'd given up on the i860 and moved to a MIPS R3000. – Jerry Coffin – 2016-04-08T22:24:54.477

4There was also a third-party port to Sparc. Later, PowerPC support was resurrected for the XBox360. Shortly before that, IA64 support was added. After that, AMD64 support was added. The latest addition is ARM support. The original development platform was i860; it was never intended to release for that platform, it was done purely because it was "weird" and maximally different from x86, PowerPC, MIPS, and Co, in order to ensure portability. – Jörg W Mittag – 2016-04-09T12:07:09.487

And the hardware abstraction layer was dismissed because -- the abstraction made Windows too slow for Space Cadet. A shame, because since that change any driver can wreak havoc on the machine, which they didn't use to. Now we use a virtual machine to protect ourselves. Better? Dunno. – Peter - Reinstate Monica – 2016-04-11T15:23:36.007

@jcbermu : The first ɴᴛ version is 3.2 released in 1991. you can download it here along an emulator to run it on ᴡɪɴ32. If you run cmd, the date along the version will be confirmed.

– user2284570 – 2016-04-11T18:04:25.870

46

As far as I know there are 8 base-architectures (and a number of sub-variants) of which only 2 are still supported today with Windows 10.

Windows 1.0 to 3.11, Windows 95, 98 and Millenium Edition

x86 (16 bit and 32 bit variants, including 8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III, P4, Core, Core Duo, Core-I and various Celeron and Atom designs.) This also includes various compatible AMD and NEC CPU's.

Windows CE

MIPS, x86, ARM (thanks @pjc50).
(Not sure if CE ever ran on Alpha, PowerPC.)

Windows NT

x86, x64 (or amd64, both names are used), MIPS, Alpha, IA32, IA64, PowerPC.
Support for MIPS, Alpha and PowerPC was dropped in Windows 2000. Itanium was server only starting with Windows 2000 and 32-bit (IA32) was dropped for 2008 and 64-bit (IA64) with Server 2012 if I recall correctly. Only x86 (limited to some specialty netbook/tablet devices) and x64 are currently still valid for Windows 10.

Windows Phone

ARM, (maybe also MIPS ?)

Windows 10 for IoT

x64, ARM

Tonny

Posted 2016-04-07T08:03:55.270

Reputation: 19 919

2Windows NT as Windows 10 for phones supports ARM. – Tamoghna Chowdhury – 2016-04-07T13:45:05.643

Windows 10 IoT for Raspberry Pi https://developer.microsoft.com/en-us/windows/iot

– Richard Chambers – 2016-04-07T13:55:06.287

16"IA-32" just means "32-bit x86", which is the only version of x86 supported by Windows NT until x64/AMD64 came along. Arguably x64/AMD64 is just a variant of x86, although Windows has extensive tooling specifically for handling its differences. "IA-64", on the other hand, is the completely new 64-bit architecture which powered Itanium chips; there was never any such thing as a 32-bit Itanium. – IMSoP – 2016-04-07T14:22:32.947

9Windows CE was not an NT variant, or port of NT. It had its own very unique and different kernel, including a quite different process architecture and memory map. Lots of NT code was ported to it from the OS, e.g., the entire network stack and much much else, and of course at the userland level it supported the Windows API.. – davidbak – 2016-04-07T17:48:53.873

One could also argue that 16-bit (real mode) and 32-bit x86 count as different architectures. – Hong Ooi – 2016-04-08T03:06:33.157

1

Windows NT also supports ARM https://en.wikipedia.org/wiki/Windows_NT#Major_features

– phuclv – 2016-04-08T04:35:42.117

7Windows CE also ran on some variants of the Hitachi Super-H pocessors. A famous example is the Sega Dreamcast (SH4), but I also think there were some PDAs based on the SH3 that ran Windows CE. – Michael – 2016-04-08T06:41:52.053

@IMSoP indeed x64/amd64 is also known as x86_64 – OrangeDog – 2016-04-08T08:30:00.107

3Windows Phone is a marketing name. Up to WP7 it was part of the CE line, WP8 is an NT derivative. Similarly Windows 10 IOT is also a tailored NT kernel, as are the 3 generation of XBoxen. – MSalters – 2016-04-08T13:43:05.047

@Tonny : you forgot axp64 and that mips isa are separate architectures (windows ɴᴛ ᴍɪᴘꜱ ɪꜱᴀ Ⅳ as a separate architecture). There’s also ᴀʀᴍ64 with windows 10.

– user2284570 – 2016-04-11T16:19:26.410

21

Windows XP 64bit and Windows Server 2003-2008R2 support the Intel Itanium IA-64 architecture.

JamesRyan

Posted 2016-04-07T08:03:55.270

Reputation: 1 591

15

Windows Surface tablets released in 2012 used a 32-bit ARM architecture, this specific version was named Windows RT:

It is essentially an edition of Windows 8.x built for the 32-bit ARM architecture (ARMv7).

[…]

Due to the different architecture of ARM-based devices compared to x86 devices, Windows RT has software compatibility limitations.

Windows RT has been discontinued.

Source: Wikipedia.

A.L

Posted 2016-04-07T08:03:55.270

Reputation: 509

3

The windows NT line has supported various architectures over the years.

MIPS, and Alpha were supported from 3.1 to 4.0 (Alpha actually made it as far as a release candidate for Windows 2000, but it didn't make it to the final release). PowerPC was seen in 4.0 only.

IA64 (Itanium) was supported in Windows XP. It was also supported in the server line from Server 2003 to Server 2008 R2.

Microsoft has ported Windows to ARM but then artificially crippled the resulting systems in various ways. With windows RT (the ARM version of Windows 8) the system was pretty much complete, but third-party desktop apps were locked out. With the various ARM variants of Windows 10 the desktop seems to be gone completely.

plugwash

Posted 2016-04-07T08:03:55.270

Reputation: 4 587

3

Windows 10 IoT Core runs on a 32-bit ARM architectures (IA-32, ARMv7), such as the Raspberry Pi 3. It comes with certain limitations though.

Sources:

Ghanima

Posted 2016-04-07T08:03:55.270

Reputation: 141

1

Windows NT (as the kernel in Windows RT, WP8, WP8.1 and Windows 10 for Phones) supports the ARM v7-A (32-bit) and ARM v8-A (64-bit) (Windows 10 for Phones currently on the Lumia 950/950XL with Qualcomm Snapdragon 810 chipset) architectures currently in addition to x86 (including x86-64 (Windows AMD64), i386/i586/i686 (Windows x86)). This is in addition to the historically supported architectures mentioned in other answers like the Alpha, MIPS, Itanium and PowerPC.

As noted in another answer, Win32 desktop apps cannot natively run on Windows NT on ARM (i.e., without x86 on ARM emulation) if they are compiled for the x86 architecture (as they are mostly). However, as mentioned by @user 2284570, ARM native executables or dynamic libraries can run in Windows NT for ARM only if they (the distribution binaries) have been digitally signed by Microsoft, which offices p obstructs 3rd-party developer distribution of ARM native apps (unlike the policy with x86 or other previously supported architectures for example). Microsoft chose to not support x86-targeted Win32 apps (Desktop Windows software) at a binary level via emulation on Windows for ARM as the performance penalty for emulation would be huge and completely against the ARM ideal of performance in a tight power budget (low TDP).

Note: The Windows API I refer to here is the Win32 native API, not the .NET WINAPI (managed) version. App compatibility refers to binary-level compatibility here, not source-level compatibility, if that wasn't apparent.

However, with the advent of the Windows RT platform and now the the Universal Windows Platform (UWP), building architecture-agnostic software for Windows has become a possibility (previously software had to be either emulated or recompiled to run on Windows on different architectures).

Tamoghna Chowdhury

Posted 2016-04-07T08:03:55.270

Reputation: 153

MS refused to allow third party desktop apps on arm even if they were recompiled for it. This was a purely artificial restriction (as evidenced by the fact that someone found a way to bypass it) – plugwash – 2016-04-11T22:28:16.710

@plugwash I have in fact mentioned the artificiality of the restrictions on running desktop apps compiled for ARM in the second paragraph. Please read it. – Tamoghna Chowdhury – 2016-04-12T03:11:22.650

-1

Windows NT used to run on MIPS and Alpha chips. I've run NT4 on an Alpha. You had to flash a different firmware to boot NT instead of VMS.

cagey

Posted 2016-04-07T08:03:55.270

Reputation: 15