Jump to content

Binary-code compatibility: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
→‎Binary compatible operating systems: - Think the Mac used emulation and this part is plain wrong (and an outdated example)
Line 11: Line 11:
For the example of ABI-compatibility, the [[ReactOS]] operating system development effort seeks to create an [[open source]], [[free software]] operating system that is binary compatible with [[Microsoft|Microsoft's]] [[Windows NT]] family of operating systems. [[FreeBSD]] and other members of the [[BSD]] family have binary compatibility with the [[Linux kernel]] in [[usermode]] by translating Linux system calls into BSD ones. This enables the libraries and application code that run on [[Linux]]-based operating systems to be run on BSD as well.
For the example of ABI-compatibility, the [[ReactOS]] operating system development effort seeks to create an [[open source]], [[free software]] operating system that is binary compatible with [[Microsoft|Microsoft's]] [[Windows NT]] family of operating systems. [[FreeBSD]] and other members of the [[BSD]] family have binary compatibility with the [[Linux kernel]] in [[usermode]] by translating Linux system calls into BSD ones. This enables the libraries and application code that run on [[Linux]]-based operating systems to be run on BSD as well.


Note that a binary compatible operating system is different from an operating system that provides a means of [[Hardware virtualization|virtualization]] to enable other software to run. For example, [[Mac OS X]] on the [[PowerPC]] had the ability to run [[MacOS 9]] and earlier application software through [[Classic Environment|Classic]]—but this did not make OS X a binary compatible operating system with MacOS 9. Instead, the Classic environment was actually running MacOS 9 in a [[virtual machine]], running as a normal process inside of the OS X operating system. [[Windows 7]] has [[Windows XP Mode]] which serves a similar purpose, allowing users to run a [[64-bit]] version of Windows 7 and have very old software still work in a [[32-bit]] virtual machine running [[Windows XP]].
Note that a binary compatible operating system is different from an operating system that provides a means of [[Hardware virtualization|virtualization]] to enable other software to run. For example, [[Windows 7]] has [[Windows XP Mode]] which serves a similar purpose, allowing users to run a [[64-bit]] version of Windows 7 and have very old software still work in a [[32-bit]] virtual machine running [[Windows XP]].


==See also==
==See also==

Revision as of 16:15, 29 October 2013

In computing, a computer that can run the same binary code intended to be run on another computer is said to be binary-compatible. This differs from source code compatibility, where recompilation may be necessary.

Binary-compatibility is a major benefit when developing computer programs that are to be run on multiple operating systems. Several Unix-based operating systems, such as FreeBSD or NetBSD, offer binary compatibility with more popular operating systems, such as Linux-derived ones, since most binary executables are not commonly distributed for such operating systems. The same applies to Microsoft Windows; most binaries that are compiled for Windows 2000 can also be run on Windows XP and Windows Vista.

Binary compatible operating systems

Binary compatible operating systems are operating systems who aim to implement binary compatibility with another operating system, or another variant of the same brand. This means that they are ABI-compatible (for application binary interface). As the job of an operating system is to run actual programs, the processor architectures running the operating systems have to be the same or compatible or else a dynamic translation mechanisim (or an emulator is sometimes provided that makes them more-or-less compatible.

For the example of ABI-compatibility, the ReactOS operating system development effort seeks to create an open source, free software operating system that is binary compatible with Microsoft's Windows NT family of operating systems. FreeBSD and other members of the BSD family have binary compatibility with the Linux kernel in usermode by translating Linux system calls into BSD ones. This enables the libraries and application code that run on Linux-based operating systems to be run on BSD as well.

Note that a binary compatible operating system is different from an operating system that provides a means of virtualization to enable other software to run. For example, Windows 7 has Windows XP Mode which serves a similar purpose, allowing users to run a 64-bit version of Windows 7 and have very old software still work in a 32-bit virtual machine running Windows XP.

See also