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

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

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

  • Запуск двоичного файла Solaris на SPARC без оборудования SPARC
  • Как смоделировать соединение USB-накопителя с qemu?
  • Является ли чипом MMU (модуль управления памятью) необходимым для поддержки виртуальной памяти процессором?
  • USB-джойстик поддерживает строительство VICE от источника?
  • Как я могу подражать большой платформе endian на x86?
  • Есть ли общая пусковая установка для игр DosBox и ScummVM?
  • Ну, как эмуляторы и виртуальные машины имитируют внутреннюю логику Windows на хост-системах, отличных от Windows? Не перевод ли системные вызовы Windows в собственные вызовы хоста? Разница между эмуляторами и неэмуляторами (например, Wine) заключается в том, что эмуляторы эмулируют целую операционную систему, тогда приложение использует эти системные API, не зная, что она разговаривает с эмулятором, в то время как не-эмуляторы напрямую транслируют вызовы приложения в хост ( и приложение также может не знать об этом)? Является ли дополнительный уровень косвенности единственным отличием между эмуляторами и вином?

  • Как запускать программы в песочнице?
  • Ubuntu Linux и SCO UNIX OpenServer
  • Как я могу подражать большой платформе endian на x86?
  • Может ли «grub-emu» внести какие-либо изменения в мою систему?
  • Как вы играете в эту старую игру Unix?
  • Есть ли общая пусковая установка для игр DosBox и ScummVM?
  • 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. Эмулятор или виртуальная машина вместо этого эмулирует физическую машину. Очевидно, что прокладка более эффективна, но может не полностью воспроизводить желаемую функциональность.

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