Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Compatibility layer

From Wikipedia, the free encyclopedia
Interface that allows binaries to run on partcular system
This article has multiple issues. Please helpimprove it or discuss these issues on thetalk page.(Learn how and when to remove these messages)
This articlemay be too technical for most readers to understand. Pleasehelp improve it tomake it understandable to non-experts, without removing the technical details.(October 2022) (Learn how and when to remove this message)
This articlemay containexcessive orirrelevant examples. Please helpimprove it by removingless pertinent examples andelaborating on existing ones.(June 2023) (Learn how and when to remove this message)
(Learn how and when to remove this message)

Insoftware engineering, acompatibility layer is an interface that allowsbinaries for a legacy or foreign system to run on a host system. This translatessystem calls for the foreign system into native system calls for the host system. With somelibraries for the foreign system, this will often be sufficient to run foreign binaries on the host system. A hardware compatibility layer consists of tools that allowhardware emulation.

Software

[edit]

Examples include:

  • Wine, which runs someMicrosoft Windows binaries onUnix-like systems using a program loader and theWindows API implemented in DLLs
  • Windows's application compatibility layers to attempt to run poorly written applications or those written for earlier versions of the platform.[1]
  • KernelEX, which runs some Windows 2000/XP programs on Windows 98/Me, and Windows XP programs on Windows 2000.
  • Prism is aMicrosoft emulator for ARM-powered Windows devices that translates the underlying code of software built for traditional x86 and x64 binaries fromWindows 11 24H2[2]
  • Windows Subsystem for Linux v1, which runs Linux binaries on Windows via a compatibility layer which translates Linux system calls into native windows system calls.
  • Lina, which runs some Linux binaries on Windows,Mac OS X and Unix-like systems with native look and feel.
  • Anbox, anAndroid compatibility layer forLinux.
  • ACL allows Android apps to natively execute on Tizen, webOS, or MeeGoo phones.[3][4][5]
  • Alien Dalvik allows Android apps to run on MeeGo[6] and Meamo.[7] Alien Dalvik 2.0 was also revealed for iOS on an iPad, however unlike MeeGo and Meamo, this version ran from the cloud.[8][9][10]
  • Darling, a translation layer that attempts to run Mac OS X and Darwin binaries on Linux.
  • Rosetta 2,Apple's translation layer bundled with macOS Big Sur to allow x86-64 exclusive applications to run on ARM hardware.
  • Executor, which runs 68k-based "classic" Mac OS programs in Windows, Mac OS X and Linux.
  • touchHLE is a compatibility layer (referred to as a “high-level emulator”) for Windows and macOS made by Andrea "hikari_no_yume" (Sweden) in early 2023 to run legacy 32-bit iOS software.
  • ipasim is a compatibility layer for Windows that uses WinObjC to translate code from Objective C to native Windows code.[11]
  • aah (sic) is a program for macOS to run iOS apps on macOS 10.15 "Catalina" on x86 processors via translation of the programs via theCatalyst framework.[12]
  • Hybris, library that translates Bionic into glibc calls.
  • 2ine, a project to runOS/2 application on Linux[13]
  • Cygwin, aPOSIX-compatible environment that runs natively on Windows.[14]
  • brs-emu is a compatibility layer to run Roku software via BrightScript on other platforms: Web, Windows, macOS, and Linux.[15]
  • FEX-Emu runs x86 Linux applications on ARM64 Linux, and can be paired with Wine to run Windows applications.
  • OneCoreAPI, which attempts to run programs for Windows Vista and newer on Windows XP.[16]
  • VxKex, a set of extensions to let Windows 7 run newer versions of programs meant for Windows 10 and newer.[17]

Compatibility layer inkernel:

  • FreeBSD's Linux compatibility layer, which enables binaries built specifically forLinux to run onFreeBSD[18] the same way as the native FreeBSD API layer.[19] FreeBSD also has some Unix-like system emulations, including NDIS, NetBSD, PECoff, SVR4, and different CPU versions of FreeBSD.[20]
  • NetBSD has several Unix-like system emulations.[21]
  • Columbia Cycada, an unreleased compatibility layer which runsApple iOS applications onAndroid systems
  • Windows Subsystem for Linux provides aLinux-compatible kernel interface developed by Microsoft.[22]
  • The PEACE Project (aka COMPAT_PECOFF) has Win32 compatible layer for NetBSD. The project is now inactive.
  • OnRSTS/E for thePDP-11 series ofminicomputers, programs written to run on theRT-11 operating system could run (without recompiling) on RSTS through the RT-11 Run-Time System having its EMT flag set, meaning that an RT-11EMT instruction that matches a RSTS EMT is diverted to the RT-11 Run-Time System which translates them to the equivalent RSTS EMT. Programs written to take advantage of RSTS directly (or calls to RSTS within the Run-Time system itself) signal this by having asecond EMT instruction (usually EMT 255) immediately before the actual RSTS EMT code.

