Angry computer graphic

Software backwards compatibility

When new software versions are released, it is a headache for consumers and hardware manufacturers alike.

Despite the popularity and increasing stability of freeware and open-source applications, software is making an ever heftier dent in users' budgets. To add insult to penury, major updates and version changes often render older formats and hardware unusable. So what can be done to alleviate this computer-age old dilemma? A device is said to be backward- or downward-compatible if it can work with input generated by an older device. If products designed for a new standard can receive, read, view or play older standards or formats, then the product is said to be backward-compatible.

Before the computer age, this problem was well understood by the radio industry. For example, the introduction of FM stereo, in the late 1950s allowed backward compatibility since the new FM radio receivers could receive monaural signals. It also allowed forward compatibility, since old monaural FM radio receivers could receive a signal from the new stereo transmitters.

In the current computer world, backward compatibility refers to the ability of a software compiler for one version of the language to accept programs or data that worked for the previous version.

On the other hand, a data format is also said to be backward compatible with its predecessor if every message or file that is valid under the old format is also valid, and retains its meaning, under the new.

In other words, a product or a technology is said to be backward-compatible when it is able to fully take the place of an older product, by interoperating with products that were designed for the older product.

The gaming industry

Gaming consumers are a very fickle constituency and can change their allegiance at the lob of an angry bird. For example, the Nintendo Wii hasn't seen any significant changes since its release in 2006, but later this year Nintendo is revamping the console and phasing out the old Wii. The slimmer system will come packaged with a Wii Motion Plus controller and Nunchuck, as well as two games, 'Wii Sports' and 'Wii Party'.

Significantly, the new Wii will also completely do away with any Gamecube functionality – controller ports, memory ports and, of course, game compatibility.

Anyone would be outraged about the lack of love for Nintendo's back catalogue – particularly if they already own a Wii. But you have to remember that the Gamecube was first introduced over ten years ago. Supporting legacy hardware is expensive – therefore Nintendo are now able to offer future customers a price cut before the successor to the Wii is introduced.

Security issues

Have you upgraded to Windows 7 yet? The operating system is already middle aged in personal computer years. Since the first upgrade to MS-DOS, newer operating systems have always supported programs written in previous versions - as businesses write down the value of their capital over a fixed period. But this thirst for backwards compatibility opens up huge opportunities for malicious software writers.

Load a Windows executable into a text reader and you will notice it begins with the letters MZ.

These are the initials of Mark Zbikowski, an early MS-DOS developer who developed the first portable file formats for DOS and Windows. Mario Vuksan and Tomislav Pericin, co-founders of Reversing Labs, explained how hackers can exploit legacy backdoors in code in operating systems designed to support legacy software.

'PE [portable executables] is the main executable image file format on Windows operating system since its introduction in Windows NT 18 years ago. PE file format itself can be found on numerous Windows-based devices including PCs, mobile and gaming devices, BIOS environments and others,' explains Vuksan.

You will also find it in embedded Windows and XBOX and Windows Phone. Security researchers need to be aware of all these possible malformations and take them into account when analysing code.

While the jump from Windows XP to Vista resulted in some compatibility headaches, the move from Vista to Windows 7 was relatively painless. You could still use legacy XP software through a bundled emulator with the Ultimate and Professional SKU of the software. According to Microsoft, the upgrade to Windows 8 will be even simpler.

'The gateway to get to Windows 8 is Windows 7, and we will have backward compatibility with Windows 7 embedded into Windows 8. That's something that we're very committed to. But that's a really important first pillar,' Kevin Turner, Microsoft's chief operating officer told delegates at the Worldwide Partner Conference 2011.

Tami Reller, corporate vice president, Windows & Windows Live, said that Windows 8's hardware requirements will be similar, or even lower, than the ones for Windows 7.

'For our business customers, your customers, this is an important element because the ability of Windows 8 to run on Windows 7 devices ensures that hardware investments made today will be able to take advantage of Windows 8 in the future. And there's beautiful hardware in the market today,' says Reller.

Web compatibility

But the Web has to be backward compatible. Adobe recognised this and decided to embrace it rather than compete. That can especially hold true to Adobe's entry into Apple mobile devices such as the iPhone and iPad, which supports HTML 5.

But in the past Apple has stated that their developers are encouraged to stray away from creating apps for Adobe's closed cross-platform plug-ins. But recently Apple's CEO Steve Jobs welcomed Adobe content authored apps being integrated into their iOS. Jobs stated his decision last year that Flash is a closed system and Apple initially saw some technological issues because everything is controlled through Adobe.

HTML5 is defined as backward-compatible with the way user agents handle deployed content. To keep the authoring language simple for authors, several elements and attributes are not included as outlined in the other sections of this document, such as presentational elements that are better dealt with using CSS.

User agents, however, will always have to support these older elements and attributes and this is why the HTML5 specification clearly separates requirements for authors and user agents.

Also, since HTML5 has separate conformance requirements for authors and user agents, there is no longer a need for marking features 'deprecated'.

The HTML5 specification will not be considered finished before there are at least two complete implementations of the specification. A test suite will be used to measure completeness of the implementations. This approach differs from previous versions of HTML, where the final specification would typically be approved by a committee before being implemented. The goal of this change is to ensure that the specification is implementable and usable by authors once it is finished.

Forward compatibility

Future proofing software or hardware is an issue which hardware and software developers need to consider. Forward compatibility is the ability of a system to accept input intended for later versions.

The introduction of a forward-compatible technology implies that old devices partly can understand data generated by new devices.

The concept can be applied to electrical interfaces, telecommunication signals, data communication protocols, file formats, and programming languages.

But this is not to be confused with extensibility. A forward compatible system can accept data from a future version of itself and pick out the 'known' part of the data. An example is a text-only word-processor ignoring picture data from a future version. An extensible system is one that can fully handle the new data in the newer input format. For instance, a text-only word-processor that can handle picture data.

A forward-compatible system is expected to handle gracefully newer-version input by ignoring the unknowns and selecting the known subset of the data that it is capable of handling. This is harder to achieve than backward compatibility because a system needs to cope with an unknown future data format or requests for unknown future features.

Another useful strategy is when original software is able to be updated by downloading a viewer or converter that allows the user read or even write files from newer versions of the program, even though (in some cases) the user may not be able to edit them. Microsoft has often used this strategy to ensure that files created in newer versions of Office are still readable in older packages. For example, Office 2003 has an update from the Internet that allows the user to read and write files created in later versions.

When a document is created in Microsoft Word 2007 and opened in an earlier version (say, Word 2003), Microsoft Word 2003 tells the user it can download a converter to read files in the newer Microsoft Word 2007 format.

This is likely to have the consequence where the number of major updates may increase from say every three years to annually.

It is a very attractive proposition for software companies to move to this because it will encourage their customers to always update to the latest version, but developers will have to ensure that later versions will always be able to compatible with existing hardware. Most users are unlikely to purchase software annually (other than through an affordable subscription scheme) in these austere times.*

Recent articles

Info Message

Our sites use cookies to support some functionality, and to collect anonymous user data.

Learn more about IET cookies and how to control them

Close