From: blakeco@microsoft.com (Blake Coverett)
Subject: Re: Windows NT
Date: 05 Jan 93 06:15:10 GMT
Organization: Microsoft Canada Inc.

In article <C0C8C9.5E9@usenet.ucs.indiana.edu> ntaib@silver.ucs.indiana.edu (Iskandar Taib) writes:
>In article <1992Dec21.154448.18823@wraxall.inmos.co.uk> des@inmos.co.uk (David Shepherd) writes:
>>Vassilo Walluschnig (Vassilo.Walluschnig@f55.n7101.z5.fidonet.org kibo) wrote:
>>: Hi All,
>>
>>:   Okay, I got a question for all those people "in the know" about
>>:   Windows NT. What would happen while running NT on a RISC machine, say
>>:   the DEC Alpha, and running a DOS application in NT, and that DOS
>>:   application makes a direct call to the video card? How would NT go
>>:   about handling such a situation? Would it hang the application
>>:   or would NT come back saying that it cannot run the program and
>>:   promptly shuts the application down?

NT will quietly and happily virtualize the hardware access and display the
desired result in the window in which that DOS app is running.

>>i'd expect that NT would stop the program with a memory protection 
>>violation. NT, like OS/2, and unlike DOS is a "real" OS where things
>>like i/o are handled via system calls to drivers ... writing directly
>>to a device register is not allowed.

If a Win32 app were to start randomly writing to hardware it would get
GP faulted and thrown out (like any real OS should) but DOS apps by there
nature write to the hardware so it is virtualized in their case.

>Here's another question for you NT experts out there. What happens 
>when you run NT on a non-Intel machine? My impression has always been 
>that NT uses a microkernel specific to that machine - sort of like a 
>CPU driver. Therefore the Windows shell that sits on top of the micro-
>kernel has a constant interface no matter what hardware you are running
>it on. The application software doesn't make machine specific calls ei-
>ther, but makes either Windows calls or microkernel calls. 

Applications generally only make calls to their sub-system, in this case then
the apps only make calls to the Win32 subsystem.  There are two pieces of
Windows NT that change between platforms.  The Kernel and the HAL.  The
Kernel is changes with major changes to the hardware, i.e. a different
architecture or between single and multi-processor.  The HAL (Hardware
Abstraction Layer) changes more frequently, i.e. between EISA/ISA and MCA
or between different vendors' MP configurations.  (Note: the Kernel in 
this case is the bottom piece of the NT Executive.  The NT Executive
is what is being refered to as the micro-kernel in the quoted passage above.)

>Someone else posted, though, that MS has written Intel emulators for
>the other platforms that sits between Windows NT and the hardware. The
>software (both application and system) makes Intel machine calls which 
>are translated to the native cpu's language.

Nope.  This would be prohibitively expensive.  There is an Intel emulator,
but that is only for DOS and Win16 apps.  Win32 apps and the the OS itself
are all compiled for the target platform.

-Blake (at a loss for a smart comment today)
-- 
#include <std/disclaimer.h>                       blakeco@microsoft.com
Mail Flames, Post Apologies.                      ...!uunet!microsoft!blakeco