May 17, 2009

Shovelling Up the Mess left behind by Windows

One of the interesting uses for Linux nowadays is to re-gain compatibility with older Software and Hardware. As far as software is concerned, this can be broadly divided into two groups: Applications and Entertainment (mainly Games).

Application Software

There isn't much call for running older applications beyond a certain age amongst home users; and any company who knows what it is doing will migrate it's data and document formats to newer versions of software as they are procured.

If an application vendor goes out of business, an older version of their software can continue to be run unless there is a conflict with a newer operating system, at which point Virtualization or Emulation can take over.

Of course, the ideal solution is to convert the data into platform-neutral formats, with standards defined by a consortium. This gives businesses the assurance that they will still have access to their data through solutions from competing vendors.

Entertainment Software

For many years now, some of us have been using (or writing!) emulation software to play our favourite titles from platforms which are now consigned to history. We accept that this workaround is needed, as the hardware and operating system we are using now are so radically different to what the title originally required. There is a label describing the hardware / software required to run the title, such as 'ZX Spectrum', 'Amiga' or 'Atari ST', and we can therefore accept that we need an Emulator to run on 'Linux', 'Windows' or 'Wii'.

But 'PC' games are a different matter. There is a whole slew of older games for DOS / Windows 3.x / Windows 9x that will just not run on NT-based Windows, or require work arounds to work, often performing poorly in the process.  Worse still, x64 Windows systems do not have the NTVDM necessary to run DOS programs at all, and support for 16-bit Windows applications has been removed entirely.

 The fact is that nowadays, an x86 / x64 Linux machine equipped with Dosbox, Dosemu, and Wine (including the propreitary forks such as Cedega and Crossover Games) is in a far better position to run these older games than a modern off-the-shelf Windows system. Dosbox also contains an x86 CPU emulator, and can thus be run on any supported architecture.


Modern Windows systems are great for supporting new hardware; Linux less so. You buy a £5 webcam today, and it's virtually guaranteed to work on Windows (and 'Mac' if it is written on the label). If the hardware manufacturer is serious about supporting Open Source, and release specifications and / or reference drivers, than you are fairly likely to find a means of getting the device to work on Linux or other Open Source systems.

Otherwise you are relying on a talented person who knows the necessary driver API's (either kernelspace, such as v4l, or userspace, such as SANE) and is prepared to experiment with the hardware, either for their own use or for a bounty, to write the necessary driver support. However, once the support is in Linux, it usually stays. Even if the API's change, there are usually  enough interested maintainers who will modify the code as necessary to make sure that older drivers still compile.

This is in stark contrast to Windows, where all you get from the manufacturer is binary blobs, a few mystic 'sys' and 'inf' files. If Microsoft change their kernel ABI, or port Windows to a new architecture (as x64 arguably is, as you cannot mix x86 and x64 code in a process, least of all the kernel!) then older drivers will break. If the manufacturer has gone out of business, or wishes to not support a device, the end user loses.

Microsoft have also made this situation worse - all drivers installed onto Vista x64 SP1 have to be signed, effectively ending any hopes at writing Kernel-Mode drivers by enthusiastic Windows users (were there ever any?), or companies who don't consider it economically viable to pay WHQL fees to audit the drivers for older devices, when they could just sell a new device.

I have a specific example here - my mother was using a 'Packard Bell'-branded Mustek scanner under Windows. Support for these drivers was dicy under Windows XP SP2 and onwards, often requiring her to reboot after scanning a single page before she could scan another. However, under SANE on Linux it works perfectly under the 'gt68xx' backend, and is likely to do so for many years to come. Yes, the software is more complicated for her to use, but she is relieved that it works flawlessly, and is grateful it will continue to do so.


I'm hoping that Microsoft's power-hungry grab for the brand-label of 'PC' ("Personal Computer") to describe their particular Operating System running on a particular CPU / Hardware architecture will be a part of their undoing.  The fact that in earlier days people were attracted to the 'PC' brand for the large software and hardware compatability will prove that they cannot even be compatible with their own standards, which the community has had to provide.

It's not just Microsoft though; by clinging to the brand name of 'Macintosh', Apple has made a similar rod for their own back. If you were using OSX prior to 10.5 on a PPC machine, thanks to the 'Classic' emulator you would be guaranteed to be able to run almost any 'Macintosh' title. However, the shift to 10.5 and Intel processors has ended their 'support' of this. Personally, i  believe the label 'Macintosh' to be highly irrelevant in describing modern Apple systems.


Having now forgotten the enthusiasts that put them where they now are, Microsoft and Apple haven't banked on them still being around, and being able to influence the decisions of non-enthusiasts. We want to carry on running older games. We don't want to have to ditch perfectly good peripherals due to an upgrade of an operating system.

As those PC users (who know enough to be able to support themselves) try to use their older peripherals and software and find that they fail to work on Windows, yet work fine in Linux, the knowledge and reputation of Linux will increase. So the future is actually kinda bright for us, at least in this area!

Although it might seem like flame bait to suggest it on a Linux site, i'm kind of hoping ReactOS achieves good XP compatability and look and feel. Users are reluctant to change, and at least they can carry on with their Windows habits whilst  embracing the freedom that Open Source software brings.

 Richard Foulkes is not a Technical Journalist. He holds no fashionable Industry qualfications and has never spoken at a conference or even been to one. He makes no claim of being an IT professional. He is also not currently employed.

Click Here!