Question Windows a-t-il déjà supporté des architectures matérielles autres que x86?


Microsoft Windows Internals, 4ème édition dit:

L’architecture du processeur Intel x86 définit quatre privilèges   niveaux, ou des anneaux, pour protéger le code système et les données d'être   écrasé par inadvertance ou par malveillance par code de moindre   privilège. Windows utilise le niveau de privilège 0 (ou ring 0) pour le mode noyau   et le niveau de privilège 3 (ou anneau 3) pour le mode utilisateur. La raison Windows   utilise seulement deux niveaux est que certaines architectures matérielles qui étaient   pris en charge par le passé (tels que Compaq Alpha et Silicon Graphics MIPS)   implémenté seulement deux niveaux de privilège.

Est-ce que cela signifie que Windows supportait une fois Alpha et MIPS?


66
2018-04-07 08:03


origine


C'est peut-être difficile à croire, mais Microsoft était l'une des sociétés les plus «à architecture ouverte» au monde. Le MS-DOS d'origine était compatible avec des dizaines de plates-formes différentes et autres OS, et Windows a été conçu dans la même veine. Excel a été construit sur une machine virtuelle fonctionnant sur de nombreuses plates-formes différentes. Ce n'était pas un hasard - c'est ainsi que IBM PC (et les clones) sont devenus la norme de facto de manière si systématique et rapide que Microsoft a fourni le logiciel de base. Lequel choisissez-vous - le système qui peut exécuter toutes vos applications, ou celui avec lequel votre fournisseur est bloqué? :) - Luaan
J'ai moi-même installé Windows sur Alpha et MIPS, mais c'était il y a très longtemps. Lorsque j'étais stagiaire chez Microsoft, l’une de mes tâches consistait à exécuter les suites de tests Visual Basic sur le matériel que les développeurs n’avaient pas sur leur bureau. - Eric Lippert
@Luaan - pas seulement "architecture ouverte" mais aussi "open OS"! Sinon, comment pouvez-vous expliquer qu’à une époque, leur variante Unix sous licence officielle était la le plus courant installé Unix dans le monde - voir Xenix sur Wikipedia. - davidbak
Même aujourd'hui, il existe des versions de Windows qui s'exécutent sur des architectures autres que x86 / x64, à savoir Windows RT pour les périphériques ARM. - TigerhawkT3
@Luaan C'était aussi un vrai problème qui devait être résolu car les clones d'IBM PC particulièrement précoces n'étaient pas toujours entièrement compatibles avec IBM PC. A l’époque, la compatibilité 100% IBM était un point 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 1980, elles n'étaient pas du tout garanties. Microsoft ne s'est pas vraiment déplacé sur le marché des systèmes d'exploitation avant MS-DOS 5.0 qui a été mis sur le marché en 1991. Oui, un an après l’histoire révolutionnaire de Windows 3.0. - Michael Kjörling


Réponses:


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

Windows NT a été développé en tant que système d'exploitation multi-architecture. Initialement pris en charge différentes architectures de processeur, y compris IA-32, DEC Alpha, MIPS et PowerPC.

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


82
2018-04-07 08:14



L'IIRC le Wikipédia La page contient une introduction décente sur les détails de l’architecture, qui l’a fait et pourquoi elle n’a pas été commercialisée. - Journeyman Geek♦
Je crois que la plate-forme de développement d'origine était i860. C’était un choix délibéré d’arrêter le «386-isms». Pendant un 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
Je me souviens avoir essayé d'acheter des logiciels de Microsoft sur nos systèmes Alpha NT, les vendeurs de Microsoft au Royaume-Uni ne savaient pas ce qu'était un processeur Alpha. DEC nous a donné les machines très peu coûteuses en tant que FAI, à la fin nous avons juste mis unix sur elles et les avons utilisées comme X-Terms plutôt que pour que le projet soit porté sur NT. - Ian Ringrose
«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», ce qui donne l’impression qu’il n’existe pas de couche HAL réelle, ce qui serait incorrect. Pour un Windows NT ces jours-ci prend également en charge ARM et même si vous ne supportez que x86, il existe un large éventail de révisions pour x86 (la plus importante étant évidemment x64) et des corrections de bugs pour différents processeurs, cartes mères et autres. - Voo
Il y avait aussi un port tiers à Sparc. Plus tard, le support PowerPC a été ressuscité pour le XBox360. Peu de temps auparavant, le support IA64 a été ajouté. Après cela, le support AMD64 a été ajouté. Le dernier ajout est le support ARM. le original la plate-forme de développement était i860; il n'a jamais été conçu pour sortir sur cette plate-forme, mais uniquement parce qu'il était "bizarre" et au maximum différent de x86, PowerPC, MIPS et Co, afin de garantir la portabilité. - Jörg W Mittag


