66

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?

  • 49
    It 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 Apr 7 '16 at 13:28
  • 13
    I 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 Apr 7 '16 at 15:20
  • 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 Apr 7 '16 at 17:45
  • 4
    Even today, there are versions of Windows that run on architectures other than x86/x64, viz Windows RT for ARM devices. – TigerhawkT3 Apr 8 '16 at 23:46
  • 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 Apr 9 '16 at 23:17
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.

|improve this answer|||||
  • 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 Apr 7 '16 at 8:22
  • 13
    I 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 Apr 7 '16 at 12:07
  • 4
    I 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 Apr 7 '16 at 13:53
  • 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 Apr 8 '16 at 15:25
  • 4
    There 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 Apr 9 '16 at 12:07
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

|improve this answer|||||
  • 2
    Windows NT as Windows 10 for phones supports ARM. – Tamoghna Chowdhury Apr 7 '16 at 13:45
  • 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 Apr 7 '16 at 14:22
  • 9
    Windows 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 Apr 7 '16 at 17:48
  • 7
    Windows 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 Apr 8 '16 at 6:41
  • 3
    Windows 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 Apr 8 '16 at 13:43
21

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

|improve this answer|||||
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.

|improve this answer|||||
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:

|improve this answer|||||
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.

|improve this answer|||||
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).

|improve this answer|||||
  • 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 Apr 11 '16 at 22:28
  • @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 Apr 12 '16 at 3:11
-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.

|improve this answer|||||

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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