OS/2 Versions And History

From DisNCord Community Wiki
Jump to navigation Jump to search

This is a list, chronologically sorted, of OS/2 versions, related products, and historic dates.

IBM PC DOS 3.1 (1984)

Multitasking DOS 4

The first known appearance of the Session Manager in Multitasking DOS 4.

For more detailed information about this version of DOS, see Multitasking DOS 4.

Officially called just MS-DOS 4.00, Multitasking DOS 4 was the intended successor of DOS 2.x and later 3.x, initially developed between January 1983[1] and November 1985. It has many features later appearing in both OS/2 and Windows, including:

  • the New Executable format
  • an OS/2-style per-task data area (PTDA) replacing the MS-DOS program segment prefix (PSP)
  • system calls using dynamically linked functions in a built-in module named DOSCALLS
  • the concept of processes along with related system calls
  • the use of a higher-level language (C) for writing parts of the operating system.

However, unlike any version of OS/2 released to the public, both earlier MS-DOS COM and MZ executables and MS-DOS interrupts are supported on Multitasking DOS 4, and there are even improvements to these APIs (some of which break compatibility with older DOS versions). New apps use both the legacy (int 21h) and new dynamically linked APIs, perhaps suggesting the old API was deprecated or in the process of being replaced.

It was originally called DOS 3.0, which is referenced by older binaries checking for DOS 3.0 to 4.0; later the release number was pushed to 4.0 with the release of 3.0.

This version of DOS supports pre-emptive multitasking, but its usability is limited by the 640kB memory limit, with no swapping because of lack of necessary hardware support. For this reason, it was only released to certain OEMs, opting to wait with the public release for its protected mode successor[2].

Multitasking Support

Multitasking DOS 4 adds new system calls to manage a multiprocess system, namely for:

  • shared memory
  • semaphores
  • sleep and wait on child
  • signal handlers and sending signals
  • process priority

In addition to the usual CON device for the screen, split devices SCREEN$ and KEYBD$ were introduced; the user can switch between multiple sessions, each having its own screen. The DETACH command was added to support running processes in the background; these are still allowed to write onto their attached screen, but can't read from STDIN.

New APIs

A module built into the kernel called DOSCALLS was introduced in Multitasking DOS 4, containing a limited number of functions implementing new features of the DOS kernel. If you know a little about OS/2 API, this will be familiar to you. Note that some of the functions being prefixed with DOS and some not. Here's a full list of DOSCALLS exports:

1	ALLOCSEG
2	REALLOCSEG
3	FREESEG
4	LOCKSEG
5	UNLOCKSEG
6	GETSEGSIZE
7	GETDSHANDLE
8	CRITENTER
9	CRITLEAVE
10	FCRITENTER
11	FCRITLEAVE
12	PBLOCK
13	PRUN
14	SUBSCREEN
15	GETPIDS
16	DOSDISCARDCODE
17	DOSGETHANDLE
18	DOSHANDLEJUMP

The rest of the new functions (e.g. semaphores) are only implemented as INT 21h calls.

OS/2 Pre-Betas

These need to be sorted by date

IBM OS/2 1.0

MS OS/2 1.0

IBM OS/2 1.1

MSOS/2 1.2

References