Программное обеспечение является родным для платформы, если оно было разработано для работы на этой платформе.
Под платформой обычно понимается операционная система, но она также может применяться к таким устройствам, как Nintendo Game Boy.
Используя Game Boy в качестве примера, он получает свое программное обеспечение из картриджей. Эти картриджи содержат код, который изначально работает на Game Boy.
Эмуляторы - это слой, позволяющий запускать программное обеспечение, разработанное для одной платформы, на другой. Например, есть эмуляторы, которые могут воспроизводить изображения картриджей Game Boy и позволяют играть в игры Game Boy на компьютере или даже на мобильном телефоне.
Уровень совместимости вроде как эмулятор. Когда 64-разрядные компьютеры и операционные системы стали массовыми, они должны были быть совместимы с существующими 32-разрядными технологиями. Поскольку 64-разрядные и 32-разрядные архитектуры сильно различаются, часто требуется уровень совместимости для запуска 32-разрядного программного обеспечения на 64-разрядных компьютерах. Для 64-разрядных версий Microsoft Windows Microsoft необходимо было написать слой совместимости, чтобы 32-разрядные программы по-прежнему работали в новой 64-разрядной системе. Вот почему некоторые программы часто устанавливаются в папку с именем Program Files (x86)
, где x86
означает «32-бит».
Слои совместимости имеют тенденцию быть более близкими к нативной системе, чем эмуляторы. VirtualBox эмулирует аппаратное обеспечение для операционных систем * , и системы, которые он эмулирует, не имеют непосредственного взаимодействия с хост-системой. WoW64 - это уровень совместимости, который позволяет 32-битным программам работать в 64-битной Windows более интегрированным способом. WoW64 помогает сделать программы совместимыми, а не эмулировать их в изолированной среде.
Библиотека перевод представляет собой компонент слоев совместимости. Всякий раз, когда двоичный код выполняется не нативно, библиотека перевода помогает перенаправить внешние, не нативные вызовы на нативные вызовы, которые может понять система. Программы сборки, написанные для оригинального TI-83, могут быть несовместимы с более новыми калькуляторами TI-83/84 Plus, потому что некоторые вызовы, имеющие смысл в архитектуре TI-83, могут больше не работать в TI-83/84 +. Библиотека переводов (возможно, включена в такие оболочки, как MirageOS ) гарантирует, что вызовы для TI-83 будут поступать в новые, обновленные места в калькуляторах TI-83/84 +.
Независимый от платформы код написан на языке, который интерпретируется чем-то, что обычно выполняется изначально. Например, PHP - это язык программирования, который интерпретируется и исполняется установленным двоичным файлом PHP, который уже был скомпилирован изначально для операционных систем Windows, Mac и Unix. Код PHP, который пишут веб-скрипты, не зависит от платформы, что позволяет коду работать в нескольких операционных системах, если PHP установлен для этих операционных систем.
Разнообразный
исправления
* Спасибо, Майкл Kjörling , для ловли некоторых проблем с этим ответом .
Другие
Разница между «родным» и «не родным» не черно-белая . (Кредиты на афразир )