为什么Common Language Runtime是虚拟机?

时间:2016-11-24 10:04:26

标签: c# virtual-machine clr

在研究C#时,我在Wikipedia上发现了以下声明:

  

公共语言运行时(CLR)是Microsoft .NET框架的虚拟机组件,用于管理.NET程序的执行。

这可能是一个新手问题,但据我所知,虚拟机只是操作系统的模拟。为什么CLR被认为是虚拟机?

1 个答案:

答案 0 :(得分:1)

CLR类似于JVM(Java虚拟机)。 JVM是用于运行Java程序的虚拟机。 .Net程序集(Dlls和Exes)不是由OS直接执行,而是由称为CLR的中间级别执行,该级别将.NET程序集转换为本机可执行代码。这种架构的优点是.NET程序不需要针对不同的操作系统(Linux,Unix)进行重新编译,如果在该操作系统上安装了虚拟机,则.NET程序应该像它一样运行(基于例如Windows)。另一个.NET虚拟机是Mono。这是Mono:http://www.mono-project.com/