¿Windows alguna vez admitió arquitecturas de hardware que no sean x86?

66

Microsoft Windows Internals, 4th Edition dice:

La arquitectura del procesador Intel x86 define cuatro niveles de privilegios, o anillos, para proteger el código del sistema y los datos para que no se sobrescriban de forma inadvertida o malintencionada con un código de menor privilegio. Windows usa el nivel de privilegio 0 (o anillo 0) para el modo kernel y el nivel de privilegio 3 (o anillo 3) para el modo de usuario. La razón por la que Windows usa solo dos niveles es que algunas arquitecturas de hardware que eran compatibles en el pasado (como Compaq Alpha y Silicon Graphics MIPS) implementaron solo dos niveles de privilegio .

¿Significa esto que Windows una vez admitió Alpha y MIPS?

xiaokaoy
fuente
49
Puede ser difícil de creer, pero Microsoft fue una de las compañías de "arquitectura más abierta" del mundo. El MS-DOS original era compatible con decenas de plataformas diferentes y otros sistemas operativos , y Windows fue diseñado en la misma línea. Excel se creó en una máquina virtual que se ejecuta en muchas plataformas diferentes. Esto no fue un accidente: así es como la PC de IBM (y los clones) se convirtió en el estándar de facto de manera tan generalizada y rápida, y cómo Microsoft fue quien suministró el software básico. ¿Cuál eliges: el sistema que puede ejecutar todas tus aplicaciones o el que tiene tu proveedor bloqueado? :)
Luaan
13
Yo mismo instalé Windows en Alpha y MIPS, pero eso fue hace mucho, mucho tiempo. Cuando era pasante de Microsoft, uno de mis trabajos era ejecutar las suites de prueba de Visual Basic en el hardware que los desarrolladores no tenían en sus escritorios.
Eric Lippert
77
@Luaan: ¡no solo "arquitectura abierta" sino también "sistema operativo abierto"! ¿De qué otra manera puede explicar que en algún momento su variante de Unix con licencia oficial era el Unix instalado más común en el mundo? Vea Xenix en Wikipedia .
davidbak
44
Incluso hoy en día, hay versiones de Windows que se ejecutan en arquitecturas distintas de x86 / x64, a saber, Windows RT para dispositivos ARM.
TigerhawkT3
2
@Luaan También era un problema real que necesitaba solución porque los clones de PC de IBM particularmente tempranos no siempre eran totalmente compatibles con PC de IBM. En el pasado, la "compatibilidad 100% de IBM" fue un punto de venta para los vendedores de hardware. Hoy damos por sentado ese tipo de cosas, pero en la primera mitad de la década de 1980 más o menos, no estaban garantizadas en absoluto. Microsoft realmente no se movió al mercado minorista de sistemas operativos antes de MS-DOS 5.0, que llegó al mercado en 1991. Sí, un año después de la innovadora historia de éxito de Windows 3.0.
un CVn

Respuestas:

82

Microsoft lanzó Windows NT 3.1 en 1993 como la primera versión puramente de 32 bits de Windows.

Windows NT se desarrolló como un sistema operativo de arquitectura múltiple. Inicialmente admitía diferentes arquitecturas de CPU, incluidas IA-32, DEC Alpha, MIPS y PowerPC.

La idea original era tener una base de código común con una Capa de abstracción de hardware (HAL) personalizada para cada plataforma. Sin embargo, el soporte para MIPS, Alpha y PowerPC se eliminó más tarde en Windows 2000 .

