Почему Windows RT не может запускать обычные программы Windows?

496
jabe

Что особенного в Windows RT, что делает его неспособным запускать обычные программы Windows, которые не пришли из магазина приложений?

Я понимаю, что Windows RT использовалась с процессорами ARM, но некоторые из моих старых программ для Windows 98 отлично работали на Intel Pentium и все еще отлично работают на более современных процессорах AMD. Я пытаюсь понять, что делает ARM и Windows RT особенными.

1

2 ответа на вопрос

4
Tonny

Ваш пример Intel Pentium и AMD - это образцы одной и той же архитектуры процессоров Intel / AMD x86 / x64.
Несмотря на то, что между ними существует несколько поколений процессоров, они в целом совместимы. (Или лучше сказать: более новые процессоры добавляют в основном функции к тому же ядру, которое уже присутствовало в более старых версиях.)
Это означает, что (с хорошим поведением) программное обеспечение, написанное для более старых процессоров, все еще может работать на более новых поколениях.

ARM, однако, представляет собой совершенно другую архитектуру процессора, чем x86 / x64.
Процессоры ARM внутренне говорят на совершенно другом языке, и они просто не понимают язык, используемый процессорами Intel. (И наоборот.)
Вы можете сравнить это с кем-то, кто говорит только по-английски и пытается читать текст на китайском языке. Он не будет очень далеко.

Windows RT - это специальная версия Windows, созданная для работы в среде ARM, и поэтому не может запускать программы, изначально разработанные для обычной Windows. (Кстати, Windows Mobile и Windows IoT также доступны для ARM.)

1
LawrenceC

Что особенного в Windows RT, что делает его неспособным запускать обычные программы Windows, которые не пришли из магазина приложений?

Microsoft заблокировала Windows RT.

  • Устройства Windows RT поддерживают безопасную загрузку и не позволяют отключить ее или установить другие ключи
  • Windows RT запускает только подписанные двоичные файлы, поэтому не может выполняться неутвержденный сторонний код.

Вышеупомянутое не имеет ничего общего с ARM - ничто не мешает Microsoft создать не-ARM устройство, которое ведет себя так, как описано выше. Windows поддерживает конфигурацию, в которой в течение длительного времени могут работать только подписанные двоичные файлы, а новые системы могут быть заблокированы с помощью безопасной загрузки. Так что в этом нет ничего нового, хотя в системах RT вы не можете отключить эти опции.

Microsoft сделала вышеупомянутое, чтобы обеспечить подобный устройству опыт как Apple с iPad - например, программы проверены, одобрены, помещены в «песочницу», и операционная система не может быть изменена.

Я понимаю, что Windows RT использовалась с процессорами ARM, но некоторые из моих старых программ для Windows 98 нормально работали на Intel Pentium и все еще работают на более современных процессорах AMD

AMD всегда делала процессоры, совместимые с Intel, особенно с архитектурой Intel "x86". Даже в этом случае чипы AMD и Intel реализуют некоторые новые функции по-разному - достаточно разные, когда программе нужно знать, на каком типе процессора она работает, и немного менять свою работу, но не настолько, чтобы большинство программ не работало.

ARM - это совершенно другой тип процессора, который был нового дизайна (от британской компании Acorn RISC Machines) и имеет совершенно другую архитектуру. Это несовместимо с Intel.

Итак, гипотетически, если бы Windows RT не была заблокирована Microsoft, обычные .exe-файлы все равно не работали бы, потому что они ожидали запуска на процессоре Intel? Кроме того, как универсальное приложение для Windows может работать как на ARM, так и на Intel, когда обычные исполняемые файлы этого не делают? jabe 7 лет назад 0
Ваш первый вопрос - в значительной степени. Однако у Microsoft есть .NET Framework - и возможно создать .exe, который состоит из «CIL» - этот тип кода не зависит от процессора и JIT-компилируется в собственный код непосредственно перед выполнением - как Джава. Я считаю, что это имеет ключевое значение для работы приложений UWP на любой архитектуре. Рассматривая, как создаются приложения UWP, он является универсальным и сложным - файл .appx, который представляет собой само приложение, представляется форматом пакета, который может содержать код CIL, собственный код и т. Д. LawrenceC 7 лет назад 0
В настоящее время ARM является "Advanced RISC Machines" ... Yousha Aleayoub 6 лет назад 0

Похожие вопросы