基于Cecil源码的IL练级攻略(0)入门
简介
本篇文章希望给读者提供一个关于中间语言(IL, intermediate language)的全局视野,给没接触过的同学补充一些基础知识。
公共语言运行时基础(Basics of the Common Language Runtime)
公共语言运行时是.NET应用程序的运行环境,运行时介于应用程序和操作系统之间,提供了基础支持。
.NET应用程序由面向.NET的编译器生成。并且.NET应用程序是一种概念上的中间形式,它独立于原有的编程语言以及目标机器或者操作系统。但是相互之间部分可以进行转化,比如我们可以将C#代码编译为IL,也可以将IL代码转化为C#。
此时.NET应用程序里面包含元数据(metadata)和托管代码(managed code)。
元数据用于描述应用程序中所有结构化组件(类,类成员,注解等等)以及它们之间的关系。
托管代码代表了应用程序函数的功能,又被称为公共中间语言(common intermediate language, CIL),但我们经常用IL表示它。
对应处理这两个组件的系统分别是加载器(loader)和JIT编译器(just-in-time compiler)。