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?
windows
privileges
x86
mips
xiaokaoy
fonte
fonte
Respostas:
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 .
fonte
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
fonte
O Windows XP 64bit e o Windows Server 2003-2008R2 suportam a arquitetura Intel Itanium IA-64.
fonte
Os tablets Windows Surface lançados em 2012 usaram um Arquitetura ARM de 32 bits , esta versão específica foi nomeada Windows RT :
O Windows RT foi descontinuado.
Fonte: Wikipedia .
fonte
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:
fonte
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.
fonte
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) .
fonte
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.
fonte