The Importance of EMM386

It is fairly obvious that Compaq’s Deskpro 386 changed the PC hardware and was probably one of the major reasons why we aren’t using PS/2 compatibles today. It may be less obvious that CEMM, an offshoot of the Deskpro 386 better known in its later incarnation as EMM386, also significantly shaped the PC software landscape.

When the Deskpro 386 appeared, it faced an interesting problem: There was no popular operating system capable of utilizing the advanced features of the i386 processor. Compaq marketed the Deskpro 386 simply as a very fast (and quite expensive) PC compatible designed for running DOS applications. Even after the first UNIX ports appeared, DOS was so popular and ubiquitous that users did not feel sufficiently enticed to switch. That was compounded by the fact that RAM was very expensive and systems with more memory than DOS could handle were rare around 1987.

CEMM/EMM386 ensured that DOS could handle quite a lot of memory. CEMM, or Compaq Expanded Memory Manager, was a very innovative piece of software. By utilizing the virtual 8086 (V86) mode of the i386, CEMM could provide 8086-compatible expanded memory (EMS) to existing DOS applications without requiring special hardware (as an 8086 would). Continue reading

Posted in DOS | 4 Comments

NT and OS/2

OS/2 and Windows NT have an interesting and checkered common history. Until late 1990, the operating system eventually released as Windows NT was known as NT OS/2. Despite its name, NT had very little in common with OS/2 as it existed at the time (that is, OS/2 1.x) in terms of design or source code. The core NT design team led by Dave Cutler, mostly consisting of ex-Digital programmers, had very little experience with OS/2 or even PCs. At the same time, the plan was to provide compatibility with existing OS/2 applications and for OS/2 to be the dominant ‘personality’ of NT.

The NT kernel’s (or more correctly the NT Executive’s) design was radically different from the design of OS/2 1.x. While OS/2 1.x was a 16-bit OS designed exclusively for the segmented architecture of the Intel 286/386 CPUs, NT was a portable 32-bit OS with paged virtual memory, deliberately ported to the 386 PC platform relatively late in its development cycle. While OS/2 could not run on anything but a 286/386 without a complete rewrite, NT could not run on a 286 ever. Continue reading

Posted in NT, OS/2 | 8 Comments