Поддерживала ли когда-либо Windows какие-либо аппаратные архитектуры, кроме x86?

Microsoft Windows Internals, 4-е издание говорит:

Архитектура процессора Intel x86 определяет четыре уровня привилегий, или кольца, для защиты системного кода и данных от случайной или злонамеренной перезаписи кодом меньшей привилегии. Windows использует уровень привилегий 0 (или кольцо 0) для режима ядра и уровень привилегий 3 (или кольцо 3) для режима пользователя. Причина, по которой Windows использует только два уровня, заключается в том, что некоторые аппаратные архитектуры, которые поддерживались в прошлом (например, Compaq Alpha и Silicon Graphics MIPS), реализовали только два уровня привилегий.

Означает ли это, что Windows когда-то поддерживала альфа и MIPS?

8 ответов

Решение

Microsoft выпустила Windows NT 3.1 в 1993 году как первую чисто 32-разрядную версию Windows.

Windows NT была разработана как мульти-архитектурная операционная система. Первоначально поддерживал различные архитектуры ЦП, включая IA-32, DEC Alpha, MIPS и PowerPC.

Первоначальная идея заключалась в том, чтобы иметь общую кодовую базу с настраиваемым уровнем аппаратной абстракции (HAL) для каждой платформы. Однако поддержка MIPS, Alpha и PowerPC позднее была прекращена в Windows 2000.

Насколько я знаю, существует 8 базовых архитектур (и несколько подвариантов), из которых только 2 до сих пор поддерживаются в Windows 10.

Windows 1.0 до 3.11, Windows 95, 98 и Millenium Edition

x86 (16-битные и 32-битные варианты, включая 8086, 80186, 80286, 80386, 80486, Pentium, Pentium Pro, Pentium II, Pentium III, P4, Core, Core Duo, Core-I и различные конструкции Celeron и Atom.) Это также включает в себя различные совместимые процессоры AMD и NEC.

Windows CE

MIPS, x86, ARM (спасибо @ pjc50).
(Не уверен, что CE когда-либо работал на Alpha, PowerPC.)

Windows NT

x86, x64 (или amd64, используются оба названия), MIPS, Alpha, IA32, IA64, PowerPC.
Поддержка MIPS, Alpha и PowerPC была прекращена в Windows 2000. Itanium был сервером, начиная только с Windows 2000, и 32-разрядный (IA32) был отброшен в 2008 г. и 64-разрядный (IA64) с Server 2012, если я правильно помню. Только x86 (ограниченный некоторыми специальными нетбуками / планшетами) и x64 в настоящее время все еще действительны для Windows 10.

телефон с операционной системой Виндоус

ARM, (может быть, также MIPS?)

Windows 10 для IoT

х64, ARM

Windows XP 64bit и Windows Server 2003-2008R2 поддерживают архитектуру Intel Itanium IA-64.

Планшеты Windows Surface, выпущенные в 2012 году, использовали 32-разрядную архитектуру ARM, эта конкретная версия называлась Windows RT:

По сути, это версия Windows 8.x, созданная для 32-битной архитектуры ARM (ARMv7).

[...]

Из-за разной архитектуры устройств на базе ARM по сравнению с устройствами x86 Windows RT имеет ограничения совместимости программного обеспечения.

Windows RT была прекращена.

Источник: Википедия.

Линия Windows NT поддерживает различные архитектуры на протяжении многих лет.

MIPS и Alpha поддерживались с версии 3.1 до 4.0 (Alpha фактически добралась до версии для выпуска Windows 2000, но до финального выпуска не добралась). PowerPC был замечен только в 4.0.

IA64 (Itanium) поддерживался в Windows XP. Это также поддерживалось в линейке серверов от Server 2003 до Server 2008 R2.

Microsoft портировала Windows на ARM, но затем различными способами искусственно повредила получившиеся системы. С Windows RT (ARM-версия Windows 8) система была в значительной степени завершена, но сторонние настольные приложения были заблокированы. С различными вариантами ARM в Windows 10 рабочий стол, кажется, полностью исчез.

Windows 10 IoT Core работает на 32-битных архитектурах ARM (IA-32, ARMv7), таких как Raspberry Pi 3. Однако он имеет определенные ограничения.

Источники:

Windows NT (как ядро ​​в Windows RT, WP8, WP8.1 и Windows 10 для телефонов) поддерживает ARM v7-A (32-разрядный) и ARM v8-A (64-разрядный) (Windows 10 для телефонов, в настоящее время Архитектуры Lumia 950/950XL с чипсетом Qualcomm Snapdragon 810) в настоящее время дополняют архитектуру x86 (включая x86-64 (Windows AMD64), i386/i586/i686 (Windows x86)). Это в дополнение к исторически поддерживаемым архитектурам, упомянутым в других ответах, таких как Alpha, MIPS, Itanium и PowerPC.

Как отмечалось в другом ответе, настольные приложения Win32 не могут работать в Windows NT на ARM (т.е. без x86 на эмуляции ARM), если они скомпилированы для архитектуры x86 (как это обычно бывает). Однако, как упоминалось в @user 2284570, собственные исполняемые файлы ARM или динамические библиотеки могут работать в Windows NT для ARM, только если они (двоичные файлы распространения) были подписаны цифровой подписью Microsoft, что препятствует распространению сторонними разработчиками собственных приложений ARM. (в отличие от политики с x86 или другими ранее поддерживаемыми архитектурами, например). Microsoft решила не поддерживать ориентированные на x86 приложения Win32 (программное обеспечение Windows для настольных ПК) на двоичном уровне посредством эмуляции в Windows для ARM, поскольку снижение производительности для эмуляции будет огромным и полностью по сравнению с ARM-идеалом производительности при ограниченном энергопотреблении (низкий TDP)).

Примечание: Windows API, на который я ссылаюсь здесь, является родным API Win32, а не.NET WINAPI (управляемой) версией. Под совместимостью приложений здесь подразумевается совместимость на двоичном уровне, а не на уровне исходного кода, если это не было очевидно.

Однако с появлением платформы Windows RT, а теперь и универсальной платформы Windows (UWP) стало возможным создание независимого от архитектуры программного обеспечения для Windows (ранее программное обеспечение должно было либо эмулироваться, либо перекомпилироваться для запуска в Windows на разных архитектурах).,

Windows NT раньше работала на чипах MIPS и Alpha. Я запустил NT4 на Альфе. Вам пришлось прошить другую прошивку для загрузки NT вместо VMS.

Другие вопросы по тегам