25

Quoting from Jim Hall's "FreeDOS turns 25 years old: An origin story":

Around 1994, Microsoft announced that its next planned version of Windows would do away with MS-DOS. But I liked DOS. Even though I had started migrating to Linux, I still booted into MS-DOS to run applications that Linux didn't have yet.

Given that DOS had useful software not available for Linux, it seems like there might might have been a market for software that would enable at least some DOS software to run natively on Linux or another UNIX derivative. Obviously software that directly accessed the hardware would likely misbehave in such an environment, but as evidenced by the existence of machines like Siemens PC-D, there was at least theoretically a market for systems that could only run "clean DOS applications".

Windows 2000 (and possibly earlier versions of Windows NT?) had a similar compatibility layer, NTVDM, so theoretically a compatibility layer like this may have been able to exist for a UNIX-based system similar to how Wine works today to allow Windows applications to run on Linux. And Intel-based CPUs at the time supported a virtual 8086 mode that would have allowed 16-bit real-mode code to run in a virtual machine under a 32-bit UNIX implementation (assuming the OS was running on an Intel-based CPU of course).

A system like this could have theoretically appealed to power users of UNIX-based systems, since it would have allowed multiple MS-DOS applications to run simultaneously and possibly even be integrated into shell scripts depending on the features of the DOS compatibility layer.

Did DOS compatibility layers like this exist for UNIX or any UNIX-like OS? To be clear, I don't mean DOS emulators like DOSBox — the age of hardware I'm thinking of would likely have made the performance of a full system emulator horribly bad, even for DOS. I mean something closer to Wine or NTVDM.

7
  • 6
    dosemu was started in the 1990s I believe. dosemu2 is a much later creation based on the original. They both run a DOS but provide a file system redirector so the DOS can access Linux host directories as DOS drives. The redirector is based on MachFS, which originates from a DOS layer for Mach.
    – ecm
    Mar 2 at 8:49
  • 5
    Does Windows NT count, since it had both NTVDM and a POSIX subsystem? Mar 2 at 11:56
  • Related tangent: I vaguely recall working with a system in ~1989 that had an 8080 (or 88?) and a Z80 (or Z800?) in the same box. It ran DOS on one and XENIX on the other. Used by many organizations that needed C/PM or DOS and XENIX support. In my case, it was a patient monitoring system with DOS and XENIX running on it. The user could press a key on the keyboard to switch between OS's. I think the XENIX system ran a file share the DOS system could access if I recall correctly. Any SpaceLabs retirees out there?
    – jwdonahue
    Mar 5 at 0:32
  • @ArrayBolt3 In the 1990 I was using a dos command called loadlin.exe which allowed in dos mode to load a Lnd start a unix kernel. Mar 5 at 12:29
  • There was something like doslinux (not sure for the name). You boot in DOS, then run executable file and load Linux. And Linux works on top of FAT file system. Long names were implemented with additional file(s) for metadata.
    – i486
    Mar 5 at 13:12

2 Answers 2

41

it seems like there might might have been a market for software that would enable at least some DOS software to run natively on Linux or another UNIX derivative.

There was indeed, or rather, it was thought that there wouldn’t be much of a market for a Unix system incapable of running DOS programs, at least if it was targeted at the desktop. Especially in the early 90s when a number of vendors were pushing Unix on PCs, it was common for Unix implementations to include support for DOS programs (or have it available as an option). SCO Unix and its descendants relied on DOS Merge; Interactive Unix shipped VP/IX. On 386+ systems, both of these implemented virtual machines relying on the 386’s V86 mode to run DOS binaries without having to emulate the CPU. DOS Merge was also available for 286-based systems, with some limitations, as early as 1986 (VP/IX may have been too, I’m not sure). This comparison of 32-bit graphical Unixes on PC from mid-1993 shows that all major PC Unix vendors either included or planned support for DOS: Dell Unix, Interactive Unix, SCO Open Desktop, UnixWare and Solaris already shipped with DOS support, and Consensys and NeXTstep planned to add it.

Non-x86 Unix systems could also run DOS (and later, Windows) programs, usually through SoftPC. Microsoft themselves licensed SoftPC for use in Windows NT on some non-x86 systems.

On Linux, DOSEMU was released in late 1992; it also relied on V86 mode to run DOS-style operating systems in a virtual machine, without emulating the CPU. A port of Merge to Linux was also made available by Caldera, along with the Wabi Windows emulation tool; the later Win4Lin was also based on Merge.

5
  • 1
    I remember running VP/IX on a Sun386i under the suntools desktop circa late 1988 - early 1989, but I have no fond memories of it at all
    – scruss
    Mar 2 at 14:36
  • 3
    Just as a note, I worked at Caldera in the early 90s, and we added support to DOSEMU for things like mounting Linux directories as new drive letters into the running DOS instance, using the network share capabilities of DOS. This answer really brings back some memories!
    – Tim Bird
    Mar 2 at 20:15
  • These were the better days of Caldera... Mar 3 at 14:42
  • 1
    Wow, good memories.... I haven't heard DOS Merge and VP/IX in decades, but there was a time when I heard them practically every day... I worked at an ISV with software for Unix and DOS, and we were SCO dealers. I had to get SCO certified for that. Running DOS programs on Unix was a big deal back then. At least to get Unix accepted in some companies.
    – mannaggia
    Mar 3 at 15:29
  • A finer point that often gets lost in these discussions is that just because something "existed," it doesn't mean it was a practical choice. One day circa 1991-92, I needed to get some class work done that required DOS. I didn't have a PC in the dorm, the PC lab was packed, but someone told me to try the Unix lab - it was less busy and "you could use an emulator." I jumped on an HP UX (HP-9000?) workstation with what I recall was SoftPC. Performance was awful, random things didn't work. I struggled with it for ~2h until a seat opened up in the PC lab. (TL;DR: IMHO SoftPC was marketing gimmick)
    – Alex R
    Mar 20 at 17:54
16

I added a soft DOS compatibility layer to an x86 OS called CTOS (or BTOS if Burroughs was selling it) around 1988. It supported what was practical on non-IBM-PC compatible hardware. In particular, you could run command-line tools like compilers. Useful for a platform that was having trouble capturing applications.

2
  • 4
    Very interesting... if possible, please edit your answer and add more details please - it's always interesting.to hear about real experience from back in the day. Mar 3 at 21:24
  • 2
    MS-DOS compatible programs and MS-DOS compatible personal computers were both also a thing at the time. PC-compatible programs often used memory-mapped graphics, but standard DOS also included (much slower) OS-level graphics, which could be used by cross-platform DOS programs on (80x86 but non-IBM-compatible) MS-DOS computers.
    – david
    Mar 4 at 22:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .