Our book Professional .NET Framework 2.0 would be a very good source to answer a question like this:
Here's the explanation of the CLR from chapter 1 of that book, which you can read along with 200 other Wrox books as part of a wrox.books24x7.com subscription:
First, the Common Language Runtime (CLR) is the virtual execution environment â sometimes called a virtual machine â that is responsible for executing managed code. Managed code is any code written in a high-level language such as C#, Visual Basic, C++/CLI, IronPython, and the like, which is compiled into the CLR's binary format, an assembly, and which represents its executable portion using Intermediate Language (IL). Assemblies contain self-descriptive program metadata and instructions that conform to the CLR's type system specification. The CLR then takes this metadata and IL, and compiles it into executable code. This code contains hooks into CLR services and Win32, and ultimately ends up as the native instruction set for the machine being run on. This happens through a process called just-in-time (JIT) compilation. The result of that can finally be run.
Wiley Technology Publishing
Wrox online library: http://wrox.books24x7.com