O Windows já suportou alguma arquitetura de hardware diferente de x86?

66

Microsoft Windows Internals, 4ª edição, diz:

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.

Isso significa que o Windows já suportou o Alpha e o MIPS?

    
por xiaokaoy 07.04.2016 / 10:03

8 respostas

82

A Microsoft lançou o Windows NT 3.1 em 1993 como a primeira versão puramente de 32 bits do Windows.

O Windows NT foi desenvolvido como um sistema operacional de várias arquiteturas. Inicialmente suportado diferentes arquiteturas de CPU, incluindo IA-32, DEC Alpha, MIPS e PowerPC.

A ideia original era ter uma base de código comum com uma Camada de Abstração de Hardware (HAL) personalizada para cada plataforma. No entanto, o suporte para MIPS, Alpha e PowerPC foi posteriormente descartado no Windows 2000 .

    
por 07.04.2016 / 10:14
46

Até onde eu sei, há 8 arquiteturas de base (e um número de sub-variantes) das quais apenas 2 ainda são suportadas atualmente com o Windows 10.

Windows 1.0 a 3.11, Windows 95, 98 e Millenium Edition

x86 (variantes de 16 bits e 32 bits, incluindo 8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III, P4, Core, Core Duo, Core-I e vários designs Celeron e Atom .) Isso também inclui vários processadores AMD e NEC compatíveis.

Windows CE

MIPS, x86, ARM (obrigado @ pjc50).
(Não tenho certeza se o CE já rodou em Alpha, PowerPC.)

Windows NT

x86, x64 (ou amd64, ambos os nomes são usados), MIPS, Alpha, IA32, IA64, PowerPC.
Suporte para MIPS, Alpha e PowerPC foi descartado no Windows 2000. Itanium era servidor apenas começando com o Windows 2000 e 32 bits (IA32) foi descartado para 2008 e 64 bits (IA64) com o Server 2012 se bem me lembro. Apenas x86 (limitado a alguns netbooks / tablets especiais) e x64 ainda são válidos para o Windows 10.

Windows Phone

ARM, (talvez também MIPS?)

Windows 10 para IoT

x64, ARM

    
por 07.04.2016 / 15:31
21

O Windows XP 64bit e o Windows Server 2003-2008R2 suportam a arquitetura Intel Itanium IA-64.

    
por 07.04.2016 / 13:52
15

Os tablets do Windows Surface lançados em 2012 usaram uma arquitetura ARM de 32 bits . Essa versão específica recebeu o nome de 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.

O Windows RT foi descontinuado.

Fonte: Wikipédia .

    
por 07.04.2016 / 15:09
3

O Windows 10 IoT Core é executado em arquiteturas ARM de 32 bits (IA-32, ARMv7), como o Raspberry Pi 3. No entanto, ele apresenta certas limitações.

Fontes:

por 07.04.2016 / 19:56
3

O Windows NT linha tem apoiado várias arquiteturas ao longo dos anos.

MIPS, e Alpha foram apoiados 3,1-4,0 (Alpha realmente fez isso, tanto quanto um release candidate para < a href="http://en.wikipedia.org/wiki/Windows_2000"> Windows 2000 , mas não torná-lo para a versão final). O PowerPC foi visto apenas no 4.0.

O IA64 (Itanium) era suportado no Windows XP. Também foi suportado na linha de servidores do Server 2003 para o Server 2008 R2.

A Microsoft portou o Windows para o ARM, mas depois aleijou artificialmente os sistemas resultantes de várias maneiras. Com o Windows RT (a versão ARM do Windows 8), o sistema estava praticamente completo, mas os aplicativos de desktop de terceiros estavam bloqueados. Com as várias variantes de ARM do Windows 10, a área de trabalho parece ter desaparecido completamente.

    
por 07.04.2016 / 15:20
1

O Windows NT (como o kernel no Windows RT, WP8, WP8.1 e Windows 10 para telefones) suporta o ARM v7-A (32 bits) eo ARM v8-A (64 bits) (Windows 10 para telefones atualmente no Lumia 950 / 950XL com chipset Qualcomm Snapdragon 810) atualmente em acréscimo ao x86 (incluindo x86-64 (Windows AMD64), i386 / i586 / i686 (Windows x86)). Isso é uma adição às arquiteturas historicamente suportadas mencionadas em outras respostas, como o Alpha, o MIPS, o Itanium e o PowerPC.

Como observado em outra resposta, os aplicativos da área de trabalho Win32 não podem ser executados nativamente no Windows NT no ARM (ou seja, sem x86 na emulação de ARM) se forem compilados para a arquitetura x86 (como na maioria das vezes). No entanto, como mencionado pelo @user 2284570, executáveis nativos do ARM ou bibliotecas dinâmicas podem ser executados no Windows NT para ARM somente se eles (os binários de distribuição) tiverem sido assinados digitalmente pela Microsoft, quais escritórios impedem a distribuição de aplicativos nativos do ARM por desenvolvedores de terceiros (ao contrário da política com x86 ou outras arquiteturas anteriormente suportadas, por exemplo). A Microsoft optou por não suportar aplicativos Win32 destinados a x86 (software Windows para desktop) em um nível binário via emulação no Windows para ARM, já que a penalidade de desempenho por emulação seria enorme e totalmente contra o ideal de desempenho ARM em um orçamento limitado de energia (baixo TDP). ).

Observação: A API do Windows a que me refiro é a API Win32 nativa , não a versão .NET WINAPI ( gerenciada ). A compatibilidade de aplicativos se refere à compatibilidade de nível binário aqui, não à compatibilidade no nível de origem, se isso não for aparente.

No entanto, com o advento da plataforma Windows RT e agora da Plataforma Universal do Windows (UWP), a construção de software independente de arquitetura para o Windows tornou-se uma possibilidade (anteriormente, o software precisava ser emulado ou recompilado para ser executado no Windows diferentes arquiteturas).

    
por 07.04.2016 / 15:49
-1

O Windows NT costumava rodar em chips MIPS e Alpha. Eu corri o NT4 em um Alpha. Você tinha que piscar um firmware diferente para inicializar o NT em vez de VMS.

    
por 07.04.2016 / 15:21