Что это значит для программного обеспечения, чтобы работать нативно?
Когда люди ссылаются на работающее нативное программное обеспечение, эмуляцию и программную совместимость, на что именно они ссылаются? Читайте дальше, как мы углубимся в концепцию нативного программного обеспечения.
Сегодняшняя сессия вопросов и ответов приходит к нам вежливости SuperUser - подразделение Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.
Вопрос
Читатель SuperUser Тросби интересуется, что значит запускать программное обеспечение изначально. Он пишет:
Мне было интересно, что это значит для программного обеспечения, чтобы работать нативно. Что именно такое программное обеспечение и чем оно отличается от программного обеспечения, которое не запускается изначально? Как я могу определить, будет ли данный фрагмент программного обеспечения работать на моем компьютере? Есть ли вероятность того, что на моем компьютере уже установлено программное обеспечение??
Продолжайте читать для превосходной аналогии, объясняющей точно, что означает быть нативным в данной системе.
Ответ
Участник SuperUser Deltik предлагает фантастическую аналогию, которая подчеркивает, что означает, что программное обеспечение является нативным, и какое другое программное обеспечение можно найти в данной системе:
Программное обеспечение является родным для платформы, если оно было разработано для работы на этой платформе.
Под платформой обычно понимается операционная система, но ее также можно применять к таким устройствам, как Nintendo Game Boy..
Используя Game Boy в качестве примера, он получает свое программное обеспечение из картриджей. Эти картриджи содержат код, который запускается изначально на Game Boy.
эмуляторы это слой, который позволяет программному обеспечению, предназначенному для одной платформы, работать на другой. Например, есть эмуляторы, которые могут запускать образы картриджей Game Boy и позволяют играть в игры Game Boy на компьютере или даже на мобильном телефоне..
уровень совместимости вроде как эмулятор. Когда 64-разрядные компьютеры и операционные системы стали массовыми, они должны были быть совместимы с существующими 32-разрядными технологиями. Поскольку 64-разрядные и 32-разрядные архитектуры сильно различаются, часто требуется уровень совместимости для запуска 32-разрядного программного обеспечения на 64-разрядных компьютерах. Для 64-разрядных версий Microsoft Windows Microsoft необходимо было написать слой совместимости, чтобы 32-разрядные программы по-прежнему работали в новой 64-разрядной системе. Вот почему некоторые программы часто устанавливаются в папку
Программные файлы (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 установлен для этих операционных систем..
Есть что добавить к объяснению? Звук выключен в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полным обсуждением здесь.