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?
windows
privileges
x86
mips
xiaokaoy
fuente
fuente
Respuestas:
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 .
fuente
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
fuente
Windows XP 64bit y Windows Server 2003-2008R2 son compatibles con la arquitectura Intel Itanium IA-64.
fuente
Las tabletas Windows Surface lanzadas en 2012 usaban una arquitectura ARM de 32 bits , esta versión específica se llamaba Windows RT :
Windows RT ha sido descontinuado.
Fuente: Wikipedia .
fuente
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:
fuente
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.
fuente
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) .
fuente
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.
fuente