OS/2 Versions And History: Difference between revisions

From DisNCord Community Wiki
Jump to navigation Jump to search
Line 5: Line 5:


== Multitasking DOS 4 ==
== Multitasking DOS 4 ==
[[File:DOS 4.0 multitasking demo.png|thumb|DOS 4.0 running several processes.]]
[[File:MDOS4 session manager.png|thumb|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]].''
''For more detailed information about this version of DOS, see [[Multitasking DOS 4]].''
Line 17: Line 17:
* the use of a higher-level language (C) for writing parts of the operating system.
* 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 (TODO: check for 1986 ADOS 5.0), 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 (<code>int 21h</code>) and new dynamically linked APIs, perhaps suggesting the old API was deprecated or in the process of being replaced.
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 (<code>int 21h</code>) 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.
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<ref>https://virtuallyfun.com/2013/03/17/european-ms-dos-4-00-aka-multitasking-dos/</ref>.
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<ref>https://virtuallyfun.com/2013/03/17/european-ms-dos-4-00-aka-multitasking-dos/</ref>.
=== 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 ===
=== New APIs ===


DOSCALLS functions:
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:
 
<pre>
<pre>
1 ALLOCSEG
1 ALLOCSEG
Line 47: Line 60:
</pre>
</pre>


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


== OS/2 Pre-Betas ==
== OS/2 Pre-Betas ==

Revision as of 19:47, 17 January 2023

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