Backward compatibility

Backward compatibility is a property of a system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially in telecommunications and computing. Backward compatibility is sometimes also called downward compatibility.[1]

Modifying a system in a way that does not allow backward compatibility is sometimes called "breaking" backward compatibility.[2]

A complementary concept is forward compatibility. A design that is forward-compatible usually has a roadmap for compatibility with future standards and products.[3]

Wii-gamecube-compatibility
The original model of the Wii video game console, which usually uses wireless controllers, is also backwardly compatible with those from Nintendo's earlier GameCube console, along with said system's games.

Benefits

The associated benefits of backward compatibility are the appeal to an existing user base through an inexpensive upgrade path as well as the network effect, which is particularly important, as it increases the value of goods and services proportionally to the size of the user base.

One example of this is the Sony PlayStation 2 (PS2) which was backward compatible with games for its predecessor PlayStation (PS1). While the selection of PS2 games available at launch was small, sales of the console were nonetheless strong in 2000-2001 thanks to the large library of games for the preceding PS1. This bought time for the PS2 to grow a large installed base and developers to release more quality PS2 games for the crucial 2001 holiday season.

Costs

The associated costs of backward compatibility are a higher bill of materials if hardware is required to support the legacy systems; increased complexity of the product that may lead to longer time to market, technological hindrances, and slowing innovation; and increased expectations from users in terms of compatibility.[2]

A notable example is the Sony PlayStation 3,[4] as the first PS3 iteration was expensive to manufacture in part due to including the Emotion Engine from the preceding PS2 in order to run PS2 games,[5] since the PS3 architecture was completely different from the PS2. Subsequent PS3 hardware revisions have eliminated the Emotion Engine as it saved production costs while removing the ability to run PS2 titles,[5] as Sony found out that backward compatibility was not a major selling point for the PS3.[5] in contrast to the PS2. The PS3's chief competitor, the Microsoft Xbox 360, took a different approach to backward compatibility by using software emulation in order to run games from the first Xbox,[6] rather than including legacy hardware from the original Xbox which was quite different from the Xbox 360, however Microsoft stopped releasing emulation profiles after 2007.

Hardware

A simple example of both backward and forward compatibility is the introduction of FM radio in stereo. FM radio was initially mono, with only one audio channel represented by one signal. With the introduction of two-channel stereo FM radio, a large number of listeners had only mono FM receivers. Forward compatibility for mono receivers with stereo signals was achieved through sending the sum of both left and right audio channels in one signal and the difference in another signal. That allows mono FM receivers to receive and decode the sum signal while ignoring the difference signal, which is necessary only for separating the audio channels. Stereo FM receivers can receive a mono signal and decode it without the need for a second signal, and they can separate a sum signal to left and right channels if both sum and difference signals are received. Without the requirement for backward compatibility, a simpler method could have been chosen.[7]

Full backward compatibility is particularly important in computer instruction set architectures, one of the most successful being the x86 family of microprocessors. Their full backward compatibility spans back to the 16-bit Intel 8086/8088 processors introduced in 1978. (The 8086/8088, in turn, were designed with easy machine-translatability of programs written for its predecessor in mind, although they were not instruction-set compatible with the 8-bit Intel 8080 processor as of 1974. The Zilog Z80, however, was fully backwards compatible with the Intel 8080.) Fully backwards compatible processors can process the same binary executable software instructions as their predecessors, allowing the use of a newer processor without having to acquire new applications or operating systems.[8] Similarly, the success of the Wi-Fi digital communication standard is attributed to its broad forward and backward compatibility; it became more popular than other standards that were not backward compatible.[9]

Software

Compiler backward compatibility may refer to the ability of a compiler of a newer version of the language to accept programs or data that worked under the previous version.[10]

A data format is said to be backward compatible with its predecessor if every message or file that is valid under the old format is still valid, retaining its meaning under the new format.[11]

See also

