Compatibility layer
Encyclopedia
A compatibility layer is a term that refers to components that allow for non-native support of components.

In software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

, a compatibility layer allows binaries for a legacy or foreign system to run on a host system. This translates system call
System call
In computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware related services , creating and executing new processes, and communicating with integral kernel services...

s for the foreign system into native system calls for the host system. With some libraries
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....

 for the foreign system, this will often be sufficient to run foreign binaries on the host system.

Hardware compatibility layers involve tools that allow hardware emulation
Hardware emulation
In integrated circuit design, hardware emulation is the process of imitating the behavior of one or more pieces of hardware with another piece of hardware, typically a special purpose emulation system. The emulation model is usually based on RTL source code, which is compiled into the format...

.

Software

Examples include:
  • Wine
    Wine (software)
    Wine is a free software application that aims to allow computer programs written for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like...

    , which runs some Microsoft Windows
    Microsoft Windows
    Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

     binaries on Unix-like
    Unix-like
    A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

     systems using a program loader and the Windows API
    Windows API
    The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name "Windows API" more accurately reflects its roots in 16-bit Windows and its support on...

     implemented in DLLs
  • Windows's application compatibility layers (Application Compatibility Toolkit) to attempt to run poorly written applications, or those written for earlier versions of the platform.
  • Lina
    LINA (software)
    LINA was a piece of open-source software that enabled users to run applications compiled for Linux under Windows and Mac OS X with a native look and feel. Version 1.00 beta1 was released in October 2009 and was available at web site...

    , which runs some Linux binaries with native look and feel on Windows, Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

     and Unix-like systems.
  • Compatibility layer in kernel
    Kernel (computing)
    In computing, the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources...

    • FreeBSD's Linux Compatibility Layer, which enables binaries built specifically for Linux
      Linux
      Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

       to run on FreeBSD
      FreeBSD
      FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

       with the same way as the native FreeBSD API layer. FreeBSD also has some Unix-like system emulations includes NDIS, NetBSD, PECoff, SVR4 and different CPU version of FreeBSD.
    • NetBSD
      NetBSD
      NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...

       has some Unix-like system emulations.
    • Mach and Darwin binary compatibility for NetBSD/powerpc and NetBSD/i386.
    • The PEACE Project(aka COMPAT_PECOFF) has Win32 compatible layer for NetBSD. The project is now inactive.


A compatibility layer is a term that refers to components that allow for non-native support of components.

In software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

, a compatibility layer allows binaries for a legacy or foreign system to run on a host system. This translates system call
System call
In computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware related services , creating and executing new processes, and communicating with integral kernel services...

s for the foreign system into native system calls for the host system. With some libraries
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....

 for the foreign system, this will often be sufficient to run foreign binaries on the host system.

Hardware compatibility layers involve tools that allow hardware emulation
Hardware emulation
In integrated circuit design, hardware emulation is the process of imitating the behavior of one or more pieces of hardware with another piece of hardware, typically a special purpose emulation system. The emulation model is usually based on RTL source code, which is compiled into the format...

.

Software

Examples include:
  • Wine
    Wine (software)
    Wine is a free software application that aims to allow computer programs written for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like...

    , which runs some Microsoft Windows
    Microsoft Windows
    Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

     binaries on Unix-like
    Unix-like
    A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

     systems using a program loader and the Windows API
    Windows API
    The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name "Windows API" more accurately reflects its roots in 16-bit Windows and its support on...

     implemented in DLLs
  • Windows's application compatibility layers (Application Compatibility Toolkit) to attempt to run poorly written applications, or those written for earlier versions of the platform.
  • Lina
    LINA (software)
    LINA was a piece of open-source software that enabled users to run applications compiled for Linux under Windows and Mac OS X with a native look and feel. Version 1.00 beta1 was released in October 2009 and was available at web site...

    , which runs some Linux binaries with native look and feel on Windows, Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

     and Unix-like systems.
  • Compatibility layer in kernel
    Kernel (computing)
    In computing, the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources...

    • FreeBSD's Linux Compatibility Layer, which enables binaries built specifically for Linux
      Linux
      Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

       to run on FreeBSD
      FreeBSD
      FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

       with the same way as the native FreeBSD API layer. FreeBSD also has some Unix-like system emulations includes NDIS, NetBSD, PECoff, SVR4 and different CPU version of FreeBSD.
    • NetBSD
      NetBSD
      NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...

       has some Unix-like system emulations.
    • Mach and Darwin binary compatibility for NetBSD/powerpc and NetBSD/i386.
    • The PEACE Project(aka COMPAT_PECOFF) has Win32 compatible layer for NetBSD. The project is now inactive.


A compatibility layer is a term that refers to components that allow for non-native support of components.

In software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

, a compatibility layer allows binaries for a legacy or foreign system to run on a host system. This translates system call
System call
In computing, a system call is how a program requests a service from an operating system's kernel. This may include hardware related services , creating and executing new processes, and communicating with integral kernel services...

s for the foreign system into native system calls for the host system. With some libraries
Library (computer science)
In computer science, a library is a collection of resources used to develop software. These may include pre-written code and subroutines, classes, values or type specifications....

 for the foreign system, this will often be sufficient to run foreign binaries on the host system.

Hardware compatibility layers involve tools that allow hardware emulation
Hardware emulation
In integrated circuit design, hardware emulation is the process of imitating the behavior of one or more pieces of hardware with another piece of hardware, typically a special purpose emulation system. The emulation model is usually based on RTL source code, which is compiled into the format...

