title: What is .NET's relation to the Windows Kernel/OS & other OS's
body: <p>I am confused as to what exactly .NET actually is. I am a Computer Science student who has done a lot of Win32 (WinAPI) programming in C++ &amp; have a pretty good understanding of how Win32 functions interact with COM &amp; the Windows Kernel itself.</p>
  
  <p><strong>But where does .NET fit into all this?</strong></p>
  
  <ul>
  <li><p>Specifically, if Win32 is an API written in C, what is .NET? Is it an API written in C also? Does it only run on Windows OS like Win32?</p></li>
  <li><p>Does .NET run on top of the Win32 API? For example a .NET function <code>showWindow()</code> (I made that up obviously) call Win32 functions behind the scenes to show the window or does it go directly to the Kernel to do this? Or is .NET like the Java Virtual Machine?</p></li>
  <li><p>Does .NET interact with the Windows Kernel directly (like Win32) &amp; interact with COM objects? Does .NET run in a sandbox &amp; not allow some access to certain OS areas?</p></li>
  <li><p>I can code in different languages using the Win32 API such as c/c++, VB, Perl. What languages can I code in .NET?</p></li>
  <li><p>This is what really stumps me. I hear about web applications written in .NET? What, how, wha? What language is it written in? Does .NET run on top of IE? Do .NET web applications work on Firefox or on Safari(MacOS)? Is a .NET web app like a java applet, do you get .NET drive bys too.</p></li>
  </ul>