References

  1. ^ J.K. Petersen (2002), The Telecommunications Illustrated Dictionary (Second ed.), CRC Press, ISBN 9781420040678
  2. ^ a b Paul Belleflamme; Martin Peitz (2010), "Strategies in standard wars", Industrial Organization: Markets and Strategies, Cambridge University Press, ISBN 9780521862998
  3. ^ Jeffrey Zeldman (2006). Designing with Web Standards. Peachpit Press. pp. 15–16. ISBN 0-321-38555-1.
  4. ^ tweet_btn(), Tony Smith 16 Nov 2006 at 12:00. "Sony PS3 'costs at least $805-840' to make". www.theregister.co.uk. Retrieved 2019-03-08.
  5. ^ a b c Arendt, Susan (2007-02-26). "Sony Confirms Backwards Compatibility Dumped to Lower Costs". Wired. ISSN 1059-1028. Retrieved 2019-03-08.
  6. ^ "MS Engineer Speaks on Xbox 360 Backward Compatibility - Xbox". web.archive.org. 2013-04-01. Retrieved 2019-03-08.
  7. ^ Winder, Steve; Carr, Joseph (2002), Newnes Radio and RF Engineering Pocket Book (3 ed.), Newnes, pp. 121–123, ISBN 9780080497471
  8. ^ Naresh Jotwani (2009), Computer System Organization, Tata McGraw-Hill Education, pp. 320–324, ISBN 9781259081217
  9. ^ Perahia, Eldad; Stacey, Robert (2013), "Foreword", Next Generation Wireless LANs: 802.11n and 802.11ac, Cambridge University Press, ISBN 9781107016767
  10. ^ Kay, Michael (2004). XSLT 2.0 Programmer's Reference. Wiley. ISBN 0-7645-6909-0.
  11. ^ Bos, Bert (2003). "Backwards Compatibility". What is a Good Standard?. Retrieved July 12, 2016.
10G-EPON

The 10 Gbit/s Ethernet Passive Optical Network standard, better known as 10G-EPON allows computer network connections over telecommunication provider infrastructure. The standard supports two configurations: symmetric, operating at 10 Gbit/s data rate in both directions, and asymmetric, operating at 10 Gbit/s in the downstream (provider to customer) direction and 1 Gbit/s in the upstream direction. It was ratified as IEEE 802.3av standard in 2009. EPON is a type of passive optical network, which is a point-to-multipoint network using passive fiber optic splitters rather than powered devices for fan-out from hub to customers.

Amiga Hombre chipset

Hombre is a RISC chipset for the Amiga, designed by Commodore, which was intended as the basis of its next generation game machine called CD64 and a 3D accelerator PCI card. Hombre was canceled along with the bankruptcy of Commodore International.

Atari 7800

The Atari 7800 ProSystem, or simply the Atari 7800, is a home video game console officially released by the Atari Corporation in 1986. It is almost fully backward-compatible with the Atari 2600, the first console to have backward compatibility without the use of additional modules. It was considered affordable at a price of US$140 (equivalent to $320 in 2018).

The 7800 has significantly improved graphics hardware over the 2600, but uses the same audio chip. It also shipped with a different model of joystick from the 2600-standard CX40.

The 1986 launch is sometimes referred to as a "re-release" or "relaunch" because the Atari 7800 had originally been announced on May 21, 1984, to replace Atari Inc.'s Atari 5200, but a general release was shelved due to the sale of the company.

Bell character

A bell code (sometimes bell character) is a device control code originally sent to ring a small electromechanical bell on tickers and other teleprinters and teletypewriters to alert operators at the other end of the line, often of an incoming message. Though tickers punched the bell codes into their tapes, printers generally do not print a character when the bell code is received. Bell codes are usually represented by the label "BEL". They have been used since 1870 (initially in Baudot code).To maintain backward compatibility, video display terminals (VDTs) that replaced teletypewriters included speakers or buzzers to perform the same function, as did the personal computers that followed. Modern terminal emulators often integrate the warnings to the desktop environment (e.g., the Mac OS X Terminal will play the system warning sound) and also often offer a silent visual bell feature that flashes the terminal window briefly.

Dancer (software)

Dancer is an open source lightweight web application framework written in Perl and inspired by Ruby's Sinatra.

In April 2011, Dancer was rewritten from scratch and released as Dancer2. The reason for the rewrite was to fix architectural issues and eliminate the use of singletons. Development of Dancer1 was at first frozen, but was later continued to maintain backward compatibility for existing apps.Dancer is developed through GitHub, with stable releases available via CPAN. Dancer2 is released as a separate module.

Deprecation

For the sense "prayer or spell against evil" see apotropaic magic (antonym imprecation).In several fields, deprecation is the discouragement of use of some terminology, feature, design, or practice, typically because it has been superseded or is no longer considered efficient or safe, without completely removing it or prohibiting its use. It can also imply that a feature, design, or practice will be removed or discontinued entirely in the future.

Downgrade attack

A downgrade attack is a form of cryptographic attack on a computer system or communications protocol that makes it abandon a high-quality mode of operation (e.g. an encrypted connection) in favor of an older, lower-quality mode of operation (e.g. cleartext) that is typically provided for backward compatibility with older systems. An example of such a flaw was found in OpenSSL that allowed the attacker to negotiate the use of a lower version of TLS between the client and server. This is one of the most common types of downgrade attacks. Another example is intercepting web traffic and redirecting the user from the secure, HTTPS version of a website to an unencrypted HTTP version.

