-----------------------------------------------------------

New Message on BDOTNET

-----------------------------------------------------------
From: Sitaraman
Message 7 in Discussion

Hi      NTVDM is running under a protected mode environment, which is the Intel x86 
Virtual 8086 emulation mode. This is emulated, not by a software, but by the hardware, 
i.e., the processor. 
When i said that an environment is provided by the VDM, wat i basically meant was to 
highlight the difference btwn a NT3.5 and NT3.51+ OS feature.  Whereas in NT3.5 each 
16 bit app ran in a separate VM,  starting from 3.51 onwards,  multiple 16bit apps 
could run in the same VM.  
        NTVDM executes native instruction set, of the underlying microprocessor and 
that is what is also contained in the executing application. This is in contrast with 
a VES where in the executing application contains the instruction set for the VES, 
which translates it to the instruction set of the underlying microprocessor. 
would like to digress on the point that "NTVDM executes the native instruction set of 
the underlying microprocesor".  Wont it be accurate to say that,  watever the 
underlying processor, NT will emulate a I383 Intel processor  instruction set.  coz 
when NT runs on a RISC based system,  if  "NTVDM executes native instruction set, of 
the underlying microprocessor ", as you say,  then 16 bit apps wont run on such 
systems.  Isnt it??  If i remember right,  in RISC based systems,  an instruction 
execution unit (IEU) works with the NTDVM to emulate I383 Intel processor instruction 
sets. 
        A VES provides a lot of facilities to the executing application: type 
checking, memory management, security (execution and role), code isolation (execution 
perspective). NTVDM does no such stuff. 
Agreed.  was a wrong phrase that i used. Never intended to say VDM provides featues to 
a 16 bit app, just like the VES provides to the launched app inside it.   just meant 
to say that it is a layer on top of the OS which abstracts the underlying  OS from the 
running app. Isnt that true
        In NTVDM, no thunking occurs since the applications that execute undre it are 
actually written for real mode x86 architecture. Thunking is specific to Windows OS, 
while real mode x86 is DOS based architecture (no, am not referring to the console 
like looks, but the architecture of the OS). Thunking is used by Windows to make calls 
to 16bit protected mode code from 32 bit protected mode code and vice-versa. 
When i say NTVDM,  im talking about both 16 bit DOS and 16 bit windows applications 
which can run inside it.  Both of these do run under the NTVDM.  In the case of 16 bit 
windows applications, thunking does happen. In fact the Win16 on Win32 (WOW) subsystem 
is the one that allows 16 bit Windows applications that run on Windows 3.1 and Windows 
for Workgroups to run on Windows NT 32 bit architecture. This is because the WOW uses 
a process called thunking to intercept and translate 16 bit system calls to 32 bit 
system calls. So isnt it true that in the case of an application running on a NTVDM 
AND it is a 16 bit win app, the WOW subsystem does get involved for thunking the 
calls. 
        V86 mode doesnt need to know about the OS since it runs even below the OS: at 
the microprocessor level. The consuming OS simply toggles a processor bit to 
enable/disable it.
By processor bit setting if u are referring to the the VM bit in the EFLAGS CPU 
register set by the NtVdmControl, then i think i didnt get my point across correctly.  
I was basically giving the example of NTVDM in the context below         NTVDM is 
basicaly a adult process Win32  process        The NTVDM itself runs inside the 
Client/Server Runtime (CSR) subsystem  It uses its separate address space to create a 
VM that runs alongside regular Win32 processes and  each running instance of NTVDM.EXE 
constitutes a separate VM. Programs for MS-DOS and 16-bit Windows are like children 
belonging to this adult NTVDM process         If the running application is a 16-bit 
Windows windows app, then the WOW subsystem does come into picture for thunking 
So what i meant was that given the explanation of yours that "A Virtual Execution 
System is basically a virtualized envrionment,  it exists but not physically . Code is 
executed within the confines of this VES and for the code executing within it, this 
VES is the actual OS. The executing code has no notion or knowledge of the actual OS 
under which the VES runs, under which it is executing",isnt this similar to a VDM, in 
the sense that it provides a envelope for a 16 bit application and abstracts it from 
the underlying OS.    
"A Virtual Execution System is basically a virtualized envrionment,  it exists but not 
physically ": Isnt this same in the NTVDM also 
"Code is executed within the confines of this VES ":  16bit app code is again executed 
within the confines of the VM provided by the NTVDM( but agree that there the 
comparison ends) 
"for the code executing within it, this VES is the actual OS" : for a 16 bit app the 
VM provided by the NTVDM is again the actual OS 
"The executing code has no notion or knowledge of the actual OS under which the VES 
runs, under which it is executing ": Same happens in the case of NTVDM where the 
executing app has not notion or knowledge that it that it is running on a NT System 
To conclude,  i perfectly agree that NTVDM is not a an exact equvalent to the VES, and 
obviously can never be..  .  The analogy that i gave was in the context that  
it is a layer above the OS and  
the apps runs in that layer and  
the layer itself is virtual 
and abstracts the running app from the underlying OS Hope i got my point across 
correctly this time    regards,   sr  

-----------------------------------------------------------

To stop getting this e-mail, or change how often it arrives, go to your E-mail 
Settings.
http://groups.msn.com/BDotNet/_emailsettings.msnw

Need help? If you've forgotten your password, please go to Passport Member Services.
http://groups.msn.com/_passportredir.msnw?ppmprop=help

For other questions or feedback, go to our Contact Us page.
http://groups.msn.com/contact

If you do not want to receive future e-mail from this MSN group, or if you received 
this message by mistake, please click the "Remove" link below. On the pre-addressed 
e-mail message that opens, simply click "Send". Your e-mail address will be deleted 
from this group's mailing list.
mailto:[EMAIL PROTECTED]

Reply via email to