Windows ha mai supportato architetture hardware diverse da x86?


66

Microsoft Windows Internals, 4th Edition afferma:

L'architettura del processore Intel x86 definisce quattro livelli di privilegio, o squilli, per proteggere il codice di sistema e i dati dalla sovrascrittura involontaria o dannosa da parte di codice di privilegio minore. Windows utilizza il livello di privilegio 0 (o l'anello 0) per la modalità kernel e il livello di privilegio 3 (o l'anello 3) per la modalità utente. Il motivo per cui Windows utilizza solo due livelli è che alcune architetture hardware supportate in passato (come Compaq Alpha e Silicon Graphics MIPS) hanno implementato solo due livelli di privilegi .

Questo significa che una volta Windows supportava Alpha e MIPS?


49
Può essere difficile da credere, ma Microsoft è stata una delle società più "aperte di architettura" al mondo. L'MS-DOS originale era compatibile con decine di piattaforme e altri sistemi operativi diversi e Windows è stato progettato sulla stessa linea. Excel è stato creato su una macchina virtuale in esecuzione su molte piattaforme diverse. Questo non è stato un caso: è così che PC IBM (e cloni) sono diventati lo standard di fatto in modo così pervasivo e rapido, e come Microsoft è stato quello a fornire il software di base. Quale scegli: il sistema in grado di eseguire tutte le tue applicazioni o quello che ha bloccato il tuo fornitore? :)
Luaan,

13
Ho installato Windows sia su Alpha che su MIPS, ma è stato tanto, tanto tempo fa. Quando ero un tirocinante Microsoft, uno dei miei compiti era quello di eseguire le suite di test di Visual Basic sull'hardware che gli sviluppatori non avevano sui loro desk.
Eric Lippert,

7
@Luaan - non solo "architettura aperta" ma anche "sistema operativo aperto"! In quale altro modo puoi spiegare che una volta la loro variante Unix con licenza ufficiale era la Unix installata più comune al mondo - vedi Xenix su Wikipedia .
davidbak,

4
Ancora oggi esistono versioni di Windows che funzionano su architetture diverse da x86 / x64, vale a dire Windows RT per dispositivi ARM.
TigerhawkT3

2
@Luaan Era anche un vero problema che doveva essere risolto perché i primi cloni di PC IBM non erano sempre completamente compatibili con PC IBM. In passato, la "compatibilità IBM al 100%" era un punto di forza per i fornitori di hardware. Oggi diamo per scontato questo genere di cose, ma nella prima metà degli anni '80 circa non erano affatto garantite. Microsoft non si è davvero spostata nel mercato al dettaglio del sistema operativo prima di MS-DOS 5.0, che ha colpito il mercato nel 1991. Sì, un anno dopo la rivoluzionaria storia di successo di Windows 3.0.
un CVn

Risposte:


82

Microsoft ha rilasciato Windows NT 3.1 nel 1993 come la prima versione puramente a 32 bit di Windows.

Windows NT è stato sviluppato come sistema operativo multi-architettura. Inizialmente supportato diverse architetture CPU, tra cui IA-32, DEC Alpha, MIPS e PowerPC.

L'idea originale era quella di avere una base di codice comune con un Hardware Abstraction Layer (HAL) personalizzato per ogni piattaforma. Tuttavia, il supporto per MIPS, Alpha e PowerPC è stato successivamente abbandonato in Windows 2000 .


7
IIRC la pagina di Wikipedia ha un primer decente sui dettagli di quali architetture, chi lo ha fatto e perché non sono venuti sul mercato.
Journeyman Geek

13
Credo che la piattaforma di sviluppo originale fosse i860. Questa è stata una scelta deliberata per impedire a "386-ismi" di entrare nel design. Per un certo periodo Microsoft ha anche rilasciato applicazioni per diverse architetture; Ho un CD di Word per Windows 6 creato per Windows NT su i386, Alpha, MIPS e PowerPC.
Ed Avis,

4
Ricordo di aver provato ad acquistare software da Microsoft in esecuzione sui nostri sistemi Alpha NT, i venditori Microsoft nel Regno Unito non sapevano cosa fosse una CPU Alpha. DEC ci ha dato le macchine molto economiche come ISP, alla fine abbiamo semplicemente messo unix su di esse e le abbiamo usate come X-Termini piuttosto che per il progetto da portare su NT.
Ian Ringrose,

4
"L'idea originale era quella di avere una base di codice comune con un HAL (Hardware Abstraction Layer) personalizzato per ogni piattaforma" sembra che in questi giorni non ci sia un vero HAL, il che sarebbe errato. Per un Windows NT in questi giorni supporta anche ARM in questi giorni e anche se supporti solo x86 c'è una vasta gamma di revisioni per x86 (il più grande ovviamente è x64) e correzioni di bug per vari processori, schede madri e quant'altro.
Voo

4
C'era anche un porto di terze parti per Sparc. Successivamente, il supporto PowerPC è stato ripristinato per l'XBox360. Poco prima, è stato aggiunto il supporto IA64. Successivamente, è stato aggiunto il supporto AMD64. L'ultima aggiunta è il supporto ARM. La piattaforma di sviluppo originale era i860; non è mai stato progettato per essere rilasciato per quella piattaforma, è stato fatto semplicemente perché era "strano" e al massimo diverso da x86, PowerPC, MIPS e Co, al fine di garantire la portabilità.
Jörg W Mittag,

46

Per quanto ne so ci sono 8 architetture di base (e un numero di sotto-varianti) di cui solo 2 sono ancora supportate oggi con Windows 10.

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

x86 (varianti a 16 e 32 bit, inclusi 8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III, P4, Core, Core Duo, Core-I e vari design Celeron e Atom.) include anche varie CPU AMD e NEC compatibili.

Windows CE

MIPS, x86, ARM (grazie @ pjc50).
(Non sono sicuro se CE abbia mai funzionato su Alpha, PowerPC.)

Windows NT

x86, x64 (o amd64, vengono utilizzati entrambi i nomi), MIPS, Alpha, IA32, IA64, PowerPC.
Il supporto per MIPS, Alpha e PowerPC è stato abbandonato in Windows 2000. Itanium era un server che iniziava solo con Windows 2000 e 32-bit (IA32) è stato abbandonato per il 2008 e 64-bit (IA64) con Server 2012 se ricordo bene. Solo x86 (limitato ad alcuni dispositivi netbook / tablet speciali) e x64 sono attualmente ancora validi per Windows 10.

Windows Phone

ARM, (forse anche MIPS?)

Windows 10 per IoT

x64, ARM


2
Windows NT come Windows 10 per telefoni supporta ARM.
Tamoghna Chowdhury,

16
"IA-32" significa semplicemente "x86 a 32 bit", che è l'unica versione di x86 supportata da Windows NT fino a quando non arriva x64 / AMD64. Probabilmente x64 / AMD64 è solo una variante di x86, sebbene Windows disponga di strumenti estesi specifici per la gestione delle sue differenze. "IA-64", d'altra parte, è la nuovissima architettura a 64 bit che alimentava i chip Itanium; non c'è mai stato un Itanium a 32 bit.
IMSoP

9
Windows CE non era una variante NT o porta di NT. Aveva un proprio kernel unico e diverso, inclusa un'architettura di processo e una mappa di memoria abbastanza diverse. Un sacco di codice NT è stato portato su di esso dal sistema operativo, ad esempio l'intero stack di rete e molto altro, e ovviamente a livello di utente supportava l'API di Windows ..
davidbak

7
Windows CE funzionava anche con alcune varianti dei pocessori Hitachi Super-H. Un esempio famoso è il Sega Dreamcast (SH4), ma penso anche che esistessero alcuni PDA basati su SH3 con Windows CE.
Michael,

3
Windows Phone è un nome commerciale. Fino a WP7 faceva parte della linea CE, WP8 è un derivato NT. Allo stesso modo Windows 10 IOT è anche un kernel NT su misura, come lo sono le 3 generazioni di XBoxen.
Salterio

21

Windows XP 64 bit e Windows Server 2003-2008R2 supportano l'architettura Intel Itanium IA-64.


15

I tablet Windows Surface rilasciati nel 2012 utilizzavano un'architettura ARM a 32 bit , questa versione specifica era denominata Windows RT :

È essenzialmente un'edizione di Windows 8.x costruita per l'architettura ARM a 32 bit (ARMv7).

[...]

A causa della diversa architettura dei dispositivi basati su ARM rispetto ai dispositivi x86, Windows RT presenta limiti di compatibilità del software.

Windows RT è stato sospeso.

Fonte: Wikipedia .


3

Windows 10 IoT Core funziona su architetture ARM a 32 bit (IA-32, ARMv7), come Raspberry Pi 3. Tuttavia presenta alcune limitazioni.

fonti:


3

La linea Windows NT ha supportato varie architetture nel corso degli anni.

MIPS e Alpha sono stati supportati da 3.1 a 4.0 (Alpha ha effettivamente raggiunto la versione candidata per Windows 2000 , ma non è arrivato alla versione finale). PowerPC è stato visto solo in 4.0.

IA64 (Itanium) era supportato in Windows XP. Era anche supportato nella linea del server da Server 2003 a Server 2008 R2.

Microsoft ha portato Windows su ARM ma poi ha paralizzato artificialmente i sistemi risultanti in vari modi. Con Windows RT (la versione ARM di Windows 8) il sistema era praticamente completo, ma le app desktop di terze parti erano bloccate. Con le varie varianti ARM di Windows 10 il desktop sembra essere andato completamente.


1

Windows NT (come il kernel in Windows RT, WP8, WP8.1 e Windows 10 per telefoni) supporta ARM v7-A (32 bit) e ARM v8-A (64 bit) (Windows 10 per telefoni attualmente sul Architetture Lumia 950 / 950XL con chipset Qualcomm Snapdragon 810) attualmente oltre a x86 (incluso x86-64 (Windows AMD64), i386 / i586 / i686 (Windows x86)). Ciò si aggiunge alle architetture storicamente supportate menzionate in altre risposte come Alpha, MIPS, Itanium e PowerPC.

Come notato in un'altra risposta, le app desktop Win32 non possono essere eseguite nativamente su Windows NT su ARM (ovvero, senza x86 sull'emulazione ARM) se sono compilate per l'architettura x86 (come lo sono per lo più). Tuttavia, come menzionato da @user 2284570, gli eseguibili nativi ARM o le librerie dinamiche possono essere eseguiti in Windows NT per ARM solo se essi (i binari di distribuzione) sono stati firmati digitalmente da Microsoft, che gli uffici ostacolano la distribuzione da parte di sviluppatori di app native ARM (a differenza della politica con x86 o altre architetture precedentemente supportate per esempio). Microsoft ha scelto di non supportare le app Win32 con destinazione x86 (software Windows Desktop) a livello binario tramite emulazione su Windows per ARM poiché la penalità prestazionale per l'emulazione sarebbe enorme e completamente contro l'ideale ARM delle prestazioni con un budget ridotto (TDP basso ).

Nota: l'API di Windows a cui faccio riferimento qui è l' API nativa Win32 , non la versione WINAPI ( gestita ) di .NET . La compatibilità dell'app si riferisce alla compatibilità a livello binario qui, non alla compatibilità a livello di sorgente, se ciò non fosse evidente.

Tuttavia, con l'avvento della piattaforma Windows RT e ora della Universal Windows Platform (UWP), la creazione di software indipendente dall'architettura per Windows è diventata una possibilità (in precedenza il software doveva essere emulato o ricompilato per funzionare su Windows su architetture diverse) .


MS ha rifiutato di autorizzare app desktop di terze parti anche se sono state ricompilate per questo. Questa era una restrizione puramente artificiale (come evidenziato dal fatto che qualcuno ha trovato un modo per aggirarlo)
plugwash

@plugwash Ho infatti citato l'artificialità delle restrizioni sull'esecuzione di app desktop compilate per ARM nel secondo paragrafo. Per favore, leggilo.
Tamoghna Chowdhury,

-1

Windows NT era in esecuzione su chip MIPS e Alpha. Ho eseguito NT4 su un Alpha. È stato necessario eseguire il flashing di un firmware diverso per avviare NT anziché VMS.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.