A compatibility layer avoids both the complexity and the speed penalty of full hardwareemulation. Some programs may even run faster than the original,e.g. some Linux applications running on FreeBSD's Linux compatibility layer may perform better than the same applications on Red Hat Linux. Benchmarks are occasionally run on Wine to compare it to Windows NT-based operating systems.[23]

Even on similar systems, the details of implementing a compatibility layer can be quite intricate and troublesome; a good example is theIRIX binary compatibility layer in theMIPS architecture version ofNetBSD.[24]

A compatibility layer requires the host system'sCPU to be (upwardly)compatible to that of the foreign system. For example, a Microsoft Windows compatibility layer is not possible onPowerPC hardware because Windows requires anx86 CPU. In this case full emulation is needed.

Hardware

[edit]

Hardware compatibility layers involve tools that allowhardware emulation. Some hardware compatibility layers involvebreakout boxes because breakout boxes can provide compatibility for certaincomputer buses that are otherwise incompatible with the machine.

See also

[edit]

References

[edit]
  1. ^Charlie Russel, Microsoft MVP for Windows Server and Tablet PC (2002-02-18)."Application Compatibility in Windows XP".
  2. ^mattwojo (2024-06-18)."How emulation works on Arm".learn.microsoft.com. Retrieved2024-11-26.
  3. ^"Tizen OS will run Android apps -- with a little help from third-party software (Video)". 15 May 2012.
  4. ^"OpenMobile ACL for webOS resurrected on Kickstarter, hopes to bring Android apps to HP Touchpad". 29 April 2013.
  5. ^"OpenMobile demos ACL for MeeGo, promises 100 percent compatibility with Android apps (Video)". 22 September 2011.
  6. ^"Myriad 'Alien Dalvik' runs Android apps on any phone... Starting with MeeGo (Video)". 8 February 2011.
  7. ^"Myriad Alien Dalvik hands-on (Video)". 18 February 2011.
  8. ^"Running Android Apps on the iPad with Myriad's Alien Dalvik".YouTube. 20 October 2011.
  9. ^"Hands-on with Myriad's Alien Dalvik 2.0 on an iPad (Video)". 10 October 2011.
  10. ^"Android apps to run on iPad with Alien Dalvik 2.0".
  11. ^Joneš, Jan (27 June 2019)."IOS emulator for Windows".hdl:20.500.11956/108316.
  12. ^"Aah".GitHub.
  13. ^"Project: 2ine | Patreon".
  14. ^"Cygwin".www.cygwin.com. Retrieved2019-11-23.
  15. ^"BRS-EMU: BrightScript Emulator".GitHub.
  16. ^shorthorn-project/One-Core-API-Source, shorthorn-project, 2025-12-30, retrieved2026-01-16
  17. ^i486 (2026-01-16),i486/VxKex, retrieved2026-01-16{{citation}}: CS1 maint: numeric names: authors list (link)
  18. ^"Linux emulation in FreeBSD".
  19. ^"Emulation". freebsd.org. Retrieved2014-03-16.
  20. ^"A look inside..." freebsd.org. Retrieved2014-03-16.
  21. ^"NetBSD Binary Emulation". netbsd.org. Retrieved2014-03-16.
  22. ^"Comparing WSL 1 and WSL 2". 20 March 2023.
  23. ^BenchMark-0.9.5Archived 2010-12-09 at theWayback Machine - The Official Wine Wiki
  24. ^Emmanuel Dreyfus (August 8, 2002)."IRIX Binary Compatibility, Part 1". onlamp.com. Archived fromthe original on 2017-10-21. Retrieved2014-03-16.

External links

[edit]
Fields
Concepts
Orientations
Models
Developmental
Other
Languages
Related fields
Retrieved from "https://en.wikipedia.org/w/index.php?title=Compatibility_layer&oldid=1335592673"
Category:
Hidden categories:

[8]ページ先頭

©2009-2026 Movatter.jp