# Multiuser DOS

Multiuser DOS is a real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers.
An evolution of the older Concurrent CP/M-86, Concurrent DOS and Concurrent DOS 386 operating systems, it was originally developed by Digital Research and acquired and further developed by Novell in 1991. Its ancestry lies in the earlier Digital Research 8-bit operating systems CP/M and MP/M, and the 16-bit single-tasking CP/M-86 which evolved from CP/M.
When Novell abandoned Multiuser DOS in 1992, the three master value-added resellers (VARs) DataPac Australasia, Concurrent Controls and Intelligent Micro Software were allowed to take over and continued independent development into Datapac Multiuser DOS and System Manager, CCI Multiuser DOS, and IMS Multiuser DOS and REAL/32.
The FlexOS line, which evolved from Concurrent DOS 286 and Concurrent DOS 68K, was sold off to Integrated Systems, Inc. (ISI) in July 1994.

## Concurrent CP/M-86

The initial version of CP/M-86 1.0 (with BDOS 2.x) was adapted and became available to the IBM PC in 1982. It was commercially unsuccessful as IBM's PC DOS 1.0 offered much the same facilities for a considerably lower price. Neither PC DOS nor CP/M-86 could fully exploit the power and capabilities of the new 16-bit machine.
It was soon supplemented by an implementation of CP/M's multitasking 'big brother', MP/M-86 2.0, since September 1981. This turned a PC into a multiuser machine capable of supporting multiple concurrent users using dumb terminals attached by serial ports. The environment presented to each user made it seem as if they had the entire computer to themselves. Since terminals cost a fraction of the then-substantial price of a complete PC, this offered considerable cost savings, as well as facilitating multi-user applications such as accounts or stock control in a time when PC networks were rare, very expensive and difficult to implement.
CP/M-86 1.1 (with BDOS 2.2) and MP/M-86 2.1 were merged to create Concurrent CP/M-86 3.0 (also known as CCP/M-86) with BDOS 3.0 in late 1982. Kathryn Strutynski, the project manager for CP/M-86, was also the project manager for Concurrent CP/M-86. One of its designers was Francis "Frank" R. Holsworth. Initially, this was a single-user operating system supporting true multi-tasking of up to four (in its default configuration) CP/M-86 compatible programs. Like its predecessors it could be configured for multi-processor support (see e.g. Concurrent CP/M-86/80) and also added "virtual screens" letting an operator switch between the interactions of multiple programs. Later versions supported dumb terminals and so could be deployed as multiuser systems. Concurrent CP/M-86 3.1 (BDOS 3.1) shipped on 21 February 1984.

### Adaptations
#### Concurrent CP/M-86 with Windows

In February 1984 Digital Research also offered a version of Concurrent CP/M-86 with windowing capabilities named Concurrent CP/M with Windows for the IBM Personal Computer and Personal Computer XT.

#### Concurrent CP/M-86/80

This was an adaptation of Concurrent CP/M-86 for the LSI-M4, LSI Octopus and CAL PC computers. These machines had both 16-bit and 8-bit processors, because in the early days of 16-bit personal computing, 8-bit software was more available and often ran faster than the corresponding 16-bit software. Concurrent CP/M-86/80 allowed users to run both CP/M (8-bit) and CP/M-86 (16-bit) applications. When a command was entered, the operating system ran the corresponding application on either the 8-bit or the 16-bit processor, depending on whether the executable file had a .COM or .CMD extension. It emulated a CP/M environment for 8-bit programs by translating CP/M system calls into CP/M-86 system calls, which were then executed by the 16-bit processor.

## Concurrent DOS

In August 1983, Bruce Skidmore, Raymond D. Pedrizetti, Dave Brown and Gordon Edmonds teamed up to create PC-MODE, an optional module for Concurrent CP/M-86 3.1 (with BDOS 3.1) to provide basic compatibility with PC DOS 1.1 (and MS-DOS 1.1). This was shown publicly at COMDEX in December 1983 and shipped in March 1984 as Concurrent DOS 3.1 (a.k.a. CDOS with BDOS 3.1) to hardware vendors. Simple DOS applications, which did not directly access the screen or other hardware, could be run. For example, although a console program such as PKZIP worked perfectly and offered more facilities than the CP/M-native ARC archiver, applications which performed screen manipulations, such as the WordStar word processor for DOS, would not, and native Concurrent CP/M (or CP/M-86) versions were required.
While Concurrent DOS 3.1 up to 4.1 had been developed in the US, OEM adaptations and localizations were carried out by DR Europe's OEM Support Group in Newbury, UK, since 1983.
Digital Research positioned Concurrent DOS 4.1 with GEM as alternative for IBM's TopView in 1985.

