On calling .NET a virtual machine
I don't understand how you are calling .NET a virtual machine. The core of .NET is the CLR (Common Language Runtime) and JIT (Just-In-Time compiler). The JIT takes .NET bytecode and compiles it into native assembly for execution on the processor. At this point, native code is running on the processor and no interpretation or virtualization is taking place. This exe file loads the .NET framework and related libraries into it's process and begins execution. Once the CLR is satisfied that an I/O request is legal, it simply calls the Win32 API to complete the process. In fact, even though it is discouraged, .NET code can make use of pointers to interact directly with memory or deal with unmanaged code.
Defining .NET is a difficult thing to do, but virtual machine just doesn't seem to fit. I look forward to working on an alternate definition.
John H. Jackson 15:15, 25 August 2009 (UTC)
Just getting started on this; it needs to be distributed differently between [C-sharp] etc. I'll get to it when I can.Pat Palmer 19:25, 17 September 2007 (CDT)