VMOS/3

Virtual multitasking operating system for the 80386

version 1

First released in 1987, VMOS/3 was one of the first 80386-specific operating systems written. Written before OS/2 and Windows 3.0 were released, with DOS 3.3 the norm, it supported many of the features people are only now getting used to outside of a Unix environment, like crash proof multitasking, massive parallelism, demand paged virtual memory, and fully functional DOS graphics. VMOS could run graphics applications in the background, and in house tests had GEM and Windows running at the same time. VMOS ultimately shipped as a fast, cost-effective multi-user DOS environment.

But VMOS was far more sophisticated under the hood. VMOS had an advanced kernel design, based on message-passing, a very high speed memory architecture, and fast task switching. Tasks ran in a virtual DOS architecture memory space, demand-paged with memory protection. The VMOS OS was implemented as a 'cloud' of small, cooperating tasks. Modern microkernel operating system designs like MACH are effectively a rediscovery of VMOS design principles, which were kept as a trade secret. Today, the closest relative to VMOS/3 would be QNX.

Written entirely in 80386 assembly, VMOS explored the 80386 to the point that the development process rooted out previously unknown bugs in the chip. It ran well on a 4 Meg machine, and was tested against machines at the 1988 Spring COMDEX with 50 tasks each outputting to half a screen line.

Multi-user DOS implementations eventually succumbed to the GUI revolution brought on the the ultimately successful Windows 3.0, but it's a sad statement that today we still don't build applications on an architecture as advanced as VMOS, nearly 20 years after the fact, but instead code to a legacy API based on a user interface.

The following is from the VMOS reference manual introduction:

Introduction

BackgroundYou have purchased an 80386 computer for maximum performance and function, and now have VMOS/3, the only operating system which will give you all of the 80386's power and capabilities. Your 80386 will have mainframe features and performance at PC prices. You are about to embark on a very exciting experience.

For well over a decade, commercial data processing users have enjoyed the multitasking capabilities of large computer Operating Systems (OSs). These OSs managed big installations of disk storage, printers, input sources and other devices. Many programs could be running at one time, making maximum use of the hardware resources. While one program was waiting for a disk operation to finish ( a very long time to the computer), some other program could use the main processor, another disk, or another peripheral. These computers produced an enormous amount of work, seemingly all at the same time.

Small microprocessors began to appear in special purpose applications, like giving complex display features to a simple video terminal. Before long, programmers realized that these "controllers" could perform regular data processing applications, and the microcomputer was born. In the early days, there wasn't much agreement among programmers on how to use or manage these microcomputers. If you wanted to do serious data processing, you had to use a minicomputer, have a very capable programming staff, or both.

Then IBM did everyone an enormous favor. They invented a "home" computer, and called it the IBM PC. They didn't make it very fast, they gave it a keyboard designed to keep serious typists away, and it had no hard disk. In spite of these weaknesses, millions sold, and the programmers went to work with a unified perspective. The clone market flourished. Design problems disappeared quickly, and top class products began to appear in both hardware and software.

As good as the PC was, all it could do was run one program, or task, at a time. This was all most users needed. After all, if you're typing a letter, you're busy anyway. So what else can the computer do? Creative minds quickly discovered what could be done.

With the capacity and speed of PCs increasing quickly, users soon found that it would be nice to continue to use their PCs while tasks that took a long time to complete ran quietly in "background."

Simple products which made better use of these newer PCs appeared, and the capabilities increased. These first efforts used static partitions of memory to allow more than one task to run simultaneously.

However, major limitations remained. Since the older processor chips (including the larger 286 chip) did not recognize these partitions, the whole environment was fairly fragile. Problems as basic as having one program fail, would terminate all other running programs. Hours of work could be lost, or worse. If this weren't enough, all programs would not always operate in these partitioned environments. You had to be very careful, and do a lot of pre-testing. This took time and money. Besides, who wants to be a software engineer when all you're trying to do is run your business?

Multitasking made possibleWell, the 80386 was born. Intel provided a wonderful solution with the development of this true multitasking processor chip. With thanks to IBM for defining the "PC Standard," and Intel for the hardware to manage it properly, StarPath Systems brings you VMOS/3.

Vmos/3 is the Virtual Multitasking Operating System for the 80386 microprocessor.

Demand Paging in actionRather than static sized and wasteful partitions to divide memory, Vmos/3 employs demand paging. Small memory units can be allocated to a task only when needed from any available location in memory. Even more exciting, Vmos/3 offers true virtual paging, allowing noncurrent information in memory to be transferred in and out of disk storage to free even more memory. These techniques comprise a revolutionary advance in DOS multitasking technology for the PC.
Resource SharingVmos/3 allows a 80386 PC to run as many tasks as desired, with its powerful resources parceled out to each task a little at a time. While one task is waiting for disk data, another may be using the main processor, and a third could be using data from the serial port connected to a distant computer.
DOS and 386 supportThese tasks may be any existing MS-DOS programs, as well as new programs being written especially for the 80386. Since Vmos/3 uses DOS, your current software investment remains secure. These programs will function for you as long as you want them to. Then, when you need more exotic software for your 386, Vmos/3 will support it , too.
Ease of useVmos/3 is an exceptionally easy system to use and understand. It is also a high performance professional class operating system with features to match. This sophistication doesn't make Vmos/3 complex. Instead, it's "put to work" to make Vmos/3 easy to use. You run DOS programs exactly as you always have; no new commands, no missing commands. DOS is unchanged.
Task ManagementUnder Vmos/3, you manage multiple tasks (or programs) in "Operator Mode." While in Operator Mode, you can easily select any one of the running tasks, and have it "take over" the screen or, "bring it to foreground." When you do this, the screen displayed by the task appears on the monitor, just as if it were running on a PC all by itself. But it isn't really running alone.

The other tasks in the background are still there. Some tasks are actually working, such as calculating a large spreadsheet or sorting a database. Others are waiting for keyboard input, and don't use any resources to speak of. Those that are actually working receive a prioritized share of processing resources, continuing until they finish or halt waiting for more keyboard input. Frequently, the Foreground task waits for keyboard input, too. When this happens, the Foreground task doesn't use many resources either, leaving nearly all resources to tasks running in Background. In this "sharing" manner, Vmos/3 supports many programs running seemingly "at the same time."

Vmos/3 PowerOther operating system products give you some of the features of Vmos/3, but none put the capabilities of the 80386 to work for you like Vmos/3 does. Vmos/3 requires an 80386. Other systems that do not fully utilize the 386, will run on an 80286 or even the older 8088. They cannot even come close to the features and performance of Vmos/3.

Vmos/3 brings mainframe processing power and features to your desk. If you can use DOS, you will be comfortable with Vmos/3.

Vmos/3 was from:

Questions or comments? Send them to info2@conklinsystems.com