jcbermu
fuente
77
IIRC, la página de Wikipedia , tiene una cartilla decente sobre los detalles de qué arquitecturas, quién lo hizo y por qué no llegaron al mercado.
Journeyman Geek
13
Creo que la plataforma de desarrollo original era i860. Esta fue una elección deliberada para evitar que los '386-ismos' ingresen al diseño. Por un tiempo, Microsoft también lanzó aplicaciones para diferentes arquitecturas; Tengo un CD de Word para Windows 6 creado para Windows NT en i386, Alpha, MIPS y PowerPC.
Ed Avis
44
Recuerdo haber intentado comprar software de Microsoft en nuestros sistemas Alpha NT, los vendedores de Microsoft en el Reino Unido no sabían qué era una CPU Alpha. DEC nos dio las máquinas muy baratas como ISP, al final solo les pusimos Unix y las usamos como X-Terms en lugar del proyecto para portar a NT.
Ian Ringrose
44
"La idea original era tener una base de código común con una Capa de abstracción de hardware (HAL) personalizada para cada plataforma" hace que parezca que no hay una HAL real en estos días, lo que sería incorrecto. Para un Windows NT en estos días también es compatible con ARM en estos días e incluso si solo es compatible con x86 hay una amplia gama de revisiones para x86 (la más grande obviamente es x64) y correcciones de errores para diversos procesadores, placas base y cualquier otra cosa.
Voo
44
También había un puerto de terceros para Sparc. Más tarde, el soporte de PowerPC resucitó para XBox360. Poco antes de eso, se agregó soporte IA64. Después de eso, se agregó soporte AMD64. La última incorporación es el soporte ARM. La plataforma de desarrollo original era i860; nunca tuvo la intención de lanzarse para esa plataforma, se hizo simplemente porque era "extraño" y muy diferente de x86, PowerPC, MIPS y Co, para garantizar la portabilidad.
Jörg W Mittag
46

Hasta donde sé, hay 8 arquitecturas de base (y una serie de sub-variantes) de las cuales solo 2 todavía son compatibles con Windows 10.

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

x86 (variantes de 16 bits y 32 bits, incluyendo 8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III, P4, Core, Core Duo, Core-I y varios diseños de Celeron y Atom). también incluye varias CPU AMD y NEC compatibles.

Windows CE

MIPS, x86, ARM (gracias @ pjc50).
(No estoy seguro si CE alguna vez se ejecutó en Alpha, PowerPC).

Windows NT

x86, x64 (o amd64, se usan ambos nombres), MIPS, Alpha, IA32, IA64, PowerPC.
La compatibilidad con MIPS, Alpha y PowerPC se eliminó en Windows 2000. Itanium era un servidor que solo comenzaba con Windows 2000 y 32 bits (IA32) se eliminó para 2008 y 64 bits (IA64) con Server 2012 si recuerdo correctamente. Solo x86 (limitado a algunos dispositivos netbook / tablet especializados) y x64 todavía son válidos para Windows 10.

Telefono windows

BRAZO, (tal vez también MIPS?)

Windows 10 para IoT

x64, BRAZO

Tonny
fuente
2
Windows NT como Windows 10 para teléfonos admite ARM.
Tamoghna Chowdhury
16
"IA-32" significa "x86 de 32 bits", que es la única versión de x86 compatible con Windows NT hasta que apareció x64 / AMD64. Podría decirse que x64 / AMD64 es solo una variante de x86, aunque Windows tiene herramientas extensas específicamente para manejar sus diferencias. "IA-64", por otro lado, es la arquitectura completamente nueva de 64 bits que alimentaba chips Itanium; nunca hubo tal cosa como un Itanium de 32 bits.
IMSoP
99
Windows CE no era una variante de NT o un puerto de NT. Tenía su propio núcleo único y diferente, que incluía una arquitectura de proceso y un mapa de memoria bastante diferentes. Las porciones de código de NT fue portado a la misma desde el sistema operativo, por ejemplo, toda la pila de red y mucho más, y por supuesto a nivel de espacio de usuario que apoyó la API de Windows ..
davidbak
77
Windows CE también se ejecutó en algunas variantes de los procesadores Hitachi Super-H. Un ejemplo famoso es el Sega Dreamcast (SH4), pero también creo que hubo algunos PDA basados ​​en el SH3 que ejecutaban Windows CE.
Michael
3
Windows Phone es un nombre comercial. Hasta WP7 era parte de la línea CE, WP8 es un derivado de NT. De manera similar, Windows 10 IOT también es un kernel de NT a medida, como lo son las 3 generaciones de XBoxen.
MSalters
21

Windows XP 64bit y Windows Server 2003-2008R2 son compatibles con la arquitectura Intel Itanium IA-64.

JamesRyan
fuente
15

Las tabletas Windows Surface lanzadas en 2012 usaban una arquitectura ARM de 32 bits , esta versión específica se llamaba Windows RT :

Es esencialmente una edición de Windows 8.x creada para la arquitectura ARM de 32 bits (ARMv7).

[...]

