Programming Windows: IBM Defends the Original PC (Premium)

In Programming Windows: Wintel (Premium), I described how IBM decided to enter the personal computing market in 1980 and did so in less than a year by choosing open, inexpensive third-party hardware and software solutions. Key among the components IBM chose was the Intel 8088, a cost-reduced version of the 16-bit 8086.

As noted previously, the Intel 8088 and 8086 ran in a single operating mode called real mode and they utilized a 20-bit segmented memory address space which limited the amount of RAM to 1 MB (1024 KB). That seemed like a lot of memory in 1980/1981—the consumer-oriented personal computers of the day typically offered just 4 KB to 64 KB of RAM, for example—and IBM semi-arbitrarily segmented the available address space to accommodate different needs. The first 640 KB was available to any software running on the chipset (operating system plus an application, typically) while the remaining 384 KB was divvied up between the BIOS, video, and peripherals.

That last bit would bedevil IBM, PC clone makers, software makers like Microsoft, and users for years to come.

Intel first worked around the real mode weirdness by supporting up to 16 MB of RAM in protected mode, plus memory protection and management functionality, in its 16-bit 80286 processor. Bill Gates would decry this half-step as a “brain-dead” kludge that didn’t really solve the problems because it separated its memory into 256 KB segments that could only be accessed one at a time.

With the 80386, however, Intel finally delivered the chipset that PC industry needed, in part because it final sought design feedback from key players like Microsoft. The 386 was fully 32-bit and could address up to 4 GB of RAM. It provided a flat, non-segmented memory space. Better still, it could switch between real, protected, and its own 386 protected mode on the fly, and in the latter mode, it offered a virtual 8086 capability that allowed Windows to concurrently run multiple instances of MS-DOS applications simultaneously.

During this transition, Microsoft evolved Windows to support the new Intel chipset capabilities. Windows/286 specifically targeted the 80286 and its unique features, and Windows/386 did the same for the 80386; both were released in 1988. Windows 3.0, from 1990, could run in any mode supported by any Intel x86 processor, and would try to choose the best mode automatically; it also provided improved memory management when running on a 286 or 386. And then Windows 3.1, released in 1992, finally supported a true 32-bit 386 Enhanced Mode and up to 256 MB of RAM.

If you accept that Windows 3.1 finally pushed the PC past the issues that were created by IBM’s weird segmentation of the 8088 address space, then 12 years had elapsed. But if you feel that it wasn’t until 1995 and Windows 95, which required a 386 or better and its flat 32-bit memory space, then this fix took 14 years. Either way, that’s a long time.

So, I was curious to see whether ...

Gain unlimited access to Premium articles.

With technology shaping our everyday lives, how could we not dig deeper?

Thurrott Premium delivers an honest and thorough perspective about the technologies we use and rely on everyday. Discover deeper content as a Premium member.

Tagged with

Share post

Please check our Community Guidelines before commenting

Windows Intelligence In Your Inbox

Sign up for our new free newsletter to get three time-saving tips each Friday

"*" indicates required fields

This field is for validation purposes and should be left unchanged.

Thurrott © 2024 Thurrott LLC