Studying a little bit about ASP.NET 5 I came across something that I did not quite understand. To use it you need to install KVM (K Version Manager) and KPM (K Package Manager). KVM is responsible for managing KRE (K Runtime Environment) versions. In Powerhsell when using
kvm list
I have an answer more or less like this
Active Version Runtime Architecture Location Alias
------ ------- ------- ------------ -------- -----
1.0.0-beta1 CLR amd64 C:\Users\User\.kre\packages
1.0.0-beta1 CLR x86 C:\Users\User\.kre\packages default
1.0.0-beta1 CoreCLR amd64 C:\Users\User\.kre\packages
1.0.0-beta1 CoreCLR x86 C:\Users\User\.kre\packages
From what I understand then this KVM manages different versions of the CLR. But the fact is that to this day I do not quite understand what is runtime. My understanding of CLR today is well over, I understand: when developing an application using C # the compiler turns the code into an intermediate language called CIL (Common Intermediate Language) and then the CLR is responsible for interpreting this intermediate code.
In this way, although the C # code is compiled, the CLR still has to interpret an intermediate code. My understanding is that the "Runtime Environment" is the environment in which the CLR interprets this intermediate code.
I do not know if that's right. So, what is this "Runtime Environment" really? How does it really work? And why are there so many different versions now?