### Concurrent PC DOS

Concurrent DOS 3.2 (with BDOS 3.2) in 1984 was compatible with applications for CP/M-86 1.x, Concurrent CP/M-86 3.x and PC DOS 2.0. It was available for many different hardware platforms. The version with an IBM PC compatible BIOS/XIOS was named Concurrent PC DOS 3.2. Kathryn Strutynski was the product manager for Concurrent PC DOS.

### Concurrent DOS 68K and FlexOS 68K

Efforts being part of a cooperation with Motorola since 1984 led to the development of Concurrent DOS 68K in Austin, Texas, as a successor to CP/M-68K written in C. One of its main architects was Francis "Frank" R. Holsworth (using siglum FRH). Concurrent DOS 68K 1.0 became available for OEM evaluation in early 1985. The effort received considerable funding worth several million dollars from Motorola and was designed for their 68000/68010 processors. Like the earlier GEMDOS system for 68000 processors it initially ran on the Motorola VME/10 development system. Concurrent DOS 68K 1.20/1.21 was available in April 1986, offered for about 200000 dollars to OEMs. This system evolved into FlexOS 68K in late 1986.
Known versions include:
* Concurrent DOS 68K 1.0 (1985)
* Concurrent DOS 68K 1.1
* Concurrent DOS 68K 1.20 (April 1986, 1986-05-27)
* Concurrent DOS 68K 1.21 (1986)

### Concurrent DOS 286 and FlexOS 286

In parallel to the Concurrent DOS 68K effort, Digital Research also previewed Concurrent DOS 286 in cooperation with Intel in January 1985. This was based on MP/M-286 and Concurrent CP/M-286, on which Digital Research had worked since 1982.
Concurrent DOS 286 was a complete rewrite in the C language based on a new system architecture with dynamically loadable device drivers instead of a static BIOS or XIOS. One of its main architects was Francis "Frank" R. Holsworth. The operating system would function strictly in 80286 native mode, allowing protected mode multi-user, multitasking operation while running 8086 emulation. While this worked on the B-1 step of prototype chip samples, Digital Research, with evaluation copies of their operating system already shipping in April, discovered problems with the emulation on the production level C-1 step of the processor in May, which would not allow Concurrent DOS 286 to run 8086 software in protected mode. The release of Concurrent DOS 286 had been scheduled for late May, but was delayed until Intel could develop a new version of the chip. In August, after extensive testing E-1 step samples of the 80286, Digital Research said that Intel had corrected all documented 286 errata, but that there were still undocumented chip performance problems with the prerelease version of Concurrent DOS 286 running on the E-1 step. Intel said that the approach Digital Research wished to take in emulating 8086 software in protected mode differed from the original specifications; nevertheless they incorporated into the E-2 step minor changes in the microcode that allowed Digital Research to run emulation mode much faster (see LOADALL). These same limitations affected FlexOS 286 version 1.x, a reengineered derivation of Concurrent DOS 286, which was developed by Digital Research's new Flexible Automation Business Unit in Monterey, California, since 1986.
Later versions added compatibility with PC DOS 2.x and 3.x.
Known versions include:
* Concurrent DOS 286 1.0 (1985)
* Concurrent DOS 286 1.1 (1986-01-07)
* Concurrent DOS 286 1.2 (1986)
* FlexOS 286 1.3 (November 1986)
* FlexOS 286 1.31 (May 1987)

### Concurrent DOS XM and Concurrent DOS 386

