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

66

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

A arquitetura do processador Intel x86 define quatro privilégios   níveis, ou anéis, para proteger o código e os dados do sistema de   sobregravado inadvertidamente ou maliciosamente por código de menor   privilégio. Windows usa nível de privilégio 0 (ou anel 0) para o modo kernel   e nível de privilégio 3 (ou anel 3) para o modo de usuário. O motivo pelo qual o Windows   usa apenas dois níveis é que algumas arquiteturas de hardware que foram   suportado no passado (como o Compaq Alpha e o Silicon Graphics MIPS)   implementou apenas dois níveis de privilégio .

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

xiaokaoy
fonte
49
Pode ser difícil de acreditar, mas a Microsoft era uma das empresas de "arquitetura aberta" do mundo. O MS-DOS original era compatível com dezenas de diferentes plataformas e outros sistemas operacionais e o Windows foi projetado na mesma linha. O Excel foi criado em uma máquina virtual que é executada em muitas plataformas diferentes. Isso não foi um acidente - foi assim que o IBM PC (e clones) se tornou o padrão de fato de forma tão difundida e rápida, e como a Microsoft foi a única a fornecer o software básico. Qual você escolhe - o sistema que pode executar todos os seus aplicativos ou aquele que tem o fornecedor bloqueado? :)
Luaan
13
Eu mesmo instalei o Windows no Alpha e no MIPS, mas isso foi há muito, muito tempo. Quando eu era estagiário da Microsoft, um dos meus trabalhos era executar os conjuntos de testes do Visual Basic no hardware que os desenvolvedores não tinham em suas mesas.
Eric Lippert
7
@Luaan - não apenas "arquitetura aberta", mas também "open OS"! De que outra forma você pode explicar que, ao mesmo tempo, sua variante oficialmente licenciada do Unix era mais comum instalado Unix no mundo - veja Xenix na Wikipédia .
davidbak
4
Ainda hoje, existem versões do Windows que são executadas em arquiteturas diferentes de x86 / x64, a saber, o Windows RT para dispositivos ARM.
TigerhawkT3
2
@Luaan Também era um problema real que precisava ser resolvido porque os clones da IBM PC nem sempre eram totalmente compatíveis com IBM PC. No passado, "100% de compatibilidade com a IBM" era um ponto de venda para fornecedores de hardware. Nós tomamos esse tipo de coisa como garantida hoje, mas na primeira metade dos anos 80, eles não estavam garantidos. A Microsoft realmente não entrou no mercado de varejo do sistema operacional antes MS-DOS 5.0 que chegou ao mercado em 1991. Sim, um ano depois da inovadora história de sucesso do Windows 3.0.
a CVn

Respostas:

82

A Microsoft lançou 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 Windows 2000 .

jcbermu
fonte
7
IIRC o Wikipedia A página tem uma cartilha decente sobre os detalhes de quais arquiteturas, quem fez isso e por que eles não chegaram ao mercado.
Journeyman Geek
13
Eu acredito que a plataforma de desenvolvimento original foi i860. Esta foi uma escolha deliberada para impedir que os '386-ismos' entrassem no design. Por um tempo, a Microsoft também lançou aplicativos para diferentes arquiteturas; Eu tenho um CD do Word for Windows 6 criado para o Windows NT em i386, Alpha, MIPS e PowerPC.
Ed Avis
4
Lembro-me de tentar comprar software da Microsoft em execução em nossos sistemas Alpha NT, o pessoal de vendas da Microsoft no Reino Unido não sabia o que era um processador Alpha. DEC nos deu as máquinas muito baratas como um ISP, no final nós apenas colocamos o unix nelas e as usamos como X-Terms ao invés do projeto para portar para o NT.
Ian Ringrose
4
"A idéia original era ter uma base de código comum com uma Camada de Abstração de Hardware (HAL) personalizada para cada plataforma" faz parecer que não há uma HAL real por aí, o que seria incorreto. Hoje em dia, um Windows NT também suporta o ARM e mesmo que você suporte apenas o x86, há uma grande variedade de revisões para o x86 (a maior delas é x64) e correções para vários processadores, mainboards e qualquer outra coisa.
Voo
4
Houve também uma porta de terceiros para Sparc. Mais tarde, o suporte a PowerPC foi ressuscitado para o XBox360. Pouco antes disso, o suporte IA64 foi adicionado. Depois disso, o suporte AMD64 foi adicionado. A última adição é o suporte ao ARM. o original plataforma de desenvolvimento foi i860; nunca foi planejado lançar para essa plataforma, foi feito puramente porque era "estranho" e maximamente diferente do x86, PowerPC, MIPS e Co, a fim de garantir a portabilidade.
Jörg W Mittag
46

