Как вино не является эмулятором?

Поскольку я понимаю эмуляторы (простым способом), они переводят или заменяют вызовы функций программы, используя функции системы X, в функции, используемые системой Y, в которой выполняется программа. Проект вина утверждает, что Wine не является эмулятором, потому что:

Вместо того, чтобы имитировать внутреннюю логику Windows, такую ​​как виртуальная машина или эмулятор, Wine переводит вызовы Windows API в вызовы POSIX «на лету», устраняя штрафы производительности и памяти других методов и позволяя вам полностью интегрировать приложения Windows на ваш рабочий стол.

Ну, как эмуляторы и виртуальные машины имитируют внутреннюю логику Windows на хост-системах, отличных от Windows? Не перевод ли системные вызовы Windows в собственные вызовы хоста? Разница между эмуляторами и неэмуляторами (например, Wine) заключается в том, что эмуляторы эмулируют целую операционную систему, тогда приложение использует эти системные API, не зная, что она разговаривает с эмулятором, в то время как не-эмуляторы напрямую транслируют вызовы приложения в хост ( и приложение также может не знать об этом)? Является ли дополнительный уровень косвенности единственным отличием между эмуляторами и вином?

  • проблема с эмуляцией qemu, «черное окно!»
  • Есть ли общая пусковая установка для игр DosBox и ScummVM?
  • Может ли «grub-emu» внести какие-либо изменения в мою систему?
  • Ubuntu Linux и SCO UNIX OpenServer
  • Запуск двоичного файла Solaris на SPARC без оборудования SPARC
  • Является ли чипом MMU (модуль управления памятью) необходимым для поддержки виртуальной памяти процессором?
  • Как вы играете в эту старую игру Unix?
  • Винная или виртуальная бокс для Windows для проприетарного программного обеспечения?
  • 3 Solutions collect form web for “Как вино не является эмулятором?”

    Ну, как эмуляторы и виртуальные машины имитируют внутреннюю логику Windows на хост-системах, отличных от Windows? Не перевод ли системные вызовы Windows в собственные вызовы хоста?

    Нет, или, по крайней мере, не в том смысле, что WINE делает – буквально перевод системных вызовов один в один в пространстве пользователя. Эмулятор делает это абстрактно с помощью более обходного маршрута; он не переводит системные вызовы напрямую.

    Настоящий эмулятор создает виртуальную машину (например, x86-64), а не виртуальную операционную систему . Затем вы можете теоретически запустить любую операционную систему, ориентированную на этот стиль машины. Обычно «эмулятор» включает операционную систему, но это не совсем то, что она имитирует; OS, она включает в себя тот же, что и на реальной машине.

    Эмуляторы иногда используются для имитации аппаратного обеспечения, отличного от хост-машины, но также и аппаратного обеспечения, которое точно такое же для запуска одной ОС внутри другой.

    WINE отличается от этого тем, что это не окна. Вы можете запустить эмулятор x86-64 с реальной копией окон внутри него, но это не то, что WINE. Их утверждение о том, что он на самом деле более эффективен, чем эмулятор, имеет смысл – накладные расходы для просто перевода системных вызовов, вероятно, ниже, чем для запуска виртуальной машины. Недостатком является то, что WINE может быть только окнами; вы не можете использовать его с какой-либо другой ОС, так как вы можете использовать обычную виртуальную машину .

    Рассмотрим виртуальные машины Java. Никакой JVM не эмулирует ни одно другое, они все реализации спецификации. Вино не эмулирует win32 api, это его реализация. Спецификации и реальность не обязательно совпадают, как реализация Microsoft, так и реализация Wine имеют обходные пути для работы с кодовым кодом, и не обязательно очевидно, какая реализация является лучшей целью для любого данного проекта.

    Вино – это прокладка, которая перехватывает вызовы API Windows и преобразует их на лету в соответствующие вызовы API Linux. Эмулятор или виртуальная машина вместо этого эмулирует физическую машину. Очевидно, что прокладка более эффективна, но может не полностью воспроизводить желаемую функциональность.

    Interesting Posts

    Цвет SSH показывает только белый

    Форматировать образцы sar в реальном времени с помощью пасты и awk

    Может ли переменная оболочки включать – символ?

    Отображение файла в другом файле

    bash alias, начинающийся с pipe, не работает?

    Как изменить размер устройства образа диска?

    Как узнать, поддерживает ли моя система текущее время системы?

    Как предотвратить расширение, когда я использую шаблон в качестве аргумента для скрипта?

    Чтобы восстановить данные OSX в Debian

    Как проверить, определена ли функция в awk?

    Извлечение архива путем компоновки содержимого архива в команду tar

    Что такое эквивалентная команда Linux для команды Windows ipconfig / registerdns?

    Разделение файла на несколько файлов на основе значения 1-го столбца

    Преимущества использования конфигурационных файлов для распространения по общим сценариям запуска?

    удалять повторяющиеся записи в одном столбце и линеаризовать значения в нескольких строках в одну строку

    Linux и Unix - лучшая ОС в мире.