66

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

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

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

8 ответов8

82

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

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

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

46

Насколько я знаю, существует 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

21

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

15

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

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

[...]

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

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

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

3

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

Источники:

3

Линия 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 рабочий стол, кажется, полностью исчез.

1

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 предпочла не поддерживать приложения Win32 для x86 (программное обеспечение Windows для настольных ПК) на двоичном уровне посредством эмуляции в Windows для ARM, поскольку снижение производительности для эмуляции было бы огромным и полностью соответствовало идеалу ARM для производительности при ограниченном энергопотреблении (низкий TDP).

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

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

-1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .