LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Вообще такое решается следующим образом: инструкции одной архитектуры транслируются в инструкции другой архитектуры. То есть по сути дела при запуске программа в автоматическом режиме дизассемблируется, инструкции подменяются на армовые и она назад компилируется. Да, это не самое простое дело, да, придётся помучаться, чтобы корректно работал всякий извращённый код, но в принципе задача реальная. Если что, инструкцию можно заменять и несколькими инструкциями, если какая-то инструкция не имеет прямого аналога - потеряем немного производительности, зато хоть как-то работать будет.

В теории, при очень качественном трансляторе, получается производительность почти на уровне того, если бы софт был нативным. Только запускаеся/ставится (в зависимости от того, когда происходит трансляция) он дольше.

Исправление KivApple, :

Вообще такое решается следующим образом: инструкции одной архитектуры транслируются в инструкции другой архитектуры. То есть по сути дела при запуске программа в автоматическом режиме дизассемблируется, инструкции подменяются на армовые и она назад компилируется. Да, это не самое простое дело, да, придётся помучаться, чтобы корректно работал всякий извращённый код, но в принципе задача реальная. Если что, инструкцию можно заменять и несколькими инструкциями, если какая-то инструкция не имеет прямого аналога - потеряем немного производительности, зато хоть как-то работать будет.

В теории, при очень качественном трансляторе, получает производительность почти на уровне того, если бы софт был нативным. Только запускаеся/ставится (в зависимости от того, когда происходит трансляция) он дольше.

Исходная версия KivApple, :

Вообще такое решается следующим образом: инструкции одной архитектуры транслируются в инструкции другой архитектуры. То есть по сути дела при запуске программа в автоматическом режиме дизассемблируется, инструкции подменяются на армовые и она назад компилируется. Да, это не самое простое дело, да, придётся помучаться, чтобы корректно работал всякий извращённый код, но в принципе задача реальная. Если что, инструкцию можно заменять и несколькими инструкциями, если какая-то инструкция не имеет прямого аналога - потеряем немного производительности, зато хоть как-то работать будет.

В теории, при очень качественном трансляторе, получает производительность почти на уровне того, если бы софт был нативным. Только запускаеся/ставится он дольше.