Уровень совместимости
Эта статья может быть слишком технической для понимания большинства читателей . ( Октябрь 2022 г. ) |
В разработке программного обеспечения уровень совместимости — это интерфейс, который позволяет двоичные файлы запускать устаревшей или сторонней системы на хост-системе. Это преобразует системные вызовы для сторонней системы в собственные системные вызовы для хост-системы. При использовании некоторых библиотек для сторонней системы этого часто бывает достаточно для запуска сторонних двоичных файлов в хост-системе. Уровень совместимости оборудования состоит из инструментов, позволяющих эмулировать оборудование .
Программное обеспечение [ править ]
Примеры включают в себя:
- 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] и Меамо. [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. поддержка облегченной версии Super Monkey Ball, а также Crash Bandicoot Nitro Kart 3D и Touch & Go . Начиная с версии 0.1.2 добавлена [12] Она говорит, что фанатам придется «набраться терпения», чтобы чему-то еще можно было подражать. При необходимости она использует трансляцию кода вместе с эмуляцией ЦП и особо заявляет, что не хочет быть совместимой с 64-битным программным обеспечением. [13] Позже был выпущен запрос на добавление поддержки Android, который позволил устройствам Android запускать Super Monkey Ball для iOS. [14]
- ipasim — это уровень совместимости для Windows, который использует WinObjC для перевода кода из Objective C в собственный код Windows. [15]
- aah (так в оригинале) — это программа для 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, работающие на уровне совместимости FreeBSD с Linux, могут работать лучше, чем те же приложения в Red Hat Linux. Время от времени на Wine запускаются тесты производительности для сравнения его с операционными системами на базе Windows NT. [23]
Даже в подобных системах детали реализации уровня совместимости могут быть весьма сложными и хлопотными; Хорошим примером является IRIX уровень двоичной совместимости архитектурой MIPS с в версии NetBSD . [24]
Уровень совместимости требует, чтобы ЦП хост-системы был (вверх) совместим с процессором сторонней системы. Например, уровень совместимости с Microsoft Windows невозможен на оборудовании PowerPC , поскольку для Windows требуется процессор x86 . В этом случае необходима полная эмуляция.
Аппаратное обеспечение [ править ]
Уровни совместимости оборудования включают инструменты , позволяющие эмулировать оборудование . Некоторые уровни совместимости оборудования включают коммутационные коробки , поскольку коммутационные коробки могут обеспечить совместимость с определенными компьютерными шинами , которые в противном случае несовместимы с машиной.
См. также [ править ]
- Гипервизор
- Паравиртуализация
- Эмулятор
- Кроссплатформенная виртуализация
- Вычислительная платформа
- Шим (вычисления)
- Оболочка драйвера
- Код клея
Ссылки [ править ]
- ^ Чарли Рассел, Microsoft MVP для Windows Server и Tablet PC (18 февраля 2002 г.). «Совместимость приложений в Windows XP» .
- ^ «Сигвин» . www.cygwin.com . Проверено 23 ноября 2019 г.
- ^ «Проект: 2ine | Патреон» .
- ^ «На ОС Tizen будут работать приложения Android — с небольшой помощью стороннего программного обеспечения (Видео)» .
- ^ «OpenMobile ACL для webOS возрожден на Kickstarter, мы надеемся перенести приложения Android на HP Touchpad» .
- ^ «OpenMobile демонстрирует ACL для MeeGo, обещает 100-процентную совместимость с приложениями Android (Видео)» .
- ^ «Множество «Alien Dalvik» запускают приложения Android на любом телефоне... Начиная с MeeGo (Видео)» .
- ^ «Практическое занятие по Myriad Alien Dalvik (Видео)» .
- ^ «Запуск приложений Android на iPad с помощью Alien Dalvik от Myriad» . Ютуб .
- ^ «Практическое знакомство с Alien Dalvik 2.0 от Myriad на iPad (видео)» .
- ^ «Приложения Android для запуска на iPad с Alien Dalvik 2.0» .
- ^ «TouchHLE: высокоуровневый эмулятор приложений для iPhone OS» . Гитхаб .
- ^ «Высокоуровневый эмулятор iOS touchHLE работает на Windows и Mac и призван сохранить старые игровые приложения для iOS» .
- ^ «Разработчик портирует эмулятор iOS на Android, но вам не стоит из-за этого волноваться» . 24 апреля 2023 г.
- ^ Йонеш, январь (27 июня 2019 г.). «Эмулятор iOS для Windows» . hdl : 20.500.11956/108316 .
- ^ «Ааа» . Гитхаб .
- ^ «BRS-EMU: Эмулятор BrightScript» . Гитхаб .
- ^ «Эмуляция Linux во FreeBSD» .
- ^ «Эмуляция» . freebsd.org . Проверено 16 марта 2014 г.
- ^ «Взгляд внутрь…» freebsd.org . Проверено 16 марта 2014 г.
- ^ «Двоичная эмуляция NetBSD» . netbsd.org . Проверено 16 марта 2014 г.
- ^ «Сравнение WSL 1 и WSL 2» . 20 марта 2023 г.
- ^ BenchMark-0.9.5. Архивировано 9 декабря 2010 г. на Wayback Machine - Официальная Wine Wiki.
- ^ Эммануэль Дрейфус (8 августа 2002 г.). «Двоичная совместимость IRIX, часть 1» . onlamp.com. Архивировано из оригинала 21 октября 2017 г. Проверено 16 марта 2014 г.
Внешние ссылки [ править ]
- Технологии совместимости приложений Windows XP (Дэйв Морхаус и Тодд Филлипс, Microsoft Corporation, 1 июня 2001 г.)