The OEM Support Group was relocated into Digital Research's newly created European Development Centre (EDC) in Hungerford, UK in 1986, which started to take over further development of the Concurrent DOS family since Concurrent DOS 4.11, including siblings like DOS Plus and successors.
Developed in Hungerford, UK, versions 5 and 6 (Concurrent DOS XM, with XM standing for Expanded Memory) could bank switch up to 8 MB of EEMS to provide a real-mode environment to run multiple CP/M-86 and DOS programs concurrently and support up to three users (one local and up to two hooked up via serial terminals).
In 1987, Concurrent DOS 86 was rewritten to become Concurrent DOS 386, still a continuation of the classical XIOS & BDOS architecture. This ran on machines equipped with the Intel 80386 and later processors, using the 386's hardware facilities for virtualizing the hardware, allowing most DOS applications to run unmodified under Concurrent DOS 386, even on terminals. The OS supported concurrent multiuser file access, allowing multiuser applications to run as if they were on individual PCs attached to a network server. Concurrent DOS 386 allowed a single server to support a number of users on dumb terminals or inexpensive low-specification PCs running terminal emulation software, without the need for expensive workstations and then-expensive network cards. It was a true multiuser system; several users could use a single database with record locking to prevent mutual interference.
Concurrent DOS 6.0 represented also the starting point for the DR DOS family, which was carved out of it.
Known versions include:
* DR Concurrent PC DOS XM 5.0 (BDOS 5.0)
* DR Concurrent DOS XM 5.0 (BDOS 5.0, October 1986)
* DR Concurrent DOS XM 5.1 (BDOS 5.1?, January 1987)
* DR Concurrent DOS XM 5.2 (BDOS 5.2?, September 1987)
* DR Concurrent DOS XM 6.0 (BDOS 6.0, 1987-11-18), 6.01 (1987)
* DR Concurrent DOS XM 6.2 (BDOS 6.2), 6.21
* DR Concurrent DOS 386 1.0 (BDOS 5.0?, 1987)
* DR Concurrent DOS 386 1.1 (BDOS 5.2?, September 1987)
* DR Concurrent DOS 386 2.0 (BDOS 6.0, 1987-11-18), 2.01
* DR Concurrent DOS 386 3.0 (BDOS 6.2, December 1988, January 1989), 3.01 (1989-05-19), 3.02 (1989)
Concurrent PC DOS XM 5.0 emulated IBM PC DOS 2.10, whereas Concurrent DOS XM 6.0 and Concurrent DOS 386 2.0 were compatible with IBM PC DOS 3.30.

#### Adaptations

Known CCI Concurrent DOS adaptations by Concurrent Controls, Inc. include:
* CCI Concurrent DOS 386 1.12 (BDOS 5.0?, October 1987)
* CCI Concurrent DOS 386 2.01 (BDOS 6.0?, May 1988)
* CCI Concurrent DOS 386 3.01 (BDOS 6.2?, March 1989)
* CCI Concurrent DOS 386 3.02 (April 1990)
* CCI Concurrent DOS 386 3.03 (March 1991)
* CCI Concurrent DOS 386 3.04 (July 1991) aka "CCI Concurrent DOS 4.0"
* CCI Concurrent DOS 3.05 R1 (1992-02), R2 (1992), R3+R4 (1992), R5+R6 (1992), R7+R8 (1993), R9+R10 (1993), R11 (August 1993)
* CCI Concurrent DOS 3.06 R1 (December 1993), R2+R3 (1994), R4+R5+R6 (1994), R7 (July 1994)
* CCI Concurrent DOS 3.07 R1 (March 1995), R2 (1995), R3 (1996), R4 (1996), R5 (1997), R6 (1997), R7 (June 1998)
* CCI Concurrent DOS 3.08
* CCI Concurrent DOS 3.10 R1 (2003-10-05)
Other adaptations include:
* Apricot Concurrent DOS 386 2.01 (1987) for Apricot Quad Version Level 4.3

## Multiuser DOS