Downgrade attacks are often implemented as part of a man-in-the-middle attack, and may be used as a way of enabling a cryptographic attack that might not be possible otherwise. Downgrade attacks have been a consistent problem with the SSL/TLS family of protocols; examples of such attacks include the POODLE attack.

Downgrade attacks in the TLS protocol take many forms. Researchers have classified downgrade attacks with respect to four different vectors, which represents a framework to reason about downgrade attacks as follows:

There are some recent proposals that exploit the concept of prior knowledge to enable TLS clients (e.g. web browsers) to protect sensitive domain names against certain types of downgrade attacks that exploit the clients' support for legacy versions or non-recommended ciphersuites (e.g. those that do not support forward secrecy or authenticated encryption) such as the POODLE, ClientHello fragmentation, and a variant of the DROWN (aka "the special drown") downgrade attacks.

Removing backward compatibility is often the only way to prevent downgrade attacks. However, sometimes the client and server can recognize each other as up-to-date in a manner that prevents them. For example, if a Web server and user agent both implement HTTP Strict Transport Security and the user agent knows this of the server (either by having previously accessed it over HTTPS, or because it is on an "HSTS preload list"), then the user agent will refuse to access the site over vanilla HTTP, even if a malicious router represents it and the server to each other as not being HTTPS-capable.

Extended Adaptive Multi-Rate – Wideband

Extended Adaptive Multi-Rate – Wideband (AMR-WB+) is an audio codec that extends AMR-WB. It adds support for stereo signals and higher sampling rates. Another main improvement is the use of transform coding (transform coded excitation - TCX) additionally to ACELP. This greatly improves the generic audio coding. Automatic switching between transform coding and ACELP provides both good speech and audio quality with moderate bit rates.

As AMR-WB operates at internal sampling rate 12.8 kHz, AMR-WB+ also supports various internal sampling frequencies ranges from 12.8 kHz to 38.4 kHz. AMR-WB uses 16 kHz sampling frequency with a resolution of 14 bits left justified in a 16-bit word. AMR-WB+ uses 16/24/32/48 kHz sampling frequencies with a resolution of 16 bits in a 16-bit word.3GPP originally developed the AMR-WB+ audio codec for streaming and messaging services in Global System for Mobile communications (GSM) and Third Generation (3G) cellular systems.

Its primary target applications are Packet-Switched Streaming service (PSS), Multimedia Messaging Service (MMS) and Multimedia Broadcast and Multicast Service (MBMS).

File storage of AMR-WB+ encoded audio is specified within the 3GP container format, 3GPP-defined ISO-based multimedia file format defined in 3GPP TS 26.244.The AMR-WB+ codec has a wide bit-rate range, from 5.2–48 kbit/s. Mono rates are scalable from 5.2–36 kbit/s, and stereo rates are scalable from 6.2–48 kbit/s, reproducing bandwidth up to 20 kHz (approaching CD quality). Moreover, it provides backward compatibility with AMR wideband.

Forward compatibility

Forward compatibility or upward compatibility is a design characteristic that allows a system to accept input intended for a later version of itself. The concept can be applied to entire systems, electrical interfaces, telecommunication signals, data communication protocols, file formats, and computer programming languages. A standard supports forward compatibility if a product that complies with earlier versions can "gracefully" process input designed for later versions of the standard, ignoring new parts which it does not understand.

The objective for forward compatible technology is for old devices to recognise when data has been generated for new devices.Forward compatibility for the older system usually means backward compatibility for the new system, i.e. the ability to process data from the old system; the new system usually has full compatibility with the older one, by being able to both process and generate data in the format of the older system.

Forward compatibility is not the same as extensibility. A forward compatible design can process at least some of the data from a future version of itself. An extensible design makes upgrading easy. An example of both design ideas can be found in web browsers. At any point in time, a current browser is forward compatible if it gracefully accepts a newer version of HTML. Whereas how easily the browser code can be upgraded to process the newer HTML determines how extensible it is.

Legacy mode

In computing, legacy mode is a state in which a computer system, component, or software application behaves in a way different from its standard operation in order to support older software, data, or expected behavior. It differs from backward compatibility in that an item in legacy mode will often sacrifice newer features or performance, or be unable to access data or run programs it normally could, in order to provide continued access to older data or functionality. Sometimes it can allow newer technologies that replaced the old to emulate them when running older operating systems.

