Windows a-t-il déjà pris en charge des architectures matérielles autres que x86?

66

Microsoft Windows Internals, 4ème édition dit:

L'architecture du processeur Intel x86 définit quatre niveaux de privilèges, ou sonneries, afin d'éviter que le code et les données du système ne soient écrasés par inadvertance ou par malveillance par un code de privilège réduit. Windows utilise le niveau de privilège 0 (ou la sonnerie 0) pour le mode noyau et le niveau de privilège 3 (ou la sonnerie 3) pour le mode utilisateur. La raison pour laquelle Windows n'utilise que deux niveaux est que certaines architectures matérielles prises en charge par le passé (telles que Compaq Alpha et Silicon Graphics MIPS) n'implémentaient que deux niveaux de privilège .

Est-ce que cela signifie que Windows a déjà pris en charge Alpha et MIPS?

Xiaokaoy
la source
49
C’est peut-être difficile à croire, mais Microsoft était l’une des sociétés les plus «au monde d’architecture ouverte». Le MS-DOS d'origine était compatible avec des dizaines de plates-formes différentes et d' autres systèmes d'exploitation , et Windows a été conçu dans le même esprit. Excel a été créé sur une machine virtuelle fonctionnant sur de nombreuses plates-formes différentes. Ce n’était pas un hasard - c’est ainsi que les PC IBM (et leurs clones) sont devenus la norme de facto de manière aussi répandue et rapide, et que Microsoft était celui qui fournissait les logiciels de base. Lequel est-ce que vous choisissez - le système qui peut exécuter toutes vos applications, ou celui qui a votre fournisseur bloqué? :)
Luaan
13
J'ai moi-même installé Windows sur Alpha et MIPS, mais c'était il y a très très longtemps. Quand j'étais stagiaire chez Microsoft, l'une de mes tâches consistait à exécuter les suites de tests Visual Basic sur du matériel que les développeurs n'avaient pas sur leur bureau.
Eric Lippert
7
@Luaan - pas seulement "architecture ouverte" mais aussi "open OS"! Sinon, comment pouvez-vous expliquer qu’à un moment donné, leur variante Unix sous licence officielle était l’ Unix installé le plus répandu au monde - voir Xenix sur Wikipedia .
davidbak
4
Même aujourd'hui, certaines versions de Windows fonctionnent sur des architectures autres que x86 / x64, à savoir Windows RT pour les périphériques ARM.
TigerhawkT3
2
@ Luan C'était également un réel problème à résoudre car les clones IBM PC les plus anciens, en particulier, n'étaient pas toujours totalement compatibles IBM PC. À l’époque, la «compatibilité 100% IBM» était un argument de vente pour les fournisseurs de matériel. Nous prenons ce genre de choses pour acquis aujourd'hui, mais dans la première moitié des années 80, elles n'étaient absolument pas garanties. Microsoft n’a pas vraiment pénétré le marché de la vente au détail de systèmes d’exploitation avant MS-DOS 5.0, qui est apparu sur le marché en 1991. Oui, un an après le succès révolutionnaire de Windows 3.0.
un CVn

Réponses:

82

Microsoft a publié Windows NT 3.1 en 1993 en tant que première version de Windows purement 32 bits.

Windows NT a été développé en tant que système d'exploitation multi-architecture. Prise en charge initiale de différentes architectures de CPU, notamment IA-32, DEC Alpha, MIPS et PowerPC.

L'idée initiale était de disposer d'une base de code commune avec une couche d'abstraction matérielle (HAL) personnalisée pour chaque plate-forme. Toutefois, la prise en charge de MIPS, Alpha et PowerPC a été abandonnée par la suite dans Windows 2000 .

