Microsoft Windows Internals, 4-е издание говорит:
Архитектура процессора Intel x86 определяет четыре уровня привилегий, или кольца, для защиты системного кода и данных от случайной или злонамеренной перезаписи кодом меньшей привилегии. Windows использует уровень привилегий 0 (или кольцо 0) для режима ядра и уровень привилегий 3 (или кольцо 3) для режима пользователя. Причина, по которой Windows использует только два уровня, заключается в том, что некоторые аппаратные архитектуры, которые поддерживались в прошлом (например, Compaq Alpha и Silicon Graphics MIPS), реализовали только два уровня привилегий .
Означает ли это, что Windows когда-то поддерживала альфа и MIPS?
windows
privileges
x86
mips
xiaokaoy
источник
источник
Ответы:
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.
Windows Phone
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 RT была прекращена.
Источник: Википедия .
источник
Windows 10 IoT Core работает на 32-битной архитектуре ARM (IA-32, ARMv7), такой как Raspberry Pi 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 рабочий стол, кажется, полностью исчез.
источник
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.
источник