Debido a la diferente arquitectura de los dispositivos basados ​​en ARM en comparación con los dispositivos x86, Windows RT tiene limitaciones de compatibilidad de software.

Windows RT ha sido descontinuado.

Fuente: Wikipedia .

Alabama
fuente
3

Windows 10 IoT Core se ejecuta en arquitecturas ARM de 32 bits (IA-32, ARMv7), como Raspberry Pi 3. Sin embargo, tiene ciertas limitaciones.

Fuentes:

Ghanima
fuente
3

La línea Windows NT ha soportado varias arquitecturas a lo largo de los años.

MIPS y Alpha recibieron soporte de 3.1 a 4.0 (Alpha en realidad llegó a ser un candidato de lanzamiento para Windows 2000 , pero no llegó a la versión final). PowerPC se vio solo en 4.0.

IA64 (Itanium) fue compatible con Windows XP. También fue compatible en la línea del servidor desde Server 2003 hasta Server 2008 R2.

Microsoft ha portado Windows a ARM pero luego ha dañado artificialmente los sistemas resultantes de varias maneras. Con Windows RT (la versión ARM de Windows 8) el sistema estaba bastante completo, pero las aplicaciones de escritorio de terceros estaban bloqueadas. Con las diversas variantes ARM de Windows 10, el escritorio parece haberse ido por completo.

lavado
fuente
1

Windows NT (como el núcleo en Windows RT, WP8, WP8.1 y Windows 10 para teléfonos) es compatible con ARM v7-A (32 bits) y ARM v8-A (64 bits) (Windows 10 para teléfonos actualmente en el Lumia 950 / 950XL con arquitecturas Qualcomm Snapdragon 810 chipset actualmente además de x86 (incluyendo x86-64 (Windows AMD64), i386 / i586 / i686 (Windows x86)). Esto se suma a las arquitecturas históricamente respaldadas mencionadas en otras respuestas como Alpha, MIPS, Itanium y PowerPC.

Como se señaló en otra respuesta, las aplicaciones de escritorio Win32 no pueden ejecutarse de forma nativa en Windows NT en ARM (es decir, sin x86 en la emulación ARM) si se compilan para la arquitectura x86 (como lo son en su mayoría). Sin embargo, como lo menciona @user 2284570, los ejecutables nativos de ARM o las bibliotecas dinámicas pueden ejecutarse en Windows NT para ARM solo si ellos (los binarios de distribución) han sido firmados digitalmente por Microsoft, cuya oficina obstruye la distribución de aplicaciones nativas de ARM por parte de desarrolladores externos. (a diferencia de la política con x86 u otras arquitecturas compatibles anteriormente, por ejemplo). Microsoft decidió no admitir aplicaciones Win32 dirigidas a x86 (software de Windows de escritorio) a nivel binario a través de la emulación en Windows para ARM, ya que la penalización de rendimiento para la emulación sería enorme y completamente contra el ideal ARM de rendimiento en un presupuesto de energía ajustado (bajo TDP )

Nota: La API de Windows a la que me refiero aquí es la API nativa de Win32 , no la versión .NET WINAPI ( administrada ). La compatibilidad de la aplicación se refiere a la compatibilidad a nivel binario aquí, no a la compatibilidad a nivel de fuente, si eso no fuera evidente.

Sin embargo, con el advenimiento de la plataforma Windows RT y ahora la Plataforma Universal de Windows (UWP), la creación de software independiente de la arquitectura para Windows se ha convertido en una posibilidad (anteriormente el software tenía que ser emulado o recompilado para ejecutarse en Windows en diferentes arquitecturas) .

Tamoghna Chowdhury
fuente
MS se negó a permitir aplicaciones de escritorio de terceros en el brazo, incluso si fueron compiladas para ello. Esta fue una restricción puramente artificial (como lo demuestra el hecho de que alguien encontró una manera de evitarlo)
enchufe el
@plugwash De hecho, he mencionado la artificialidad de las restricciones para ejecutar aplicaciones de escritorio compiladas para ARM en el segundo párrafo. Por favor leelo.
Tamoghna Chowdhury
-1

Windows NT solía ejecutarse en chips MIPS y Alpha. Ejecuté NT4 en un Alpha. Tuvo que actualizar un firmware diferente para iniciar NT en lugar de VMS.

cauteloso
fuente