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


66

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

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

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


49
В это может быть трудно поверить, но Microsoft была одной из самых «открытых архитектурных» компаний в мире. Оригинальная MS-DOS была совместима с десятками различных платформ и других ОС , и Windows была разработана в том же духе. Excel был построен на виртуальной машине, работающей на разных платформах. Это было не случайно - именно так IBM PC (и его клоны) стали настолько распространенным и быстрым стандартом де-факто, и именно Microsoft стала поставщиком базового программного обеспечения. Что вы выбираете - систему, которая может запускать все ваши приложения, или систему, в которой ваш поставщик заблокирован? :)
Luaan

13
Я сам установил Windows на Alpha и MIPS, но это было очень давно. Когда я был стажером Microsoft, одной из моих задач было запускать наборы тестов Visual Basic на оборудовании, которого разработчики не имели на своих рабочих столах.
Эрик Липперт

7
@Luaan - не только «открытая архитектура», но и «открытая ОС»! Как еще можно объяснить, что когда-то их официально лицензированный вариант Unix был самым распространенным установленным Unix в мире - см. Xenix в Википедии .
Давидбак

4
Даже сегодня существуют версии Windows, которые работают на архитектурах, отличных от x86 / x64, а именно Windows RT для устройств ARM.
TigerhawkT3

2
@Luaan Это была также реальная проблема, которую нужно было решить, потому что особенно ранние клоны IBM PC не всегда были полностью совместимы с IBM PC. В свое время «100% совместимость с IBM» была точкой продажи для поставщиков оборудования. Мы принимаем такие вещи как должное сегодня, но в первой половине 1980-х годов или около того, они вообще не были гарантированы. Microsoft на самом деле не выходила на розничный рынок операционных систем до MS-DOS 5.0, которая появилась на рынке в 1991 году. Да, через год после новаторского успеха Windows 3.0.
CVn

Ответы:


82

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

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

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


7
На странице Википедии IIRC есть неплохой учебник о том, какие архитектуры, кто это сделал и почему они не появились на рынке.
Подмастерье Компьютерщик

13
Я считаю, что оригинальной платформой разработки был i860. Это был осознанный выбор, чтобы не допустить попадания «386 измов» в дизайн. Некоторое время Microsoft также выпускала приложения для разных архитектур; У меня есть компакт-диск Word для Windows 6, созданный для Windows NT на i386, Alpha, MIPS и PowerPC.
Эд Авис

4
Я вспоминаю, как пытался купить программное обеспечение у Microsoft при работе на наших системах Alpha NT, продавцы Microsoft в Великобритании не знали, что такое процессор Alpha. DEC предоставил нам машины очень дешево в качестве интернет-провайдера, в итоге мы просто установили на них unix и использовали их как X-условия, а не как проект для переноса на NT.
Ян Рингроз

4
«Первоначальная идея заключалась в том, чтобы иметь общую кодовую базу с настраиваемым уровнем аппаратной абстракции (HAL) для каждой платформы», - звучит так, будто в эти дни не существует фактического HAL, что было бы неправильно. В наши дни для одной Windows NT также поддерживается ARM, и даже если вы поддерживаете только x86, существует широкий спектр ревизий для x86 (самой большой из которых, очевидно, является x64) и исправлений для различных процессоров, материнских плат и всего остального.
Во

4
Был также сторонний порт в Sparc. Позднее была восстановлена ​​поддержка PowerPC для XBox360. Незадолго до этого была добавлена ​​поддержка IA64. После этого была добавлена ​​поддержка AMD64. Последнее дополнение - поддержка ARM. Оригинальная платформа развития была i860; он никогда не предназначался для этой платформы, он был сделан исключительно потому, что он был «странным» и максимально отличался от x86, PowerPC, MIPS и Co, чтобы обеспечить мобильность.
Йорг Миттаг

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.

Windows Phone

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

Windows 10 для IoT

х64, ARM


2
Windows NT как Windows 10 для телефонов поддерживает ARM.
Тамогна Чоудхури

16
«IA-32» означает «32-разрядная версия x86», которая является единственной версией x86, поддерживаемой Windows NT до появления x64 / AMD64. Возможно, x64 / AMD64 - это всего лишь вариант x86, хотя Windows обладает обширными инструментами, специально предназначенными для обработки его различий. "IA-64", с другой стороны, является совершенно новой 64-битной архитектурой, которая питает чипы Itanium; никогда не было такой вещи, как 32-битный Itanium.
IMSoP

9
Windows CE не был вариантом NT или портом NT. У него было свое уникальное и отличное ядро, включая совершенно другую архитектуру процесса и карту памяти. Много NT-кода было перенесено на него из ОС, например, весь сетевой стек и многое другое, и, конечно, на уровне пользователей он поддерживал Windows API ..
davidbak

7
В Windows CE также использовались некоторые варианты процессоров Hitachi Super-H. Известный пример - Sega Dreamcast (SH4), но я также думаю, что были некоторые КПК на базе SH3, работающие под управлением Windows CE.
Майкл

3
Windows Phone - это маркетинговое название. До WP7 он был частью линии CE, WP8 является производной NT. Точно так же Windows 10 IOT - это также специально разработанное ядро ​​NT, как и XBoxen 3-го поколения.
MSalters

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

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

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


MS отказалась разрешить сторонние настольные приложения на руку, даже если они были перекомпилированы для этого. Это было чисто искусственное ограничение (о чем свидетельствует тот факт, что кто-то нашел способ его обойти)
plugwash

@plugwash Во втором абзаце я фактически упомянул искусственность ограничений на запуск настольных приложений, скомпилированных для ARM. Пожалуйста, прочитайте это.
Тамогна Чоудхури

-1

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.