它是让.Net程序执行所需要外部服务的集合
1-在程序的第一步编译时,将程序通过编译器编译为IL,并生成元数据,将IL与元数据打包,加入PE和CLR文件头使之成为托管模块,将各个模块打包为程序集
2-类型检查器负责保证类型安全(代码验证),即时编译器负责将IL转换为机器码
3-类型加载器负责通过清单和元数据探测类型的位置,并加载所需要的类型,生成类型对象,包括方法表等。
4-方法调用
5-自动内存管理和垃圾回收(COM用引用计数,CLR使用标记清除=基于代的垃圾回收器
引用类型的变量=根
1-暂停进程中的所有线程
2-GC标记阶段
遍历堆中的所有对象,将同步块索引字段中的一位设为0,表示所有的对象都应该删除→CLR检查所有活动根,查看它们引用了哪些对象
3-GC压缩阶段)