PREVIOUS PAGE

This article was published in PC Plus issue 142 (Aug 98), and is reproduced here for information purposes only.

This is the original copy which was sent to the magazine, not the subbed version which appeared on the page. 


paul@paulspages.co.uk
www.paulspages.co.uk

The core architecture of Windows 9x.

This piece ran as a section within PC Plus's review of Windows 98. It describes Win 9x's dual 16/32 architecture, explains the concept of 'thunking', and details the developments in Win 98 release. It was accompanied by a diagram showing the 16/32-bit architectural layout.

 

[BEGINS]

<Head>

Core values

<strap>

At the heart of Win 98 lies the reason why it can never be a full 32-bit operating system - and why Windows NT will eventually replace it as Microsoft's standard desktop OS.

<body>

Windows 95 introduced what is arguably the strangest architecture ever seen in an operating system. Microsoft's main objective was to let users of 16-bit Win 3.1and DOS software migrate gradually to 32-bit Windows applications, without having to buy too much new hardware. The result was two 'virtual operating systems' (16 and 32-bit) running in the same machine, a structure which remains unchanged in Win 98.

                The design exploits the Intel 386/486/Pentium processor family's ability to load 16- and 32-bit software side by side in RAM, then switch near-instantly between them. At the core of Windows 3.1 were three 16-bit code modules, KERNEL, GDI and USER. In Win 95 and Win 98, there are two versions of each module - one 16-bit, the other 32-bit (KERNEL, KERNEL32, etc).

Each module version offers a full set of API (Application Programming Interface) calls to its 'native' applications (16- or 32-bit), but contains routines to service only some of them. When a module receives a call which it can't service, it passes it to its opposite number, using a 16/32 bit conversion technique dubbed 'Thunking'. The other module executes the call, then passes the results back across the 'thunking layer'.

Windows 9x thus contains just one set of system routines, some in 16-bit modules, others in 32-bit ones, and uses thunking to fill in the gaps in each module's repertoire. That, plus Intel's fast 16/32 bit processor switching, allows it to run in relatively modest hardware configurations

Few changes
Win 98's core architecture is largely unchanged from Win 95. Microsoft has moved some system functions from 16-bit to 32-bit modules, although it isn't saying which ones. It's also rewritten much of the 32-bit code, and claims that Win 98 is more crash proof (although our experience with a crashing IE4 showed that it's still far from perfect). However there have been no changes to the remaining 16-bit modules, or to the Win 16 'Mutex' mechanism, which allows a 16-bit application to temporarily claim complete control of the processor, and thus potentially lock everything else out.

One factor preventing major 16-bit code alterations is another objective of the Win 9x design - compatibility with old, 'badly behaved' 16-bit applications which accessed Windows 3.1 system code directly, and would crash of they found it missing. This effectively prevents Windows 9x from being developed into a fully 32-bit operating system, although that's not really a problem, since Microsoft never intended to do that anyway. Instead it's always seen Win 9x as a stepping stone to its 'real' 32-bit operating system, Windows NT.

                Windows NT also runs 16 and 32-bit applications, but in a very different way. It's basically a 32-bit system, and supports 16-bit applications by loading a separate compatibility layer (in effect a mini-Win 3.1) which duplicates many of its own functions. And instead of switching the Intel processor instantly between 16 and 32-bit formats, it goes through hardware-based security mechanisms which place impenetrable barriers between applications' memory spaces, preventing them from accessing or corrupting each other.

                As a result NT is far more crash-proof and security-conscious than Windows 9x, but needs more RAM and a faster processor to run, and is less able to support badly behaved 16-bit applications. But whereas in 1995 hardware constraints and rogue apps were still significant issues, today's mainstream hardware configurations have caught up with NT's needs (the entry level is a P233 and 64MB RAM), and those old software delinquents are dying away. NT's time has come, which leaves Windows 98 quite likely to be the last major release of the Win 9x platform.

                Microsoft actually said as much last year, although it's backtracked since then and will have to keep the Win 9x platform going long enough to see today's installed base of legacy hardware and software out. However it's already saying that business users 'who have a choice' should opt for Windows NT 4.0 Workstation over Windows 98. Today, NT4.0 has a Win 9x-like user interface but still can't support some W9x-compatible hardware and software. Next year's NT 5.0 will support the full Win 9x API, use the same WDM driver model and may even handle FAT32 disks. It looks set to be the first full convergence platform, designed to accommodate Win 9x users who aren't restricted by old hardware or applications. One day, on the desktop at least, there will be just one Windows again.

[ENDS]

(C) Paul Stephens 1998. All rights reserved.