jcbermu
la source
7
La page Wikipedia de l'IIRC contient une introduction décente sur les détails des architectures, des auteurs et des raisons pour lesquelles elles ne sont pas venues sur le marché.
Journeyman Geek
13
Je crois que la plate-forme de développement d'origine était i860. C'était un choix délibéré d'empêcher les "386-ismes" d'entrer dans la conception. Pendant un certain temps, Microsoft a également publié des applications pour différentes architectures; J'ai un CD de Word pour Windows 6 construit pour Windows NT sur i386, Alpha, MIPS et PowerPC.
Ed Avis
4
Je me souviens d’avoir essayé d’acheter des logiciels de Microsoft exécutés sur nos systèmes Alpha NT. Les représentants des ventes de Microsoft au Royaume-Uni ne savaient pas ce qu’était un processeur Alpha. DEC nous a donné les machines très bon marché en tant qu'ISP, à la fin nous avons simplement mis unix sur elles et les avons utilisées comme X-Terms plutôt que pour le projet de portage sur NT.
Ian Ringrose
4
«L’idée de départ était d’avoir une base de code commune avec une couche d’abstraction matérielle (HAL) personnalisée pour chaque plate-forme». Pour un Windows NT, ces jours supportent également ARM et même si vous ne supportez que x86, il existe une large gamme de révisions pour x86 (la plus grande étant évidemment x64) et des corrections de bugs pour divers processeurs, cartes mères et autres.
Voo le
4
Il y avait aussi un port tiers vers Sparc. Plus tard, le support PowerPC a été ressuscité pour la XBox360. Peu de temps auparavant, le support IA64 était ajouté. Après cela, le support AMD64 a été ajouté. Le dernier ajout est le support ARM. La plate-forme de développement d' origine était i860; elle n'a jamais été conçue pour cette plate-forme. Elle l'a été uniquement parce qu'elle était "étrange" et extrêmement différente de x86, PowerPC, MIPS et Co, afin de garantir la portabilité.
Jörg W Mittag Le
46

Autant que je sache, il existe 8 architectures de base (et un certain nombre de sous-variantes), dont seulement 2 sont encore prises en charge aujourd'hui avec Windows 10.

Windows 1.0 à 3.11, Windows 95, 98 et Millenium Edition

x86 (variantes 16 bits et 32 ​​bits, y compris 8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III, P4, Core, Core Duo, Core-I et diverses conceptions Celeron et Atom.) Ce produit comprend également divers processeurs compatibles AMD et NEC.

Windows CE

MIPS, x86, ARM (merci @ pjc50).
(Je ne sais pas si CE a déjà fonctionné sur Alpha, PowerPC.)

Windows NT

x86, x64 (ou amd64, les deux noms sont utilisés), MIPS, Alpha, IA32, IA64, PowerPC.
La prise en charge de MIPS, Alpha et PowerPC a été supprimée sous Windows 2000. Le serveur Itanium ne débutait que sous Windows 2000 et la version 32 bits (IA32) a été abandonnée pour 2008 et la version 64 bits (IA64) avec Server 2012, si je me souviens bien. Seuls les x86 (limités à certains netbooks / tablettes spécialisés) et x64 sont toujours valables pour Windows 10.

Téléphone Windows

ARM, (peut-être aussi MIPS?)

Windows 10 pour l'IoT

x64, ARM

Tonny
la source
2
Windows NT en tant que Windows 10 pour téléphones prend en charge ARM.
Tamoghna Chowdhury
16
"IA-32" signifie simplement "32 bits x86", qui est la seule version de x86 prise en charge par Windows NT jusqu'à ce que x64 / AMD64 apparaisse. On peut soutenir que x64 / AMD64 n’est qu’une variante de x86, bien que Windows dispose de nombreux outils spécialement conçus pour gérer ses différences. "IA-64", en revanche, est la toute nouvelle architecture 64 bits qui alimente les puces Itanium; il n'y avait jamais rien de tel qu'un Itanium 32 bits.
IMSoP
9
Windows CE n'était pas une variante ou un port de NT. Il avait son propre noyau unique et différent, y compris une architecture de processus et une carte mémoire très différentes. Beaucoup de code NT y a été transféré à partir du système d'exploitation, par exemple la totalité de la pile réseau et bien d'autres choses encore, et bien sûr au niveau de l'utilisateur, il supportait l'API Windows.
davidbak
7
Windows CE fonctionnait également sur certaines variantes des processeurs Hitachi Super-H. Un exemple célèbre est la Dreamcast Sega (SH4), mais je pense aussi que certains PDA basés sur le SH3 utilisaient Windows CE.
Michael
3
Windows Phone est un nom marketing. Jusqu'à WP7, il faisait partie de la ligne CE, WP8 est un dérivé de NT. De même, Windows 10 IOT est également un noyau NT sur mesure, de même que la génération 3 de XBoxen.
MSalters
21

Windows XP 64 bits et Windows Server 2003-2008R2 prennent en charge l'architecture Intel Itanium IA-64.

JamesRyan
la source
15

Les tablettes Windows Surface publiées en 2012 utilisaient une architecture ARM 32 bits . Cette version spécifique s'appelait Windows RT :