Later versions of Concurrent DOS 386 incorporated some of the enhanced functionality of DR's later single-user PC DOS clone DR DOS 5.0, after which the product was given the more explanatory name "Multiuser DOS" (a.k.a. MDOS), starting with version 5.0 (with BDOS 6.5) in 1991.
Multiuser DOS suffered from several technical limitations that restricted its ability to compete with LANs based on PC DOS. It required its own special device drivers for much common hardware, as PC DOS drivers were not multiuser or multi-tasking aware. Driver installation was more complex than the simple PC DOS method of copying the files onto the boot disk and modifying CONFIG.SYS appropriately – it was necessary to relink the Multiuser DOS kernel (known as a nucleus) using the SYSGEN command.
Multiuser DOS was also unable to use many common PC DOS additions such as network stacks, and it was limited in its ability to support later developments in the PC-compatible world, such as graphics adaptors, sound cards, CD-ROM drives and mice. Although many of these were soon rectified – for example, graphical terminals were developed, allowing users to use CGA, EGA and VGA software – it was less flexible in this regard than a network of individual PCs, and as the prices of these fell, it became less and less competitive, although it still offered benefits in terms of management and lower total cost of ownership. As a multi-user operating system its price was higher than a single-user system, of course, and it required special device drivers, unlike single-user multitasking DOS add-ons such as Quarterdeck's DESQview. Unlike MP/M, it never became popular for single-user but multitasking use.
When Novell acquired Digital Research in 1991 and abandoned Multiuser DOS in 1992, the three Master VARs DataPac Australasia, Concurrent Controls and Intelligent Micro Software were allowed to license the source code of the system to take over and continue independent development of their derivations in 1994.
Known versions include:
* DR Multiuser DOS 5.00 (1991), 5.01
* Novell DR Multiuser DOS 5.10 (1992-04-13), 5.11
* Novell DR Multiuser DOS 5.13 (BDOS 6.6, 1992)
All versions of Digital Research and Novell DR Multiuser DOS reported themselves as "IBM PC DOS" version 3.31.

### Adaptations
#### DataPac Australasia

Known versions by DataPac Australasia Pty Limited include:
* Datapac Multiuser DOS 5.0
* Datapac Multiuser DOS 5.1 (BDOS 6.6)
* Datapac System Manager 7.0 (1996-08-22)
In 1997, Datapac was bought by Citrix Systems, Inc., and System Manager was abandoned soon after. In 2002 the Sydney-based unit was spun out into Citrix' Advanced Products Group.

#### Concurrent Controls

Known CCI Multiuser DOS versions by Concurrent Controls, Inc. (CCI) include:
* CCI Multiuser DOS 7.00
* CCI Multiuser DOS 7.10
* CCI Multiuser DOS 7.21
* CCI Multiuser DOS 7.22 R1 (September 1996), R2 (1996), R3 (1997), R4 GOLD/PLUS/LITE (BDOS 6.6, 1997-02-10), R5 GOLD (1997), R6 GOLD (1997), R7 GOLD (June 1998), R8 GOLD, R9 GOLD, R10 GOLD, R11 GOLD (2000-09-25), R12 GOLD (2002-05-15), R13 GOLD (2002-07-15), R14 GOLD (2002-09-13), R15 GOLD, R16 GOLD (2003-10-10), R17 GOLD (2004-02-09), R18 GOLD (2005-04-21)
All versions of CCI Multiuser DOS report themselves as "IBM PC DOS" version 3.31. Similar to SETVER under DOS, this can be changed using the Multiuser DOS DOSVER x.y utility.
In 1999, CCI changed its name to Applica, Inc. In 2002 Applica Technology became Aplycon Technologies, Inc.

#### Intelligent Micro Software, Itera and Integrated Solutions
##### IMS Multiuser DOS

Known adaptations of IMS Multiuser DOS include:
* IMS Multiuser DOS Enhanced Release 5.1 (1992)
* IMS Multiuser DOS 5.11
* IMS Multiuser DOS 5.14
* IMS Multiuser DOS 7.0
* IMS Multiuser DOS 7.1 (BDOS 6.7, 1994)
All versions of IMS Multiuser DOS report themselves as "IBM PC DOS" version 3.31.

##### REAL/32