.

Software

Examples include:
  • Wine
    Wine (software)
    Wine is a free software application that aims to allow computer programs written for Microsoft Windows to run on Unix-like operating systems. Wine also provides a software library, known as Winelib, against which developers can compile Windows applications to help port them to Unix-like...

    , which runs some Microsoft Windows
    Microsoft Windows
    Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

     binaries on Unix-like
    Unix-like
    A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

     systems using a program loader and the Windows API
    Windows API
    The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces available in the Microsoft Windows operating systems. It was formerly called the Win32 API; however, the name "Windows API" more accurately reflects its roots in 16-bit Windows and its support on...

     implemented in DLLs
  • Windows's application compatibility layers (Application Compatibility Toolkit) to attempt to run poorly written applications, or those written for earlier versions of the platform.
  • Lina
    LINA (software)
    LINA was a piece of open-source software that enabled users to run applications compiled for Linux under Windows and Mac OS X with a native look and feel. Version 1.00 beta1 was released in October 2009 and was available at web site...

    , which runs some Linux binaries with native look and feel on Windows, Mac OS X
    Mac OS X
    Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

     and Unix-like systems.
  • Compatibility layer in kernel
    Kernel (computing)
    In computing, the kernel is the main component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources...

    • FreeBSD's Linux Compatibility Layer, which enables binaries built specifically for Linux
      Linux
      Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

       to run on FreeBSD
      FreeBSD
      FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

       with the same way as the native FreeBSD API layer. FreeBSD also has some Unix-like system emulations includes NDIS, NetBSD, PECoff, SVR4 and different CPU version of FreeBSD.
    • NetBSD
      NetBSD
      NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...

       has some Unix-like system emulations.
    • Mach and Darwin binary compatibility for NetBSD/powerpc and NetBSD/i386.
    • The PEACE Project(aka COMPAT_PECOFF) has Win32 compatible layer for NetBSD. The project is now inactive.





A compatibility layer avoids both the complexity and the speed penalty of full hardware emulation
Emulator
In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...

. Some programs may even run faster than the original, e.g. some Linux applications running on FreeBSD's Linux compatibility layer may or may not perform better than the same applications on Red Hat Linux, and benchmarks are occasionally run on Wine to compare it to Windows NT-based operating systems.

Even on similar systems, the details of implementing a compatibility layer can be quite intricate and troublesome; a good example is the IRIX
IRIX
IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers. It was based on UNIX System V with BSD extensions. IRIX was the first operating system to include the XFS file system.The last major version...

 binary compatibility layer in the MIPS architecture
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...

 version of NetBSD
NetBSD
NetBSD is a freely available open source version of the Berkeley Software Distribution Unix operating system. It was the second open source BSD descendant to be formally released, after 386BSD, and continues to be actively developed. The NetBSD project is primarily focused on high quality design,...

.

A compatibility layer requires the host system's CPU
Central processing unit
The central processing unit is the portion of a computer system that carries out the instructions of a computer program, to perform the basic arithmetical, logical, and input/output operations of the system. The CPU plays a role somewhat analogous to the brain in the computer. The term has been in...

 to be (upwardly) compatible
Compatibility
Compatibility may refer to:* Astrological compatibility* Compatibilism – a philosophical position* Compatibility * Compatibility * Compatibility * Electromagnetic compatibility* Interpersonal compatibility-Computing:...

 to that of the foreign system. Thus, for example, an MS Windows compatibility layer is not possible on PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...

 hardware, since MS Windows requires an x86 CPU; in that case, full emulation is needed.

Hardware

Hardware compatibility layers involve tools that allow hardware emulation
Hardware emulation
In integrated circuit design, hardware emulation is the process of imitating the behavior of one or more pieces of hardware with another piece of hardware, typically a special purpose emulation system. The emulation model is usually based on RTL source code, which is compiled into the format...

. Some hardware compatibility layers involve breakout box
Breakout box
A breakout box is an electrical device, usually housed in a box, in which a compound electrical connector is separated or "broken out" into its component connectors. Compound connectors are used where sufficient space for connections is unavailable...

es, since breakout boxes can provide compatibility for certain computer bus
Computer bus
In computer architecture, a bus is a subsystem that transfers data between components inside a computer, or between computers.Early computer buses were literally parallel electrical wires with multiple connections, but the term is now used for any physical arrangement that provides the same...

es that are otherwise incompatible with the machine.

See also

  • Hypervisor
    Hypervisor
    In computing, a hypervisor, also called virtual machine manager , is one of many hardware virtualization techniques that allow multiple operating systems, termed guests, to run concurrently on a host computer. It is so named because it is conceptually one level higher than a supervisory program...

  • Paravirtualization
    Paravirtualization
    In computing, paravirtualization is a virtualization technique that presents a software interface to virtual machines that is similar but not identical to that of the underlying hardware....

  • Emulator
    Emulator
    In computing, an emulator is hardware or software or both that duplicates the functions of a first computer system in a different second computer system, so that the behavior of the second system closely resembles the behavior of the first system...

  • Cross-platform virtualization
    Cross-platform virtualization
    Cross-platform virtualization is a form of computer virtualization that allows software compiled for a specific CPU and operating system to run unmodified on computers with different CPUs and/or operating systems, through a combination of dynamic binary translation and operating system call...

  • Computing platform
  • Shim (computing)

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK