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 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. in July 1994.
Concurrent CP/M-86
The initial version of CP/M-86 1.0 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. Like PC DOS, CP/M-86 did not 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 and MP/M-86 2.1 were merged to create Concurrent CP/M-86 3.0 with BDOS 3.0 in late 1982. 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 CP/M-86 compatible programs. Like its predecessors it could be configured for multi-processor support 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 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 and CP/M-86 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 to provide basic compatibility with PC DOS 1.1. This was shown publicly at COMDEX in December 1983 and shipped in March 1984 as Concurrent DOS 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 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 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.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. 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 to OEMs. This system evolved into FlexOS 68K in late 1986.Known versions include:
- Concurrent DOS 68K 1.0
- Concurrent DOS 68K 1.1
- Concurrent DOS 68K 1.20
- Concurrent DOS 68K 1.21
Concurrent DOS 286 and FlexOS 286
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. 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, CA, since 1986.
Later versions added compatibility with PC DOS 2.x and 3.x.
Known versions include:
- Concurrent DOS 286 1.0
- Concurrent DOS 286 1.1
- Concurrent DOS 286 1.2
- FlexOS 286 1.3
- FlexOS 286 1.31
Concurrent DOS XM and Concurrent DOS 386
Developed in Hungerford, UK, versions 5 and 6 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.
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
- DR Concurrent DOS XM 5.0
- DR Concurrent DOS XM 5.1
- DR Concurrent DOS XM 5.2
- DR Concurrent DOS XM 6.0, 6.01
- DR Concurrent DOS XM 6.2, 6.21
- DR Concurrent DOS 386 1.0
- DR Concurrent DOS 386 1.1
- DR Concurrent DOS 386 2.0, 2.01
- DR Concurrent DOS 386 3.0, 3.01, 3.02
Adaptations
Known CCI Concurrent DOS adaptations by Concurrent Controls, Inc. include:- CCI Concurrent DOS 386 1.12
- CCI Concurrent DOS 386 2.01
- CCI Concurrent DOS 386 3.01
- CCI Concurrent DOS 386 3.02
- CCI Concurrent DOS 386 3.03
- CCI Concurrent DOS 386 3.04 aka "CCI Concurrent DOS 4.0"
- CCI Concurrent DOS 3.05 R1, R2, R3+R4, R5+R6, R7+R8, R9+R10, R11
- CCI Concurrent DOS 3.06 R1, R2+R3, R4+R5+R6, R7
- CCI Concurrent DOS 3.07 R1, R2, R3, R4, R5, R6, R7
- CCI Concurrent DOS 3.08
- CCI Concurrent DOS 3.10 R1
- Apricot Concurrent DOS 386 2.01 for Apricot Quad Version Level 4.3
Multiuser DOS
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 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, 5.01
- Novell DR Multiuser DOS 5.10, 5.11
- Novell DR Multiuser DOS 5.13
Adaptations
DataPac Australasia
Known versions by DataPac Australasia Pty Limited include:- Datapac Multiuser DOS 5.0
- Datapac Multiuser DOS 5.1
- Datapac System Manager 7.0
Concurrent Controls
Known CCI Multiuser DOS versions by Concurrent Controls, Inc. include:- CCI Multiuser DOS 7.00
- CCI Multiuser DOS 7.10
- CCI Multiuser DOS 7.21
- CCI Multiuser DOS 7.22 R1, R2, R3, R4 GOLD/PLUS/LITE, R5 GOLD, R6 GOLD, R7 GOLD, R8 GOLD, R9 GOLD, R10 GOLD, R11 GOLD, R12 GOLD, R13 GOLD, R14 GOLD, R15 GOLD, R16 GOLD, R17 GOLD, R18 GOLD
In 1999, CCI changed its name to Applica, Inc. In 2002 Applica Technology became Aplycon Technologies, Inc.
Intelligent Micro Software, Itera and Integrated Solutions
DOS 386 Professional
IMS Multiuser DOS
Known adaptations of IMS Multiuser DOS include:- IMS Multiuser DOS Enhanced Release 5.1
- IMS Multiuser DOS 5.11
- IMS Multiuser DOS 5.14
- IMS Multiuser DOS 7.0
- IMS Multiuser DOS 7.1
REAL/32
Intelligent Micro Software Ltd. 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, 7.51, 7.52, 7.53, 7.54
- IMS REAL/32 7.60, 7.61, 7.62, 7.63
- IMS REAL/32 7.70, 7.71, 7.72, 7.73, 7.74
- IMS REAL/32 7.80, 7.81, 7.82, 7.83
- IMS REAL/32 7.90, 7.91, 7.92
- ITERA IMS REAL/32 7.93, 7.94
- Integrated Solutions IMS REAL/32 7.95
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
- 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 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 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.