Intelligent Micro Software Ltd. (IMS) of Thatcham, UK, acquired a license to further develop Multiuser DOS from Novell in 1994 and renamed their product REAL/32 in 1995.
Similar to FlexOS/4690 OS before, IBM in 1995 licensed REAL/32 7.50 to bundle it with their 4695 POS terminals.
IMS REAL/32 versions:
* IMS REAL/32 7.50 (BDOS 6.8, 1995-07-01), 7.51 (BDOS 6.8), 7.52 (BDOS 6.9), 7.53 (BDOS 6.9, 1996-04-01), 7.54 (BDOS 6.9, 1996-08-01)
* IMS REAL/32 7.60 (BDOS 6.9, February 1997), 7.61, 7.62, 7.63
* IMS REAL/32 7.70 (November 1997), 7.71, 7.72, 7.73, 7.74 (1998)
* IMS REAL/32 7.80, 7.81 (February 1999), 7.82, 7.83 (BDOS 6.10)
* IMS REAL/32 7.90 (1999), 7.91, 7.92
* ITERA IMS REAL/32 7.93 (June 2002), 7.94 (BDOS 6.13, 2003-01-31)
* Integrated Solutions IMS REAL/32 7.95
REAL/32 7.50 to 7.74 report themselves as "IBM PC DOS" version 3.31, whereas 7.80 and higher report a version of 6.20. LBA and FAT32 support was added with REAL/32 7.90 in 1999. On 19 April 2002, Intelligent Micro Software Ltd. filed for insolvency and was taken over by one of its major customers, Barry Quittenton's Itera Ltd. This company was dissolved on 2006-03-28. As of 2010 REAL/32 was supplied by Integrated Solutions of Thatcham, UK, but the company, at the same address, was later listed as builders.

##### REAL/NG

REAL/NG was IMS' attempt to create the "Next Generation" of REAL/32, also named "REAL/32 for the internet age". REAL/NG promised "increased range of hardware from PCs to x86 multi-processor server systems".
Advertised feature list, as of 2003:
* Runs with Red Hat 7.3 or later version of Linux
* Backward compatible with DOS and REAL/32
* Max 65535 virtual consoles; each of these can be a user
* No Linux expertise required
* Administration/setup/upgrade by web browser (local and remote)
* Supplied with TCP/IP Linux-/Windows-based terminal emulator for the number of users purchased
* Print and file sharing built in
* Drive mapping between Linux and REAL/NG servers built in
* User hardware support
* Increased performance
* Vastly increased TPA
* Multi-processor support
* Improved hardware support
* Built-in firewall support
* Very low cost per seat
* Low total cost of ownership
* Supplied on CD
* Supplied with a set of Red Hat CDs
By 10 December 2003, IMS made "REALNG V1.60-V1.19-V1.12" available, which, based on the Internet Archive, seems to be the latest release.
By 2005, the realng.com website was mirroring the IMS main website, and had no mention of REAL/NG, only REAL/32.

## Application software

While the various releases of this operating system had increasing ability to run DOS programs, software written for the platform could take advantage of its features by using function calls specifically suitable for multiuser operation. It used pre-emptive multitasking, preventing badly-written applications from delaying other processes by retaining control of the processor. To this day, Multiuser DOS is supported by popular SSL/TLS libraries such as wolfSSL.
The API provided support for blocking and non-blocking message queues, mutual-exclusion queues, the ability to create sub-process threads which executed independently from the parent, and a method of pausing execution which did not waste processor cycles, unlike idle loops used by single-user operating systems. Applications were started as "attached" to a console. However, if an application did not need user interaction it could "detach" from the console and run as a background process, later reattaching to a console if needed.
Another key feature was that the memory management supported a "shared" memory model for processes (in addition to the usual models available to normal DOS programs). In the shared memory model the "code" and "data" sections of a program were isolated from each other. Because the "code" contained no modifiable data, code sections in memory could be shared by several processes running the same program, thereby reducing memory requirements.
Programs written, or adapted, for any multitasking platform need to avoid the technique used by single-tasking systems of going into endless loops until interrupted when, for example, waiting for a user to press a key; this wasted processor time that could be used by other processes. Instead, Concurrent DOS provided an API call which a process could call to "sleep" for a period of time. Later versions of the Concurrent DOS kernel included Idle Detection, which monitored DOS API calls to determine whether the application was doing useful work or in fact idle, in which case the process was suspended allowing other processes to run. Idle Detection was the catalyst for the patented DR-DOS Dynamic Idle Detection power management feature invented in 1989 by Roger Alan Gross and John P. Constant and marketed as BatteryMAX.