Até onde eu sei, existem 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 para 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.) 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. Somente x86 (limitado a alguns netbooks / tablets especiais) e x64 ainda são válidos para o Windows 10.

telefone do Windows

ARM, (talvez também MIPS?)

Windows 10 para IoT

x64, ARM

Tonny
fonte
2
Windows NT como Windows 10 para telefones suporta ARM.
Tamoghna Chowdhury
16
"IA-32" significa apenas "32-bit x86", que é a única versão do x86 suportada pelo Windows NT até x64 / AMD64 veio junto. Indiscutivelmente x64 / AMD64 é apenas uma variante do x86, embora o Windows tenha ferramentas extensas especificamente para lidar com suas diferenças. "IA-64", por outro lado, é a arquitetura completamente nova de 64 bits que alimenta chips Itanium; nunca existiu um Itanium de 32 bits.
IMSoP
9
Windows CE foi não uma variante do NT ou porta do NT. Ele tinha seu próprio kernel único e diferente, incluindo uma arquitetura de processo e um mapa de memória bem diferentes. Muitos códigos do NT foram portado para ele a partir do sistema operacional, por exemplo, toda a pilha de rede e muito mais, e, claro, no nível da terra do usuário, ele suportava a API do Windows.
davidbak
7
O Windows CE também foi executado em algumas variantes dos processadores Hitachi Super-H. Um exemplo famoso é o Sega Dreamcast (SH4), mas também acho que havia alguns PDAs baseados no SH3 que executavam o Windows CE.
Michael
3
Windows Phone é um nome de marketing. Até o WP7 fazia parte da linha CE, o WP8 é um derivado do NT. Da mesma forma, o Windows 10 IOT também é um kernel NT personalizado, assim como a geração 3 do XBoxen.
MSalters
21

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

JamesRyan
fonte
15

Os tablets Windows Surface lançados em 2012 usaram um Arquitetura ARM de 32 bits , esta versão específica foi nomeada Windows RT :

É essencialmente uma edição do Windows 8.x criada para a arquitetura ARM de 32 bits (ARMv7).

[…]

Devido à arquitetura diferente de dispositivos baseados em ARM em comparação com dispositivos x86, o Windows RT possui limitações de compatibilidade de software.

O Windows RT foi descontinuado.

Fonte: Wikipedia .

A.L
fonte
3

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:

Ghanima
fonte
3

o Windows NT A linha tem suportado várias arquiteturas ao longo dos anos.

MIPS e Alfa foram suportados de 3.1 a 4.0 (Alpha chegou a ser um candidato a lançamento para Windows 2000 , mas não chegou ao lançamento final). O PowerPC foi visto apenas em 4.0.

O IA64 (Itanium) era suportado no Windows XP. Também foi suportado na linha de servidor 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 aplicativos de desktop de terceiros foram bloqueados. Com as várias variantes de ARM do Windows 10, a área de trabalho parece ter desaparecido completamente.

plugwash
fonte
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) (o 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, MIPS, Itanium e 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 são na maioria das vezes). No entanto, conforme 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 (diferentemente 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 para emulação seria enorme e completamente contra o ideal de performance da ARM em um orçamento limitado (baixo TDP ).

Nota: A API do Windows a que me refiro aqui é o Win32 nativo API, não o .NET WINAPI ( gerenciou ) versão. A compatibilidade de aplicativos refere-se à compatibilidade de nível binário aqui, e 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), construir um software independente de arquitetura para o Windows tornou-se uma possibilidade (anteriormente, o software precisava ser emulado ou recompilado para ser executado no Windows em arquiteturas diferentes) .

Tamoghna Chowdhury
fonte
A MS se recusou a permitir aplicativos de desktop de terceiros no braço, mesmo se eles foram recompilados por ele. Esta foi uma restrição puramente artificial (como evidenciado pelo fato de que alguém encontrou uma maneira de contornar isso)
plugwash
@plugwash Na verdade, mencionei a artificialidade das restrições sobre a execução de aplicativos de desktop compilados para o ARM no segundo parágrafo. Por favor, leia.
Tamoghna Chowdhury
-1

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

cagey
fonte