Pour autant que je sache, il existe 8 architectures de base (et un certain nombre de sous-variantes), dont 2 seulement sont encore supportées par 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). comprend également divers processeurs AMD et NEC compatibles.

Windows CE

MIPS, x86, ARM (merci @ pjc50).
(Je ne suis pas sûr que CE ait jamais 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 dans Windows 2000. Itanium était serveur uniquement à partir de Windows 2000 et 32 ​​bits (IA32) a été supprimé pour 2008 et 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 encore valables pour Windows 10.

Téléphone Windows

ARM (peut-être aussi MIPS?)

Windows 10 pour IoT

x64, ARM


46
2018-04-07 13:31



Windows NT comme Windows 10 pour les téléphones prend en charge ARM. - Tamoghna Chowdhury
"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 soit disponible. On peut dire que x64 / AMD64 est juste une variante de x86, bien que Windows dispose de nombreux outils spécifiques pour gérer ses différences. "IA-64", d’autre part, 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
Windows CE était ne pas une variante NT ou un port de NT. Il possédait un noyau unique et différent, comprenant une architecture de processus et une carte mémoire très différentes. Beaucoup de code NT était porté à partir de l'OS, par exemple, la pile de réseau entière et beaucoup d'autres choses, et bien sûr au niveau de l'utilisateur, il a pris en charge l'API Windows. - davidbak
Windows CE fonctionnait également sur certaines variantes des processeurs Hitachi Super-H. Un exemple célèbre est le Dreamcast Sega (SH4), mais je pense aussi qu'il y avait des PDA basés sur le SH3 qui exécutait Windows CE. - Michael
Windows Phone est un nom marketing. Jusqu'au WP7, il faisait partie de la ligne CE, WP8 est un dérivé NT. De même, Windows 10 IOT est également un noyau NT sur mesure, tout comme la génération 3 de XBoxen. - MSalters


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


21
2018-04-07 11:52





Les tablettes Windows Surface publiées en 2012 utilisaient un Architecture ARM 32 bits, cette version spécifique a été nommée Windows RT:

Il s'agit essentiellement d'une édition de Windows 8.x construite pour l'architecture ARM 32 bits (ARMv7).

[...]

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

Windows RT a été interrompu.

La source: Wikipédia.


15
2018-04-07 13:09





Windows 10 Core IoT fonctionne sur des architectures ARM 32 bits (IA-32, ARMv7), telles que le Raspberry Pi 3. Cependant, il présente certaines limitations.

Sources:


3
2018-04-07 17:56





le Windows NT line a soutenu diverses architectures au fil des ans.

MIPS et Alpha ont été pris en charge de 3.1 à 4.0 (Alpha en fait jusqu'à une version candidate pour Windows 2000, mais il n'est pas parvenu à la version finale). PowerPC a été vu dans 4.0 seulement.

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

Microsoft a porté Windows sur ARM, mais a paralysé artificiellement les systèmes résultants de différentes manières. Avec Windows RT (la version ARM de Windows 8), le système était pratiquement terminé, 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.


3
2018-04-07 13:20





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

Comme noté dans une autre réponse, les applications de bureau Win32 ne peuvent pas s'exécuter 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 (car elles sont principalement). Cependant, comme mentionné par @user 2284570, les exécutables natifs ARM ou les bibliothèques dynamiques ne peuvent s'exécuter sous Windows NT pour ARM que s'ils (les binaires de distribution) ont été signés numériquement par Microsoft, (contrairement à la politique avec x86 ou 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 (logiciels Desktop Windows) au niveau binaire via une émulation sous Windows pour ARM, car la pénalisation des performances pour l’émulation serait énorme et totalement contraire aux performances ARM dans un budget serré ).

Remarque: L'API Windows auquel je fais référence ici est le Win32 originaire de API, pas le WINAPI .NET (géré) version. La compatibilité de l'application fait référence à la compatibilité au niveau binaire ici, et non à la compatibilité au niveau de la source, si cela n'était pas apparent.

Cependant, avec l’avènement de la plate-forme Windows RT et maintenant de la plate-forme Windows universelle (UWP), la création de logiciels indépendants de l’architecture pour Windows est devenue une possibilité (auparavant, les logiciels devaient être .


1
2018-04-07 13:49



MS a refusé d'autoriser des applications de bureau tierces sur le marché même si elles ont été recompilées. C'était 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 effet mentionné le caractère artificiel des restrictions sur l'exécution d'applications de bureau compilées pour ARM au deuxième paragraphe. Lisez-le s'il vous plaît. - Tamoghna Chowdhury


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


-1
2018-04-07 13:21