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

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

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

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

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. Эмулятор или виртуальная машина вместо этого эмулирует физическую машину. Очевидно, что прокладка более эффективна, но может не полностью воспроизводить желаемую функциональность.

  • проблема с эмуляцией qemu, «черное окно!»
  • Запуск двоичного файла Solaris на SPARC без оборудования SPARC
  • Interesting Posts

    Что касается создания и уничтожения конфиденциальных данных в системах linux / unix

    как использовать команду eval для печати значения параметра

    Установка прав доступа rwx по умолчанию для группы, но только rw разрешения по умолчанию для файлов

    Использовать поставщика VirtualBox по умолчанию для Fedora 21

    Как отключить плавную прокрутку в KDE4

    В чем разница между «командный каталог» и «командный каталог /»?

    Когда я набираю текст на английском языке, он подчеркивается и ведет себя странно

    Полночный командир не работает

    Рабочий процесс на основе файлов и каталогов

    Пакет 'xcb-xrm' не найден

    Запись вывода из netcat в файл

    Сервер Ubuntu 11.10: создание пользователя, домашний каталог, привилегии sudo: только командная строка

    Стрелка вверх в пустой строке в ksh93

    Можно ли сохранить конфигурацию рабочего стола KDE?

    Как создать отдельное приложение в меню Mint?

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