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. |
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 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.
|
|||