Under compatibility (also compatibility ) is in the art either
- the interchangeability of assemblies ,
- the compatibility of properties or
- the equivalence of properties
Roger that. If one system meets the requirements of another (and possibly goes beyond), it is said to be compatible with the latter. If this is a newer version of a system that continues to meet the requirements of one or more of its predecessors, it is referred to as backward compatibility (or backward compatibility ). Conversely, if an old system can still meet the (basic) requirements of a new one, this is called upward compatibility or forward compatibility .
For example, an electronic component can be compatible with another with a different name. The components can then be exchanged because they have the same properties and mostly the same or a similar design.
In contrast to concrete interchangeability and equivalence , interoperability is more generally used to describe the ability of different systems to work together (through compliance with common standards). Both terms are often used synonymously.
Computer hardware and software
Binary compatibility refers to a feature of operating systems or processors , digital data in the same way to "understand". This usually means that one processor understands instructions that were written for another (see also instruction set ). This can also mean the byte order (big or little endian) or, in the case of serial transmission , the bit order .
Binary compatibility of operating systems on the one hand on hardware to achieve plane ( CPU - instruction set compatibility ) through software - emulators (eg, by a. Virtual Machine ) or by previous transformation ( JIT ). For example, Apple continued For example, a software emulator can be used to maintain compatibility between Motorola 68000 and PowerPC computers.
Source code compatibility
Source code compatibility means that a source code can be compiled on different systems without adaptation . Two operating systems are source code compatible if a new compilation is necessary to transfer a program, but no changes to the source code.
As a backward compatibility to the usability and compatibility of newer or extended is versions called a technical object or standards on the conditions of an earlier version.
A newer version of a software should be able to reopen and process the documents created with the older version. While this often works well, files of a newer software version are usually no longer readable by the older version, which forces many users to update .
An example of backward compatibility is UTF-8 , which according to prior to the first 128 places the characters of the 7-like bit - ASCII represents -Zeichensatzes, so that based on these computing systems can handle as correct before ASCII documents and view after.
In the hardware sector, it is now expected that programs for an old computer model can still be used on a new model (at least one from the same manufacturer), even if, conversely, many programs for the new model cannot be used on the old one or only with restrictions are. This principle has prevailed in mainframe computers since the 1960s, and in microcomputers it was largely established until the mid-1980s.
Downward compatibility in the IT industry is often associated with disadvantages. examples are
- the decades in x86 - processors existing real mode , which is no longer needed in today's processors
- the MS-DOS -based Windows versions 95, 98 and ME, which suffered from problems because they had to continue to use large parts of MS-DOS and Windows 3.x for reasons of compatibility .
As upward compatibility , the availability or compatibility of older or outdated versions called a technical object or standards on the conditions of a newer version.
One example is analog color television , which could be received as a black and white picture with black and white television receivers.
In the case of a word processing application , this may include, for example, an old version of the application being able to display and edit documents that were created by a newer version. Parts of the document for which there is no function in the old version cannot be processed. However, upward compatibility means that these parts do not affect the proper functioning of the old version.
In programming , ensuring upward compatibility is more difficult than ensuring backward compatibility, because when you create a version of the application you do not yet know all the formats and structures of later versions. Nevertheless, the current version must be able to work with these formats and structures. This problem does not arise with downward compatibility, since the formats and structures of old versions are already known when creating the new version.
An old program version that receives data from a new version as input can only process the data for which it has instructions. The rest must be ignored and the program must try not to crash . For example, web browsers ignore new HTML tags that they do not know about.
Many programs are now upwardly compatible and can also compensate for large differences between versions. If capabilities of a later program version are brought into an earlier version via update, one speaks of a backport .
Upward compatibility of computer hardware can be achieved, for example, through emulation .
Incompatibility in computer hardware and software
Newer versions of a program are usually backwards compatible with older versions. However, these older versions are often not upwardly compatible. If functions are not only expanded but changed, a new version can become partially (downwards) incompatible with the old version. If this happens with dynamic libraries , the situation that programmers jokingly call " DLL Hell " can easily arise: Since various programs try to use components that are slightly unsuitable for them , nothing works properly.
A concrete example: The Athlon 64 processor from AMD is backwards compatible with the 8086 processor from Intel , which was released in 1978. The Athlon 64 can therefore execute programs from the old 8086. However, the reverse is not true. The compatibility is limited to the instruction set, whereby the execution speed has increased drastically. The new processor itself cannot be replaced with the old one because of different housing designs, signals, supply voltages, etc. The two processors are therefore incompatible with regard to these properties.
Compatibility error (English: bug compatibility ) is a technical term from the information technology , which means that a new and improved software or hardware or an alternative product of a competitor , the same error has, and thus compatible is.
The reason for error compatibility is usually not that it is difficult to fix. The reason is that existing programs rely on the errors and may no longer work if they are fixed. Correcting the bug causes more problems than documenting and maintaining the incorrect behavior. A known error thus quickly becomes part of the interface and is taken into account by users of the same. A change in the interface, even if the content is an error correction , can lead to incorrect behavior in dependent systems.
Example : In the first version of the Atari TOS operating system , the device numbers for the keyboard (here: 3, otherwise: 4) and the MIDI interface (here: 4, otherwise: 3) were interchanged in the Bcostat function . Since the programmers had adjusted to this interchanging and there was working software that used the interchanged device numbers, the documentation was adapted in later versions and the interchanging of the device numbers in this function was retained.
A common strategy is to correct the bugs in the new product, but at least simulate the previous behavior via an option. The system can continue to operate with the new version until it has been adapted to the changes. One then speaks of an error compatibility mode.
Occasionally, advertisements refer to products as "compatible" with those of an established competitor to convey that they are interchangeable with those of an established competitor despite their lower price. However, this "product property" can also be perceived as a negative "interchangeable".
- Markus Bechter: Compatibility assurance of distributed embedded systems in mechatronics , Sierke-Verlag, 2008, ISBN 978-3-86844-091-1
- Understanding Digital Interconnects. Audioholics, LLC, accessed July 27, 2011 .
- Dieter Kranzlmüller: Special Chapter 5: "Transmeta's Crusoe" , lecture slides about Transmeta's Crusoe processor and its error compatibility with Intel x86
- Jankowski, Rabich, Reschke: ATARI Profibuch ST-STE-TT, Sybex Verlag, ISBN 3-88745-888-5 , 12th edition, p. 86, Bcosstat (BIOS 8)