Emulators and Virtual Machines
This documents some of the emulators and software systems that help to keep vintage software alive in the modern world. Readership is Public.
Abstract
Over time it becomes harder to find platforms on which vintage software can run. Fortunately there are a number of emulators, operating systems and virtual machine frameworks that are sustainable in the long term.Introduction
Over time, vintage hardware is hard to maintain or fails completely so that it is an increasingly scarce resource for the hobbyist or computer historian. The software developed for this scarce hardware becomes moribund unless it can be run on emulators of some kind. Furthermore, the software tools used to develop the vintage software also require what is now obsolete hardware and operating systems to run. The source for much of this software is not widely available and in some cases has been lost. Some of it relies on proprietary operating systems which the next generation of hobbyists may find hard to obtain.Fortunately there are free and open source systems that mitigate this. Because they are open, these systems are sustainable and can continue to evolve to run on whatever hardware and software platforms might exist in future.
Below are some examples.
Virtual Box
This is a virtual machine framework originally made by Innotek and then supported as an open source system by Sun, then Oracle. I have been using it since 2009 for a variety of purposes and it is actively maintained. One frequent use I have for it is to run software for old scanners. The scanners still work very well but the manufacturer's software for them isn't always installable on modern versions of Windows, so I install them on Windows 2000 systems running under Virtual Box. These systems will also run vintage DOS and Windows software that modern 64-bit Windows no longer supports. Of course, doing this is only an option if you have access to a Windows 2000 distribution kit. Will that be easy in the future? I don't know, but see ReactOS below.Use of Virtual Box can be automated from the command interface or via a Python interface.
Visit VIRTUALBOX.ORG for more information about Virtual Box.
DOSbox
This is an open-source DOS emulator which has been ported to a number of platforms. It is scriptable and easily configurable to define the way it interacts with the host system and some of its peripherals.In use, DOSBox creates a DOS command window and a status window. See the illustration in my Organiser II document in which I describe using it to support serial communications with vintage Psion 16-bit PC software.
When DOSBox starts, it supports some additional commands including a MOUNT command that lets you create DOS drives that map to places in the host filing system. This makes exchanging files with the emulation very easy. There is also a comprehensive editable configuration file that lets you customise the emulation in various ways. This includes the ability to map the emulated serial ports to, er, COM ports on the host. These days that often means a USB-serial interface that pretends to be a serial port. These often produce quite high-numbered COM ports which your legacy software may not be expecting, but you con provide a mapping to whatever number you want in the configuration file.
Visit the DOSBOX.COM web site for further information.
FreeDOS
If you want to run DOS on actual hardware or a Virtual Machine, FreeDOS may be worth considering. This is an unencumbered open source DOS implementation which is being actively developed.The project seems to have started in 1998 and the latest release was in 2012. However there is still activity in terms of people writing applications for it such as network stacks.
Microsoft released the source code for MS-DOS 1.0 and 2.0 in 2014, but it is not properly free in that it would taint people who wanted to contribute to FreeDOS, for example.
See WWW.FREEDOS.ORG for more information.
ReactOS
This is a free open source operating system based on the best design principles found in the Windows NT® architecture. Their main goal is to provide an operating system which is binary compatible with Windows. I find this interesting for the long term sustainability of vintage application software, though it isn't clear to me whether that would be consistent with the long term goals of the ReactOS project..The project seems to have started in 1996 and formally became ReactOS in 1998. Progress seems slow and I don't get the impression of a big team. But this is a big undertaking and they are clearly tenacious. They have done a lot of work on NTVDM, which seems to be capable of running 16-bit applications.
They are having difficulty with NTFS though, which might be a problem.
See REACTOS.ORG for more information.
Updates
This document is maintained by Pute. Comments should be addressed to PNJ at XQWV dot ORG dot UK.- PNJ, 2016-01-18. Started.
- PNJ, 2016-01-27. Added entries for DOSBox, FreeDOS and ReactOS.
- PNJ, 2016-01-30. Correct minor error in wording.