Интерфейс, позволяющий запускать двоичные файлы устаревшей или иностранной системы на хост-системе
В программной инженерии уровень совместимости — это интерфейс, который позволяет исполняемым файлам для устаревшей или иностранной системы запускаться на хост-системе. Это преобразует системные вызовы для иностранной системы в собственные системные вызовы для хост-системы. С некоторыми библиотеками для иностранной системы этого часто бывает достаточно для запуска иностранных исполняемых файлов на хост-системе. Уровень аппаратной совместимости состоит из инструментов, которые позволяют эмулировать оборудование .
Программное обеспечение
Вот несколько примеров:
- Wine , который запускает некоторые двоичные файлы Microsoft Windows на Unix-подобных системах с помощью загрузчика программ и API Windows, реализованного в библиотеках DLL.
- Уровни совместимости приложений Windows для попытки запустить плохо написанные приложения или приложения, написанные для более ранних версий платформы. [1]
- Lina , которая запускает некоторые двоичные файлы Linux на Windows, Mac OS X и Unix-подобных системах с родным внешним видом и функциями.
- KernelEX, который запускает некоторые программы Windows 2000/XP на Windows 98/Me.
- Executor , который запускает «классические» программы Mac OS на базе 68k в Windows, Mac OS X и Linux.
- Anbox , слой совместимости Android для Linux .
- Hybris — библиотека, которая транслирует вызовы Bionic в glibc.
- Darling — слой трансляции, который пытается запустить двоичные файлы Mac OS X и Darwin на Linux.
- Подсистема Windows для Linux v1, которая запускает двоичные файлы Linux в Windows через уровень совместимости, который преобразует системные вызовы Linux в собственные системные вызовы Windows.
- Cygwin — POSIX -совместимая среда, изначально работающая в Windows. [2]
- 2ine, проект для запуска приложений OS/2 на Linux [3]
- Rosetta 2 — это трансляционный слой Apple , встроенный в macOS Big Sur, позволяющий запускать эксклюзивные приложения x86-64 на оборудовании ARM.
- ACL позволяет приложениям Android изначально выполняться на телефонах Tizen, webOS или MeeGoo. [4] [5] [6]
- Alien Dalvik позволяет запускать приложения Android на MeeGo [7] и Meamo. [8] Alien Dalvik 2.0 также был представлен для iOS на iPad, однако, в отличие от MeeGo и Meamo, эта версия работала из облака. [9] [10] [11]
- touchHLE — это слой совместимости (называемый «эмулятором высокого уровня») для Windows и macOS, созданный Андреа «hikari_no_yume» (Швеция) в начале 2023 года для запуска устаревшего 32-разрядного программного обеспечения iOS. Слой совместимости мог запускать только одно программное обеспечение, Super Monkey Ball , начиная с версии 0.1.0. Начиная с версии 0.1.2 была добавлена поддержка Lite-версии Super Monkey Ball, а также Crash Bandicoot Nitro Kart 3D и Touch & Go . [12] Она говорит, что фанатам придется «набраться терпения», чтобы эмулировать что-то еще. При необходимости он использует трансляцию кода вместе с эмуляцией ЦП, и специально заявила, что не хочет быть совместимым с 64-разрядным программным обеспечением. [13] Позже был выпущен запрос на добавление поддержки Android, что позволило устройствам Android запускать Super Monkey Ball для iOS. [14]
- ipasim — это слой совместимости для Windows, который использует WinObjC для перевода кода из Objective C в собственный код Windows. [15]
- aah (sic) — программа для macOS, позволяющая запускать приложения iOS на macOS 10.15 «Catalina» на процессорах x86 посредством трансляции программ через фреймворк Catalyst . [16]
- brs-emu — это слой совместимости для запуска программного обеспечения Roku через BrightScript на других платформах: Web, Windows, macOS и Linux. [17]
Уровень совместимости в ядре :
- Слой совместимости FreeBSD с Linux , который позволяет исполняемым файлам, созданным специально для Linux, работать на FreeBSD [18] так же, как и собственный слой API FreeBSD. [19] FreeBSD также имеет некоторые эмуляции Unix-подобных систем, включая NDIS, NetBSD, PECoff, SVR4 и различные версии ЦП FreeBSD. [20]
- NetBSD имеет несколько эмуляций Unix-подобных систем. [21]
- Columbia Cycada — невыпущенный слой совместимости, который запускает приложения Apple iOS на системах Android .
- Подсистема Windows для Linux предоставляет Linux -совместимый интерфейс ядра, разработанный Microsoft. [22]
- Проект PEACE (он же COMPAT_PECOFF) имеет Win32-совместимый слой для NetBSD. Проект сейчас неактивен.
- На RSTS/E для серии мини-компьютеров PDP-11 программы, написанные для запуска на операционной системе RT-11, могли работать (без перекомпиляции) на RSTS через систему выполнения RT-11, имеющую установленный флаг EMT, что означает, что инструкция RT-11 EMT , которая соответствует RSTS EMT, перенаправляется в систему выполнения RT-11, которая транслирует их в эквивалентную RSTS EMT. Программы, написанные для использования преимуществ RSTS напрямую (или вызовов RSTS в самой системе выполнения), сигнализируют об этом, имея вторую инструкцию EMT (обычно EMT 255) непосредственно перед фактическим кодом RSTS EMT.
Уровень совместимости позволяет избежать как сложности, так и потери скорости полной аппаратной эмуляции . Некоторые программы могут работать даже быстрее оригинала, например, некоторые приложения Linux, работающие на уровне совместимости Linux FreeBSD, могут работать лучше, чем те же приложения на Red Hat Linux. Иногда тесты производительности запускаются на Wine для сравнения с операционными системами на базе Windows NT. [23]
Даже в подобных системах детали реализации уровня совместимости могут быть довольно запутанными и проблемными; хорошим примером является уровень двоичной совместимости IRIX в версии архитектуры MIPS NetBSD . [24]
Уровень совместимости требует, чтобы центральный процессор хост-системы был (вверху) совместим с процессором внешней системы. Например, уровень совместимости Microsoft Windows невозможен на оборудовании PowerPC , поскольку Windows требует процессор x86 . В этом случае необходима полная эмуляция.
Аппаратное обеспечение
Уровни аппаратной совместимости включают инструменты, которые позволяют эмулировать оборудование . Некоторые уровни аппаратной совместимости включают коммутационные панели , поскольку коммутационные панели могут обеспечивать совместимость для определенных компьютерных шин, которые в противном случае несовместимы с машиной.
Смотрите также
Ссылки
- ^ Чарли Рассел, Microsoft MVP для Windows Server и Tablet PC (18.02.2002). «Совместимость приложений в Windows XP».
- ^ "Cygwin". www.cygwin.com . Получено 2019-11-23 .
- ^ "Проект: 2ine | Patreon".
- ^ «Tizen OS будет запускать приложения Android — с небольшой помощью стороннего программного обеспечения (видео)».
- ^ «OpenMobile ACL для webOS возрожден на Kickstarter, в надежде перенести приложения Android на HP Touchpad».
- ^ «OpenMobile демонстрирует ACL для MeeGo, обещает 100-процентную совместимость с приложениями Android (видео)».
- ^ «Myriad 'Alien Dalvik' запускает приложения Android на любом телефоне... Начиная с MeeGo (видео)».
- ^ "Myriad Alien Dalvik: практическое применение (видео)".
- ^ «Запуск приложений Android на iPad с помощью Myriad's Alien Dalvik». YouTube .
- ^ «Практическое знакомство с Alien Dalvik 2.0 от Myriad на iPad (видео)».
- ^ «Приложения Android для запуска на iPad с Alien Dalvik 2.0».
- ^ "TouchHLE: Высокоуровневый эмулятор для приложений iPhone OS". GitHub .
- ^ «Высокоуровневый эмулятор iOS touchHLE работает на Windows и Mac и нацелен на сохранение старых игровых приложений iOS».
- ^ «Разработчик портирует эмулятор iOS на Android, но не стоит этому радоваться». 24 апреля 2023 г.
- ^ Йонеш, Ян (27 июня 2019 г.). «Эмулятор iOS для Windows». hdl :20.500.11956/108316.
- ^ "Ааа". GitHub .
- ^ "BRS-EMU: Эмулятор BrightScript". GitHub .
- ^ "Эмуляция Linux в FreeBSD".
- ^ "Эмуляция". freebsd.org . Получено 2014-03-16 .
- ^ "Взгляд внутрь..." freebsd.org . Получено 2014-03-16 .
- ^ "NetBSD Binary Emulation". netbsd.org . Получено 2014-03-16 .
- ^ «Сравнение WSL 1 и WSL 2». 20 марта 2023 г.
- ^ BenchMark-0.9.5 Архивировано 2010-12-09 на Wayback Machine - The Official Wine Wiki
- ↑ Эммануэль Дрейфус (8 августа 2002 г.). «Совместимость двоичных кодов IRIX, часть 1». onlamp.com. Архивировано из оригинала 21.10.2017 . Получено 16.03.2014 .
Внешние ссылки
- Технологии совместимости приложений Windows XP (Дэйв Морхаус и Тодд Филлипс, корпорация Microsoft, 1 июня 2001 г.)