Virtual DOS machines (VDM) refer to a technology that allows running 16-bit/32-bit DOS and 16-bit Windows programs when there is already another operating system running and controlling the hardware.
Overview
Virtual DOS machines can operate either exclusively through typical software emulation methods (e.g. dynamic recompilation) or can rely on the virtual 8086 mode of the Intel80386 processor, which allows real mode
8086 software to run in a controlled environment by catching all
operations which involve accessing protected hardware and forwarding
them to the normal operating system (as exceptions). The operating system can then perform an emulation and resume the execution of the DOS software.
When a DOS program running inside a VDM needs to access a peripheral, Windows will either allow this directly (rarely), or will present the DOS program with a virtual device driver (VDD) which emulates the hardware using operating system functions. A VDM will systematically have emulations for the Intel 8259Ainterrupt controllers, the 8254 timer chips, the 8237 DMA controller, etc.
Concurrent DOS 8086 emulation mode
In January 1985 Digital Research together with Intel previewed Concurrent DOS 286 1.0, a version of Concurrent DOS capable of running real mode DOS programs in the 80286's protected mode.
The method devised on B-1 stepping processor chips, however, in May
1985 stopped working on the C-1 and subsequent processor steppings
shortly before Digital Research was about to release the product. Although with the E-1 stepping Intel started to address the issues in
August 1985, so that Digital Research's "8086 emulation mode" worked
again utilizing the undocumented LOADALL processor instruction, it was too slow to be practical. Microcode changes for the E-2 stepping improved the speed again. This early implementation can be seen as a predecessor to actual virtual DOS machines.
Eventually, Concurrent DOS 286 was reworked from a potential desktop operating system to become FlexOS 286 for industrial use in 1986. It was also licenced by IBM for their 4680 OS in 1986.
When Intel's 80386 with its virtual 8086 mode became available
(as samples since October 1985 and in quantities since June 1986),
Digital Research switched to use this to run real mode DOS programs in
virtual DOS machines in protected mode under Concurrent DOS 386 1.0 (February 1987) and FlexOS 386 1.0 (June 1987). However, the architecture of these multiuser multitasking
protected mode operating systems was not DOS-based by themselves.
In
contrast to these protected mode operating systems, DOS, by default, is
a real-mode operating system, switching to protected mode and virtual
86 mode only on behalf of memory managers and DOS extenders in order to
provide access to extended memory or map in memory into the first
megabyte, which is accessible to normal DOS programs.
DOS-based VDMs appeared with Microsoft's Windows/386 2.01 in September 1987. DOS-based virtual DOS machines were also present in Windows 3.0, 3.1x and Windows for Workgroups 3.1x running in 386 Enhanced Mode as well as in Windows 95, 98, 98 SE and ME.
One of the characteristics of these solutions running on top of DOS is
that the memory layout shown inside virtual DOS machines are virtual
instances of the DOS system and DOS driver configuration run before the
multitasker is loaded, and that requests which cannot be handled in
protected mode are passed down into the system domain to be executed by
the underlying DOS system.
Similar to Windows 3.x 386 Enhanced Mode in architecture, EMM386 3.xx of Novell DOS 7, Caldera OpenDOS 7.01, DR-DOS 7.02 (and later) also uses DOS-based VDMs to support pre-emptive multitasking of multiple DOS applications, when the EMM386 /MULTI option is used. This component has been under development at Digital Research / Novell since 1991 under the codename "Vladivar" (originally a separate device driver KRNL386.SYS
instead of a module of EMM386). While primarily developed for the next
major version of DR DOS, released as Novell DOS 7 in 1994, it was also used in the never released DR DOS "Panther" and "Star Trek" project in 1992/1993.
OS/2 MVDM
VDMs called MVDM (Multiple Virtual DOS Machine) are used in OS/2 2.0 and later since 1992. OS/2 MVDMs are considerably more powerful than NTVDM. For example, block devices are supported, and various DOS versions can be booted into an OS/2 MVDM. While the OS/2 1.x DOS box was based on DOS 3.0, OS/2 2.x MVDMs emulate DOS 5.0.
Seamless integration of Windows 3.1 and later Win32s applications in OS/2 is a concept looking similar on surface to the seamless integration of XP Mode based on Windows Virtual PC in Windows 7. A redirector in a "guest" VDM or NTVDM allows access on the disks of the OS/2 or NT "host". Applications in a "guest" can use named pipes for communication with their "host".
Windows NTVDM
NTVDM is a system component of all IA-32 editions of the Windows NT
family since 1993 which allows execution of 16-bit Windows and 16-bit /
32-bit DOS applications. It is not included with 64-bit versions. The
Windows NT 32-bit user-mode executable which forms the basis for a
single DOS (or Windows 3.x) environment is called ntvdm.exe.
In order to execute DOS programs, NTVDM loads NTIO.SYS which in turn loads NTDOS.SYS, which executes a modified COMMAND.COM
in order to run the application that was passed to NTVDM as
command-line argument. The 16-bit real-mode system files are stripped
down derivations of their MS-DOS 5.0 equivalents IO.SYS, MSDOS.SYS and COMMAND.COM with all hard-wired assumptions on the FAT file system removed and using the invalid opcode 0xC4 0xC4 to bop down into the 32-bit NTVDM to handle the requests. Originally, NTDOS reported a DOS version of 30.00 to programs, but this was soon changed to report a version of 5.00 at INT 21h/AH=30h and 5.50 at INT 21h/AX=3306h to allow more programs to run unmodified.
This holds true even in the newest releases of Windows; many additional
MS-DOS functions and commands introduced in MS-DOS versions 6.x and in Windows 9x are missing.
16-bit applications all run in their own thread within a single
preemptively multithreaded 32-bit NTVDM process. The 16-bit processes
are by default cooperatively multitasked with respect to each other,
unless the "Run in separate memory space" option is checked in the Run
box or the application's shortcut file. NTVDM emulates BIOS calls and
tables as well as the Windows 3.1 kernel and 16-bit API stubs. The 32-bit WoW translation layer thunks 16-bit API routines.
32-bit DOS emulation is present for DOS Protected Mode Interface
(DPMI) and 32-bit memory access. This layer converts the necessary
extended and expanded memory calls for DOS functions into Windows NT
memory calls. wowexec.exe is the emulation layer that emulates 16-bit Windows. Windows 2000 and Windows XP added Sound Blaster 2.0 emulation. 16-bit virtual device drivers and DOS block device drivers (e.g., RAM disks) are not supported. Inter-process communication with other subsystems can take place through OLE, DDE and named pipes.
Since virtual 8086 mode is not available on non-x86-based processors (more specifically, MIPS, DEC Alpha, and PowerPC) NTVDM was instead implemented as a full emulator in these versions of NT, using code licensed from Insignia's SoftPC. Up to Windows NT 3.51, only 80286 emulation was available. With Windows NT 4.0, 486 emulation was added.
Commands
The following list of commands is part of the Windows XP MS-DOS subsystem.
In January 2010, Google security researcher Tavis Ormandy
revealed a serious security flaw in Windows NT's VDM implementation
that allowed unprivileged users to escalate their privileges to SYSTEM
level, noted as applicable to the security of all x86 versions of the
Windows NT kernel since 1993. This included all 32-bit versions of
Windows NT, 2000, XP, Server 2003, Vista, Server 2008, and Windows 7. Ormandy did publish a proof-of-concept exploit for the vulnerability.
Prior to Microsoft's release of a security patch, the workaround for
this issue was to turn off 16-bit application support, which prevented
older programs (those written for DOS and Windows 3.1) from running.
64-bit versions of Windows were not affected since NTVDM subsystem is
not installed by default. Once the Microsoft security patches had been applied to the affected operating systems the VDM could be safely reenabled.
Limitations
A
limitation exists in the Windows XP 16-bit subsystem (but not in
earlier versions of Windows NT) because of the raised per-session limit
for GDI objects which causes GDI handles to be shifted to the right by
two bits, when converting them from 32 to 16 bits.
As a result, the actual handle cannot be larger than 14 bits and
consequently 16-bit applications that happen to be served a handle
larger than 16384 by the GDI system crash and terminate with an error
message.
In an x86-64 CPU, virtual 8086 mode is available as a sub-mode only in its legacy mode (for running 16- and 32-bit operating systems), not in the native, 64-bit long mode.
The NTVDM is not supported on x86-64 of Windows,, including DOS programs
because NTVDM uses VM86 CPU mode instead of the Local Descriptor Table
in order to enable 16‑bits segment required for addressing and AAarch64
because Microsoft didn’t release a full emulator for this incompatible
instruction set like it did on previous incompatible architecture. The
only way to run them is to use Windows XP Mode, other virtualization
software, or to use modernized versions like NTVDMx64, an unofficial
port of the older emulated implementation of the NTVDM which was
provided on NT 4 for non-x86 platforms. Another option is OTVDM, a 16-bit Windows interpreter based on the popular Windows simulator Wine.
In general, VDM and similar technologies do not satisfactorily
run most older DOS games on today's computers. Emulation is only
provided for the most basic peripherals, often implemented incompletely.
For example, sound emulation in NTVDM is very limited. NT-family
versions of Windows only update the real screen a few times per second
when a DOS program writes to it, and they do not emulate higher
resolution graphics modes. Because software mostly runs native at the
speed of the host CPU, all timing loops will expire prematurely.
This either makes a game run much too fast or causes the software not
even to notice the emulated hardware peripherals, because it does not
wait long enough for an answer.
OS/2 is a series of computer operating systems, initially created by Microsoft and IBM under the leadership of IBM software designer Ed Iacobucci. As a result of a feud between the two companies over how to position OS/2 relative to Microsoft's new Windows 3.1 operating environment, the two companies severed the relationship in 1992 and OS/2 development fell to IBM exclusively. The name stands for "Operating System/2", because it was introduced as part of the same generation change release as IBM's "Personal System/2 (PS/2)" line of second-generation personal computers. The first version of OS/2 was released in December 1987 and newer versions were released until December 2001.
OS/2 was intended as a protected-mode successor of PC DOS. Notably, basic system calls were modeled after MS-DOS calls; their names even started with "Dos" and it was possible to create "Family Mode" applications – text mode applications that could work on both systems. Because of this heritage, OS/2 shares similarities with Unix, Xenix, and Windows NT.
IBM discontinued its support for OS/2 on 31 December 2006. Since then, it has been updated, maintained and marketed under the name eComStation. In 2015 it was announced that a new OEM distribution of OS/2 would be released that was to be called ArcaOS. ArcaOS is available for purchase.
Development history
1985–1989: Joint development
The development of OS/2 began when IBM and Microsoft signed the "Joint Development Agreement" in August 1985. It was code-named "CP/DOS" and it took two years for the first product to be delivered.
OS/2 1.0 was announced in April 1987 and released in December. The original release is textmode-only, and a GUI was introduced with OS/2 1.1 about a year later. OS/2 features an API for controlling the video display (VIO) and handling keyboard and mouse events so that programmers writing for protected-mode need not call the BIOS
or access hardware directly. Other development tools included a subset
of the video and keyboard APIs as linkable libraries so that family mode
programs are able to run under MS-DOS,, and, in the OS/2 Extended Edition v1.0, a database engine called Database Manager or DBM (this was related to DB2, and should not be confused with the DBM family of database engines for Unix and Unix-like operating systems). A task-switcher named Program Selector was available through the Ctrl-Esc hotkey
combination, allowing the user to select among multitasked text-mode
sessions (or screen groups; each can run multiple programs).
Communications and database-oriented extensions were delivered in 1988, as part of OS/2 1.0 Extended Edition: SNA, X.25/APPC/LU 6.2, LAN Manager, Query Manager, SQL.
The promised user interface, Presentation Manager, was introduced with OS/2 1.1 in October 1988. It had a similar user interface to Windows 2.1, which was released in May of that year. (The interface was replaced in versions 1.2 and 1.3 by a look closer in appearance to Windows 3.1).
The Extended Edition of 1.1, sold only through IBM sales
channels, introduced distributed database support to IBM database
systems and SNA communications support to IBM mainframe networks.
In 1989, Version 1.2 introduced Installable Filesystems and, notably, the HPFSfilesystem. HPFS provided a number of improvements over the older FAT file system, including long filenames and a form of alternate data streams called Extended Attributes. In addition, extended attributes were also added to the FAT file system.
Installation Disk A of Microsoft OS/2 1.3 (3½-inch floppy disk)
The Extended Edition of 1.2 introduced TCP/IP and Ethernet support.
OS/2- and Windows-related books of the late 1980s acknowledged
the existence of both systems and promoted OS/2 as the system of the
future.
1990: Breakup
The collaboration between IBM and Microsoft unravelled in 1990, between the releases of Windows 3.0 and OS/2 1.3. During this time, Windows 3.0 became a tremendous success, selling millions of copies in its first year. Much of its success was because Windows 3.0 (along with MS-DOS) was bundled with most new computers. OS/2, on the other hand, was available only as an additional stand-alone software package. In addition, OS/2 lacked device drivers for many common devices such as printers, particularly non-IBM hardware.
Windows, on the other hand, supported a much larger variety of
hardware. The increasing popularity of Windows prompted Microsoft to
shift its development focus from cooperating on OS/2 with IBM to
building its own business based on Windows.
Several technical and practical reasons contributed to this breakup.
The two companies had significant differences in culture and
vision. Microsoft favored the open hardware system approach that
contributed to its success on the PC; IBM sought to use OS/2 to drive
sales of its own hardware, including systems that could not support the
features Microsoft wanted. Microsoft programmers also became frustrated
with IBM's bureaucracy and its use of lines of code to measure programmer productivity. IBM developers complained about the terseness and lack of comments in Microsoft's code, while Microsoft developers complained that IBM's code was bloated.
The two products have significant differences in API. OS/2 was announced when Windows 2.0 was near completion, and the Windows API already defined. However, IBM requested that this API be significantly changed for OS/2.
Therefore, issues surrounding application compatibility appeared
immediately. OS/2 designers hoped for source code conversion tools,
allowing complete migration of Windows application source code to OS/2
at some point. However, OS/2 1.x did not gain enough momentum to allow
vendors to avoid developing for both OS/2 and Windows in parallel.
OS/2 1.x targets the Intel 80286 processor and DOS fundamentally doesn't. IBM insisted on supporting the 80286 processor, with its 16-bit segmented memory
mode, because of commitments made to customers who had purchased many
80286-based PS/2s as a result of IBM's promises surrounding OS/2. Until release 2.0 in April 1992, OS/2 ran in 16-bit protected mode and therefore could not benefit from the Intel 80386's much simpler 32-bitflat memory model and virtual 8086 mode features. This was especially painful in providing support for DOS applications. While, in 1988, Windows/386 2.1 could run several cooperatively multitasked DOS applications, including expanded memory (EMS) emulation, OS/2 1.3, released in 1991, was still limited to one 640 kB "DOS box".
Given these issues, Microsoft started to work in parallel on a
version of Windows which was more future-oriented and more portable. The
hiring of Dave Cutler, former VMS
architect, in 1988 created an immediate competition with the OS/2 team,
as Cutler did not think much of the OS/2 technology and wanted to build
on his work at Digital rather than creating a "DOS plus". His "NT OS/2" was a completely new architecture.
The OS/2 2.0 upgrade box
IBM grew concerned about the delays in development of OS/2 2.0.
Initially, the companies agreed that IBM would take over maintenance of
OS/2 1.0 and development of OS/2 2.0, while Microsoft would continue
development of OS/2 3.0. In the end, Microsoft decided to recast NT OS/2
3.0 as Windows NT,
leaving all future OS/2 development to IBM. From a business
perspective, it was logical to concentrate on a consumer line of
operating systems based on DOS and Windows, and to prepare a new
high-end system in such a way as to keep good compatibility with
existing Windows applications. While it waited for this new high-end
system to develop, Microsoft would still receive licensing money from
Xenix and OS/2 sales. Windows NT's OS/2 heritage can be seen in its
initial support for the HPFS filesystem,
text mode OS/2 1.x applications, and OS/2 LAN Manager network support.
Some early NT materials even included OS/2 copyright notices embedded in
the software.[citation needed]
One example of NT OS/2 1.x support is in the WIN2K resource kit. Windows NT could also support OS/2 1.x Presentation Manager and AVIO applications with the addition of the Windows NT Add-On Subsystem for Presentation Manager.
1992: 32-bit era
OS/2
2.0 was released in April 1992. It provided a 32-bit API for native
programs, though the OS itself still contained some 16-bit code and
drivers. It also included a new OOUI (object-oriented user interface)
called the Workplace Shell.
This was a fully object-oriented interface that was a significant
departure from the previous GUI. Rather than merely providing an
environment for program windows (such as the Program Manager), the
Workplace Shell provided an environment in which the user could manage
programs, files and devices by manipulating objects on the screen. With
the Workplace Shell, everything in the system is an "object" to be
manipulated.
DOS compatibility
OS/2 2.0 was touted by IBM as "a better DOS than DOS and a better Windows than Windows".
It managed this by including fully licensed MS-DOS 5.0 which had been
patched and improved upon. For the first time, OS/2 was able to run more
than one DOS application at a time. This was so effective that it
allowed OS/2 to run a modified copy of Windows 3.0, itself a DOS extender, including Windows 3.0 applications.
Because of the limitations of the Intel 80286
processor, OS/2 1.x could run only one DOS program at a time, and did
this in a way that allowed the DOS program to have total control over
the computer. A problem in DOS mode could crash the entire computer. In
contrast, OS/2 2.0 could leverage the virtual 8086 mode of the Intel 80386 processor to create a much safer virtual machine
in which to run DOS programs. This included an extensive set of
configuration options to optimize the performance and capabilities given
to each DOS program. Any real-mode operating system (such as 8086 Xenix) could also be made to run using OS/2's virtual machine capabilities, subject to certain direct hardware access limitations.
Like most 32-bit environments, OS/2 could not run protected-mode DOS programs using the older VCPI interface, unlike the Standard mode of Windows 3.1; it only supported programs written according to DPMI. (Microsoft discouraged the use of VCPI under Windows 3.1, however, due to performance degradation.)
Unlike Windows NT, OS/2 always allowed DOS programs the
possibility of masking real hardware interrupts, so any DOS program
could deadlock the machine in this way. OS/2 could, however, use a hardware watchdog
on selected machines (notably IBM machines) to break out of such a
deadlock. Later, release 3.0 leveraged the enhancements of newer Intel 80486 and Intel Pentium processors—the Virtual Interrupt Flag (VIF), which was part of the Virtual Mode Extensions (VME)—to solve this problem.
Windows 3.x compatibility
Compatibility
with Windows 3.0 (and later Windows 3.1) was achieved by adapting
Windows user-mode code components to run inside a virtual DOS machine
(VDM). Originally, a nearly complete version of Windows code was
included with OS/2 itself: Windows 3.0 in OS/2 2.0, and Windows 3.1 in
OS/2 2.1. Later, IBM developed versions of OS/2 that would use whatever
Windows version the user had installed previously, patching it on the
fly, and sparing the cost of an additional Windows license.
It could either run full-screen, using its own set of video drivers, or
"seamlessly," where Windows programs would appear directly on the OS/2
desktop. The process containing Windows was given fairly extensive
access to hardware, especially video, and the result was that switching
between a full-screen WinOS/2 session and the Workplace Shell could
occasionally cause issues.
Because OS/2 only runs the user-mode system components of Windows, it is incompatible with Windows device drivers (VxDs) and applications that require them.
Multiple Windows applications run by default in a single Windows
session – multitasking cooperatively and without memory protection –
just as they would under native Windows 3.x. However, to achieve true
isolation between Windows 3.x programs, OS/2 can also run multiple
copies of Windows in parallel, with each copy residing in a separate
VDM. The user can then optionally place each program either in its own
Windows session – with preemptive multitasking and full memory
protection between sessions, though not within them – or
allow some applications to run together cooperatively in a shared
Windows session while isolating other applications in one or more
separate Windows sessions. At the cost of additional hardware resources,
this approach can protect each program in any given Windows session
(and each instance of Windows itself) from every other program running
in any separate Windows session (though not from other programs running in the same Windows session).
Whether Windows applications are running in full-screen or
windowed mode, and in one Windows session or several, it is possible to
use DDE between OS/2 and Windows applications, and OLE between Windows applications only.
1994–1996: The "Warp" years
OS/2 Warp 4 desktop after installation
Released in 1994, OS/2 version 3.0 was labelled as OS/2 Warp
to highlight the new performance benefits, and generally to freshen the
product image. "Warp" had originally been the internal IBM name for the
release: IBM claimed that it had used Star Trek
terms as internal names for prior OS/2 releases, and that this one
seemed appropriate for external use as well. At the launch of OS/2 Warp
in 1994, Patrick Stewart was to be the Master of Ceremonies; however Kate Mulgrew of the then-upcoming series Star Trek: Voyager was substituted at the last minute.
OS/2 Warp offers a host of benefits over OS/2 2.1, notably broader hardware support, greater multimedia capabilities, Internet-compatible networking, and it includes a basic office application suite known as IBM Works.
It was released in two versions: the less expensive "Red Spine" and the
more expensive "Blue Spine" (named for the color of their boxes). "Red
Spine" was designed to support Microsoft Windows
applications by utilizing any existing installation of Windows on the
computer's hard drive. "Blue Spine" includes Windows support in its own
installation, and so can support Windows applications without a Windows
installation. As most computers were sold with Microsoft Windows
pre-installed and the price was less, "Red Spine" was the more popular
product.[citation needed] OS/2 Warp Connect—which has full LAN client support built-in—followed in mid-1995. Warp Connect was nicknamed "Grape".
In OS/2 2.0, most performance-sensitive subsystems, including the
graphics (Gre) and multimedia (MMPM/2) systems, were updated to 32-bit
code in a fixpack, and included as part of OS/2 2.1. Warp 3 brought
about a fully 32-bit windowing system, while Warp 4 introduced the
object-oriented 32-bit GRADD display driver model.
Mozilla 1.7.13 for OS/2 Warp 4
Firefox 3.5.4 for OS/2 Warp 4
In 1996, Warp 4 added Java and speech recognition
software. IBM also released server editions of Warp 3 and Warp 4 which
bundled IBM's LAN Server product directly into the operating system
installation. A personal version of Lotus Notes
was also included, with a number of template databases for contact
management, brainstorming, and so forth. The UK-distributed free demo CD-ROM of OS/2 Warp essentially contained the entire OS and was easily, even accidentally, cracked,
meaning that even people who liked it did not have to buy it. This was
seen as a backdoor tactic to increase the number of OS/2 users, in the
belief that this would increase sales and demand for third-party
applications, and thus strengthen OS/2's desktop numbers.
This suggestion was bolstered by the fact that this demo version had
replaced another which was not so easily cracked, but which had been
released with trial versions of various applications. In 2000, the July edition of Australian Personal Computer
magazine bundled software CD-ROMs, included a full version of Warp 4
that required no activation and was essentially a free release. Special
versions of OS/2 2.11 and Warp 4 also included symmetric multiprocessing (SMP) support.
OS/2 sales were largely concentrated in networked computing used
by corporate professionals; however, by the early 1990s, it was
overtaken by Microsoft Windows NT. While OS/2 was arguably technically superior to Microsoft Windows 95,
OS/2 failed to develop much penetration in the consumer and stand-alone
desktop PC segments; there were reports that it could not be installed
properly on IBM's own Aptiva series of home PCs. Microsoft made an offer in 1994 where IBM would receive the same terms as Compaq
(the largest PC manufacturer at the time) for a license of Windows 95,
if IBM ended development of OS/2 completely. IBM refused and instead
went with an "IBM First" strategy of promoting OS/2 Warp and disparaging
Windows, as IBM aimed to drive sales of its own software as well as
hardware. By 1995, Windows 95 negotiations between IBM and Microsoft,
which were already difficult, stalled when IBM purchased Lotus SmartSuite, which would have directly competed with Microsoft Office.
As a result of the dispute, IBM signed the license agreement 15 minutes
before Microsoft's Windows 95 launch event, which was later than their
competitors and this badly hurt sales of IBM PCs. IBM officials later
conceded that OS/2 would not have been a viable operating system to keep
them in the PC business.
Workplace OS
In 1991 IBM started development on an intended replacement for OS/2 called Workplace OS.
This was an entirely new product, brand new code, that borrowed only a
few sections of code from both the existing OS/2 and AIX products. It
used an entirely new microkernel code base, intended (eventually) to
host several of IBM's operating systems (including OS/2) as microkernel
"personalities". It also included major new architectural features
including a system registry, JFS, support for UNIX graphics libraries,
and a new driver model.
Workplace OS was developed solely for POWER platforms, and IBM intended to market a full line of PowerPCs in an effort to take over the market from Intel.
A mission was formed to create prototypes of these machines and they
were disclosed to several Corporate customers, all of whom raised issues
with the idea of dropping Intel.
Advanced plans for the new code base would eventually include replacement of the OS/400
operating system by Workplace OS, as well as a microkernel product that
would have been used in industries such as telecommunications and
set-top television receivers.
A partially functional pre-alpha version of Workplace OS was demonstrated at Comdex, where a bemused Bill Gates
stopped by the booth. The second and last time it would be shown in
public was at an OS/2 user group in Phoenix, Arizona; the pre-alpha code
refused to boot.
It was released in 1995. But with $990 million being spent per
year on development of this as well as Workplace OS, and no possible
profit or widespread adoption, the end of the entire Workplace OS and
OS/2 product line was near.
Downsizing
A project was launched internally by IBM to evaluate the looming
competitive situation with Microsoft Windows 95. Primary concerns
included the major code quality issues in the existing OS/2 product
(resulting in over 20 service packs, each requiring more diskettes than
the original installation), and the ineffective and heavily matrixed
development organization in Boca Raton (where the consultants reported
that "basically, everybody reports to everybody") and Austin.
That study, tightly classified as "Registered Confidential" and
printed only in numbered copies, identified untenable weaknesses and
failures across the board in the Personal Systems Division as well as
across IBM as a whole. This resulted in a decision being made at a level
above the Division to cut over 95% of the overall budget for the entire
product line, end all new development (including Workplace OS),
eliminate the Boca Raton development lab, end all sales and marketing
efforts of the product, and lay off over 1,300 development individuals
(as well as sales and support personnel). $990 million had been spent in
the last full year. Warp 4 became the last distributed version of OS/2.
2001: Fading out
An ATM in Australia revealing during a reboot that it is based on OS/2 Warp
A small and dedicated community remained faithful to OS/2 for many years after its final mainstream release,
but overall, OS/2 failed to catch on in the mass market and is little
used outside certain niches where IBM traditionally had a stronghold.
For example, many bank installations, especially automated teller machines, run OS/2 with a customized user interface; French SNCF national railways used OS/2 1.x in thousands of ticket selling machines. Telecom companies such as Nortel use OS/2 in some voicemail systems. Also, OS/2 was used for the host PC used to control the Satellite Operations Support System equipment installed at NPR member stations from 1994 to 2007, and used to receive the network's programming via satellite.
Although IBM began indicating shortly after the release of Warp 4
that OS/2 would eventually be withdrawn, the company did not end
support until December 31, 2006.
Sales of OS/2 stopped on December 23, 2005. The latest IBM version is
4.52, which was released for both desktop and server systems in December
2001. Serenity Systems has been reselling OS/2 since 2001, calling it eComStation.
Version 1.2 was released in 2004. After a series of preliminary
"release candidates," version 2.0 GA (General Availability) was released
on 15 May 2010. eComStation version 2.1 GA was released on May 20, 2011.
IBM is still delivering defect support for a fee. IBM urges customers to migrate their often highly complex applications to e-business technologies such as Java
in a platform-neutral manner. Once application migration is completed,
IBM recommends migration to a different operating system, suggesting Linux as an alternative.
Virtualization
As of 2008, support for running OS/2 under virtualization
appears to be improving in several third-party products. OS/2 has
historically been more difficult to run in a virtual machine than most
other legacy x86 operating systems because of its extensive reliance on the full set of features of the x86 CPU; in particular, OS/2's use of ring 2 prevented it from running in VMware. Emulators such as QEMU and Bochs don't suffer from this problem and can run OS/2.
A beta of VMware Workstation 2.0 released in January 2000 was the first hypervisor that could run OS/2 at all. Later, the company decided to drop official OS/2 support.
VirtualPC from Microsoft (originally Connectix)
has been able to run OS/2 without hardware virtualization support for
many years. It also provided "additions" code which greatly improves
host–guest OS interactions in OS/2. The additions are not provided with
the current version of VirtualPC, but the version last included with a
release may still be used with current releases. At one point, OS/2 was a
supported host for VirtualPC in addition to a guest. Note that OS/2
runs only as a guest on those versions of VirtualPC that use
virtualization (x86 based hosts) and not those doing full emulation
(VirtualPC for Mac).
VirtualBox from Oracle Corporation (originally InnoTek, later Sun)
supports OS/2 1.x, Warp 3 through 4.5, and eComStation as well as
"Other OS/2" as guests. However, attempting to run OS/2 and eComStation
can still be difficult, if not impossible, because of the strict
requirements of VT-x/AMD-V hardware-enabled virtualization and only
ACP2/MCP2 is reported to work in a reliable manner.
The difficulties in efficiently running OS/2 have, at least once, created an opportunity for a new virtualization company. A large bank in Moscow
needed a way to use OS/2 on newer hardware that OS/2 did not support.
As virtualization software is an easy way around this, the company
desired to run OS/2 under a hypervisor.
Once it was determined that VMware was not a possibility, it hired a
group of Russian software developers to write a host-based hypervisor
that would officially support OS/2. Thus, the Parallels, Inc. company and their Parallels Workstation product was born.
Security niche
OS/2 has few native computer viruses; while it is not invulnerable by design, its reduced market share appears to have discouraged virus writers.
There are, however, OS/2-based antivirus programs, dealing with DOS
viruses and Windows viruses that could pass through an OS/2 server.
Petitions for open source
Many people hoped that IBM would release OS/2 or a significant part of it as open source. Petitions were held in 2005 and 2007, but IBM refused them, citing legal and technical reasons.
It is unlikely that the entire OS will be open at any point in the
future because it contains third-party code to which IBM does not have
copyright, and much of this code is from Microsoft. IBM also once engaged in a technology transfer with Commodore, licensing Amiga technology for OS/2 2.0 and above, in exchange for the REXX scripting language.
This means that OS/2 may have some code that was not written by IBM,
which can therefore prevent the OS from being re-announced as
open-sourced in the future. On the other hand, IBM donated Object REXX for Windows and OS/2 to the Open Object REXX project maintained by the REXX Language Association on SourceForge.
There was a petition, arranged by OS2World, to open parts of the OS. Open source operating systems such as Linux have already profited from OS/2 indirectly through IBM's release of the improved JFSfile system,
which was ported from the OS/2 code base. As IBM didn't release the
source of the OS/2 JFS driver, developers ported the Linux driver back
to eComStation
and added the functionality to boot from a JFS partition. This new JFS
driver has been integrated into eComStation v2.0, the successor of OS/2.
Summary of releases
Release dates refer to the US English editions unless otherwise noted.
Date
Version
December 1987
OS/2 1.0
November 1988
OS/2 1.1
October 1989
OS/2 1.2
December 1990
OS/2 1.3
October 1991
OS/2 2.0 LA (Limited Availability)
April 1992
OS/2 2.0
October 1992
OS/2 2.00.1
November 1993
OS/2 for Windows
February 1994
OS/2 2.11
July 1994
OS/2 2.11 SMP
October 1994
OS/2 Warp
May 1995
OS/2 Warp Connect
December 1995
OS/2 Warp, PowerPC Edition
February 1996
OS/2 Warp Server 4
September 1996
OS/2 Warp 4
September 1996
OS/2 Warp Server Advanced SMP
November 1997
WorkSpace On-Demand 1.0
October 1998
WorkSpace On-Demand 2.0
April 1999
OS/2 Warp Server for e-Business (version 4.50)
November 2000
OS/2 Convenience Pack 1 (version 4.51)
November 2001
OS/2 Convenience Pack 2 (version 4.52)
Features and technology
User interface
The
graphic system has a layer named Presentation Manager that manages
windows, fonts, and icons. This is similar in functionality to a
non-networked version of X11 or the Windows GDI. On top of this lies the Workplace Shell (WPS) introduced in OS/2 2.0. WPS is an object-orientedshell
allowing the user to perform traditional computing tasks such as
accessing files, printers, launching legacy programs, and advanced
object oriented tasks using built-in and third-party application objects
that extended the shell in an integrated fashion not available on any
other mainstream operating system. WPS follows IBM's Common User Access user interface standards.
WPS represents objects such as disks, folders, files, program objects, and printers using the System Object Model
(SOM), which allows code to be shared among applications, possibly
written in different programming languages. A distributed version called
DSOM allowed objects on different computers to communicate. DSOM is
based on CORBA. The object oriented aspect of SOM is similar to, and a direct competitor to, Microsoft's Component Object Model,
though it is implemented in a radically different manner; for instance,
one of the most notable differences between SOM and COM is SOM's
support for inheritance (one of the most fundamental concepts of OO
programming)—COM does not have such support. SOM and DSOM are no longer
being developed.
The multimedia capabilities of OS/2 are accessible through Media Control Interface commands.
The last update (bundled with the IBM version of Netscape Navigator plugins) added support for MPEG files. Support for newer formats such as PNG, progressive JPEG, DivX, Ogg, and MP3
comes from third parties. Sometimes it is integrated with the
multimedia system, but in other offers it comes as standalone
applications.
Application development
OS/2 also includes a radical advancement in application development with compound document technology called OpenDoc,
which was developed with Apple. OpenDoc proved interesting as a
technology, but was not widely used or accepted by users or developers.
OpenDoc is also no longer being developed.
Hardware
vendors were reluctant to support device drivers for alternative
operating systems including OS/2 and Linux, leaving users with few
choices from a select few vendors. To relieve this issue for video
cards, IBM licensed a reduced version of the Scitech display drivers, allowing users to choose from a wide selection of cards supported through Scitech's modular driver design.
Problems
Some problems were classic subjects of comparison with other operating systems:
Synchronous input queue (SIQ): if a GUI application was not servicing its window messages,
the entire GUI system could get stuck and a reboot was required. This
problem was considerably reduced with later Warp 3 fixpacks and refined
by Warp 4, by taking control over the application after it had not
responded for several seconds.
No unified object handles (OS/2 v2.11 and earlier): The
availability of threads probably led system designers to overlook
mechanisms which allow a single thread to wait for different types of
asynchronous events at the same time, for example the keyboard and the
mouse in a "console" program. Even though select was added later,
it only worked on network sockets. In case of a console program,
dedicating a separate thread for waiting on each source of events made
it difficult to properly release all the input devices before starting
other programs in the same "session". As a result, console programs
usually polled the keyboard and the mouse alternately, which resulted in
wasted CPU and a characteristic "jerky" reactivity to user input. In
OS/2 3.0 IBM introduced a new call for this specific problem.
Historical uses
OS/2 has been widely used in Iran Export Bank (Bank Saderat Iran) in
their teller machines, ATMs and local servers (over 30,000 working
stations). As of 2011, the bank moved to virtualize and renew their
infrastructure by moving OS/2 to Virtual Machines running over Windows.
OS/2 has been used in the banking industry. Suncorp bank in Australia still ran its ATM network on OS/2 as late as 2002. ATMs in Perisher Blue used OS/2 as late as 2009, and even the turn of the decade.
OS/2 was widely adopted by accounting professionals and auditing companies. In mid-1990s native 32-bit accounting software were well developed and serving corporate markets.
OS/2 ran the faulty baggage handling system at Denver International Airport.
The OS was eventually scrapped, but the software written for the system
led to massive delays in the opening of the new airport. The OS itself
was not at fault, but the software written to run on the OS was. The
baggage handling system was eventually removed.
OS/2 was used by radio personality Howard Stern. He once had a 10-minute on-air rant about OS/2 versus Windows 95 and recommended OS/2. He also used OS/2 on his IBM 760CD laptop.
OS/2 was used as part of the Satellite Operations Support System (SOSS) for NPR's Public Radio Satellite System.
SOSS was a computer-controlled system using OS/2 that NPR member
stations used to receive programming feeds via satellite. SOSS was
introduced in 1994 using OS/2 3.0, and was retired in 2007, when NPR
switched over to its successor, the ContentDepot.
OS/2 was used to control the SkyTrain automated light rail system in Vancouver, British Columbia, Canada until the late 2000s when it was replaced by Windows XP.
OS/2 was used in the London UndergroundJubilee Line Extension
Signals Control System (JLESCS) in London, UK. This control system
delivered by Alcatel was in use from 1999 to 2011 i.e. between
abandonment before opening of the line's unimplemented original
automatic train control system and the present SelTrac
system. JLESCS did not provide automatic train operation only manual
train supervision. Six OS/2 local site computers were distributed along
the railway between Stratford and Westminster, the shunting tower at
Stratford depot, and several formed the central equipment located at
Neasden. It was once intended to cover the rest of the line between
Green Park and Stanmore but this was never introduced.
OS/2 has been used by The Co-operative Bank
in the UK for its domestic call centre staff, using a bespoke program
created to access customer accounts which cannot easily be migrated to
Windows.
OS/2 has been used by the Stop & Shop supermarket chain (and has been installed in new stores as recently as March 2010).
OS/2 has been used on ticket machines for Croydon Tramlink in outer-London (UK).
OS/2 has been used in New York City's subway system for MetroCards.
Rather than interfacing with the user, it connects simple computers and the mainframes.
When NYC MTA finishes its transition to contactless payment, OS/2 will be removed.
OS/2 was used in checkout systems at Safeway supermarkets.
OS/2 was used by Trenitalia,
both for the desktops at Ticket Counters and for the Automatic Ticket
Counters up to 2011. Incidentally, the Automatic Ticket Counters with
OS/2 were more reliable than the current ones running a flavor of
Windows.
OS/2 was used as the main operating system for Abbey National
General Insurance motor and home direct call centre products using the
PMSC Series III insurance platform on DB2.2 from 1996-2001.