Linux Standard Base

The Linux Standard Base (LSB) is a joint project by several Linux distributions under the organizational structure of the Linux Foundation to standardize the software system structure, including the Filesystem Hierarchy Standard used in the Linux kernel. The LSB is based on the POSIX specification, the Single UNIX Specification (SUS), and several other open standards, but extends them in certain areas.

According to the LSB:

The goal of the LSB is to develop and promote a set of open standards that will increase compatibility among Linux distributions and enable software applications to run on any compliant system even in binary form. In addition, the LSB will help coordinate efforts to recruit software vendors to port and write products for Linux Operating Systems.

The LSB compliance may be certified for a product by a certification procedure.The LSB specifies for example: standard libraries, a number of commands and utilities that extend the POSIX standard, the layout of the file system hierarchy, run levels, the printing system, including spoolers such as CUPS and tools like Foomatic, and several extensions to the X Window System.

LSB also specifies boot facilities, such as $local_fs, $network, which are used to indicate service dependencies in System V-style initialization scripts. A machine readable comment block at the top of a script provides the information necessary to determine at which point of the initialization process the script should be invoked. It is called the LSB header.The command lsb_release -a is available in many systems to get the LSB version details, or can be made available by installing an appropriate package, for example the redhat-lsb package in Red-Hat-flavored distributions such as Fedora, or the lsb-release package in Debian-based distributions.

List of Xbox games compatible with Xbox 360

The Xbox 360 gaming console has received updates from Microsoft from its launch in 2005 until November 2007 that enable it to play select games from its predecessor, Xbox. The Xbox 360 launched with backward compatibility with the number of supported Xbox games varying depending on region. Microsoft continued to update the list of Xbox games that were compatible with Xbox 360 until November 2007 when the list was finalized. Microsoft later launched the Xbox Originals program on December 7, 2007 where select backward compatible Xbox games could be purchased digitally on Xbox 360 consoles with the program ending less than two years later in June 2009. The following is a list of all backward compatible games on Xbox 360 under this functionality.

List of backward compatible games for Xbox One

The Xbox One gaming console has received updates from Microsoft since its launch in 2013 that enable it to play select games from its two predecessor consoles, Xbox and Xbox 360. On June 15, 2015, backward compatibility with supported Xbox 360 games became available to eligible Xbox Preview program users with a beta update to the Xbox One system software. The dashboard update containing backward compatibility was released publicly on November 12, 2015. On October 24, 2017, another such update added games from the original Xbox library. The following is a list of all backward compatible games on Xbox One under this functionality.

MPEG-H

MPEG-H is a group of international standards under development by the ISO/IEC Moving Picture Experts Group (MPEG). It has various "parts" – each of which can be considered a separate standard. These include a media transport protocol standard, a video compression standard, an audio compression standard, a digital file format container standard, three reference software packages, three conformance testing standards, and related technologies and technical reports. The group of standards is formally known as ISO/IEC 23008 – High efficiency coding and media delivery in heterogeneous environments. Development of the standards began around 2010, and the first fully approved standard in the group was published in 2013. Most of the standards in the group have been revised or amended several times to add additional extended features since their first edition.

MPEG-H consists of the following parts:

Part 1: MPEG Media Transport (MMT) – a media streaming format similar to the Real-time Transport Protocol that is adaptable to different networks

Part 2: High Efficiency Video Coding (HEVC, jointly developed with the ITU-T Video Coding Experts Group and also published as ITU-T H.265) – a video compression standard that doubles the data compression ratio compared to H.264/MPEG-4 AVC

Part 3: 3D Audio – an audio compression standard for 3D audio that can support many loudspeakers

Part 4: MMT Reference and Conformance Software (not yet published)

Part 5: Reference Software for High Efficiency Video Coding (also published as ITU-T H.265.2)

Part 6: 3D Audio Reference Software

Part 7: MMT Conformance (not yet published)

Part 8: Conformance Specification for HEVC (also published as ITU-T H.265.1)

Part 9: 3D Audio Conformance Testing

Part 10: MPEG Media Transport Forward Error Correction Codes

Part 11: MPEG Media Transport Composition Information

Part 12: Image File Format – a.k.a. High Efficiency Image File Format (HEIF), based on the ISO base media file format

Part 13: MPEG Media Transport Implementation Guidelines (a technical report rather than a standard)

Part 14: Conversion and Coding Practices for HDR/WCG Y′CbCr 4:2:0 Video with PQ Transfer Characteristics (a technical report also published as ITU-T H-series supplement 15)