Il s’agit essentiellement d’une édition de Windows 8.x conçue pour l’architecture ARM 32 bits (ARMv7).

[…]

En raison de l’architecture différente des périphériques ARM par rapport aux périphériques x86, Windows RT présente des limitations de compatibilité logicielle.

Windows RT a été abandonné.

Source: Wikipedia .

AL
la source
3

Windows 10 IoT Core s'exécute sur des architectures ARM 32 bits (IA-32, ARMv7), telles que le Raspberry Pi 3. Il comporte toutefois certaines limitations.

Sources:

Ghanima
la source
3

La ligne Windows NT a pris en charge diverses architectures au fil des ans.

MIPS et Alpha ont été pris en charge de la version 3.1 à la version 4.0 (Alpha a même été retenu comme candidat à la publication pour Windows 2000 , mais il n’a pas été rendu dans la version finale). PowerPC a été vu dans 4.0 seulement.

IA64 (Itanium) était pris en charge par Windows XP. Il était également pris en charge sur la ligne serveur de Server 2003 à Server 2008 R2.

Microsoft a porté Windows sur ARM, mais a artificiellement paralysé les systèmes résultants de différentes manières. Avec Windows RT (la version ARM de Windows 8), le système était pratiquement complet, mais les applications de bureau tierces étaient verrouillées. Avec les différentes variantes ARM de Windows 10, le bureau semble avoir complètement disparu.

plugwash
la source
1

Windows NT (en tant que noyau dans Windows RT, WP8, WP8.1 et Windows 10 pour les téléphones) prend en charge les versions ARM v7-A (32 bits) et ARM v8-A (64 bits) (Windows 10 pour les téléphones actuellement en attente). Lumia 950 / 950XL avec le chipset Qualcomm Snapdragon 810) en plus des architectures x86 (y compris x86-64 (Windows AMD64), i386 / i586 / i686 (Windows x86)). Cela s'ajoute aux architectures historiquement prises en charge mentionnées dans d'autres réponses telles que Alpha, MIPS, Itanium et PowerPC.

Comme indiqué dans une autre réponse, les applications de bureau Win32 ne peuvent pas être exécutées de manière native sur Windows NT sur ARM (c'est-à-dire sans émulation x86 sur ARM) si elles sont compilées pour l'architecture x86 (comme elles le sont pour la plupart). Cependant, comme mentionné par @utilisateur 2284570, les exécutables natifs ARM ou les bibliothèques dynamiques peuvent s'exécuter dans Windows NT pour ARM uniquement s'ils ont été signés numériquement par Microsoft, ce qui empêche la distribution de développeurs tiers d'applications natives ARM. (contrairement à la politique avec x86 ou à d'autres architectures précédemment prises en charge, par exemple). Microsoft a choisi de ne pas prendre en charge les applications Win32 ciblées sur x86 (logiciel Desktop Windows) à un niveau binaire via une émulation sous Windows pour ARM, car les performances de l'émulation seraient énormes et totalement contraires à l'idéal de performances ARM avec un budget énergétique réduit (faible TDP). ).

Remarque: L'API Windows à laquelle je fais référence ici est l'API native Win32 , pas la version .NET WINAPI ( gérée ). La compatibilité des applications fait ici référence à la compatibilité au niveau binaire, et non à la compatibilité au niveau de la source, si ce n'était pas apparent.

Cependant, avec l'avènement de la plate-forme Windows RT et à présent de la plate-forme universelle Windows (UWP), la création d'un logiciel sans architecture pour Windows est devenue une possibilité (auparavant, les logiciels devaient être émulés ou recompilés pour être exécutés sous Windows sur différentes architectures). .

Tamoghna Chowdhury
la source
MS a refusé d'autoriser les applications de bureau tierces sur le bras, même si elles étaient recompilées. Il s'agissait d'une restriction purement artificielle (comme en témoigne le fait que quelqu'un a trouvé un moyen de la contourner)
plugwash
@ plugwash J'ai en fait mentionné l'artificialité des restrictions sur l'exécution d'applications de bureau compilées pour ARM dans le deuxième paragraphe. Lisez-le s'il vous plaît.
Tamoghna Chowdhury le
-1

Windows NT fonctionnait sur les puces MIPS et Alpha. J'ai couru NT4 sur un Alpha. Vous avez dû flasher un autre firmware pour démarrer NT au lieu de VMS.

méfiant
la source