Part 15: Signalling, backward compatibility and display adaptation for HDR/WCG video (a technical report also published as ITU-T H-series supplement 18)

MicroATX

microATX (sometimes referred to as µATX, uATX or mATX) is a standard for motherboards that was introduced in December 1997. The maximum size of a microATX motherboard is 9.6 × 9.6 in (244 × 244 mm). The standard ATX size is 25% longer, at 12 × 9.6 in (305 × 244 mm).

Currently available microATX motherboards support CPUs from VIA, Intel or AMD.

PlayStation Vita system software

The PlayStation Vita system software is the official firmware and operating system for the PlayStation Vita and PlayStation TV video game consoles. It uses the LiveArea as its graphical shell. The PlayStation Vita system software has one optional add-on component, the PlayStation Mobile Runtime Package. The system is built on a Unix-base which is derived from FreeBSD and NetBSD. The last version of the system software is 3.70, which was made available on January 14, 2019.

SATA Express

SATA Express (abbreviated from Serial ATA Express and sometimes unofficially shortened to SATAe) is a computer bus interface that supports both Serial ATA (SATA) and PCI Express (PCIe) storage devices, initially standardized in the SATA 3.2 specification. The SATA Express connector used on the host side is backward compatible with the standard SATA data connector, while it also provides two PCI Express lanes as a pure PCI Express connection to the storage device.Instead of continuing with the SATA interface's usual approach of doubling its native speed with each major version, SATA 3.2 specification included the PCI Express bus for achieving data transfer speeds greater than the SATA 3.0 speed limit of 6 Gbit/s. Designers of the SATA interface concluded that doubling the native SATA speed would take too much time to catch up with the advancements in solid-state drive (SSD) technology, would require too many changes to the SATA standard, and would result in a much greater power consumption compared with the existing PCI Express bus. As a widely adopted computer bus, PCI Express provides sufficient bandwidth while allowing easy scaling up by using faster or additional lanes.In addition to supporting legacy Advanced Host Controller Interface (AHCI) at the logical interface level, SATA Express also supports NVM Express (NVMe) as the logical device interface for attached PCI Express storage devices. While the support for AHCI ensures software-level backward compatibility with legacy SATA devices and legacy operating systems, NVM Express is designed to fully utilize high-speed PCI Express storage devices by leveraging their capability of executing many I/O operations in parallel.

Source-code compatibility

Source-code compatibility (source-compatible) means that a program can run on computers (or operating systems), independently of binary-code compatibility and that the source code is needed for portability.The source code must be compiled before running, unless the computer used has an interpreter for the language at hand. The term is also used for assembly language compatibility, where the source is a human-readable form of machine code that must be converted into numerical (i.e. executable) machine code by an assembler. This is different from binary-code compatibility, where no recompilation (or assembly) is needed.Source compatibility is a major issue in the developing of computer programs. For example, most Unix systems are source-compatible, as long as one uses only standard libraries. Microsoft Windows systems are source-compatible across one major family (the Windows NT family, from NT 3.1 through Windows 10, or the family that includes Windows 95, Windows 98, and Windows Me), with partial source compatibility between the two families.

USB 3.0

USB 3.0 is the third major version of the Universal Serial Bus (USB) standard for interfacing computers and electronic devices. Among other improvements, USB 3.0 adds the new transfer rate referred to as SuperSpeed USB (SS) that can transfer data at up to 5 Gbit/s (625 MB/s), which is about 10 times faster than the USB 2.0 standard. It is recommended that manufacturers distinguish USB 3.0 connectors from their USB 2.0 counterparts by using blue color for the Standard-A receptacles and plugs, and by the initials SS.USB 3.1, released in July 2013, is the successor standard that replaces the USB 3.0 standard. USB 3.1 preserves the existing SuperSpeed transfer rate, giving it the new label USB 3.1 Gen 1, while defining a new SuperSpeed+ transfer mode, called USB 3.1 Gen 2 which can transfer data at up to 10 Gbit/s over the existing USB-type-A and USB-C connectors (1250 MB/s, twice the rate of USB 3.0).USB 3.2, released in September 2017, replaces the USB 3.1 standard. It preserves existing USB 3.1 SuperSpeed and SuperSpeed+ data modes and introduces two new SuperSpeed+ transfer modes over the USB-C connector using two-lane operation, with data rates of 10 and 20 Gbit/s (1250 and 2500 MB/s).

This page is based on a Wikipedia article written by authors (here).
Text is available under the CC BY-SA 3.0 license; additional terms may apply.
Images, videos and audio are available under their respective licenses.