标签:
概念篇
可由多种编程语言使用的运行环境,提供内存管理、程序集加载、安全性、异常处理和线程同步等支持。
规范化的类型定义和管理,比如:字段、方法等, 又比如继承等特性。
针对CLR/CTS定义的最基本的组建。
标准的32位Mircorsofte Windows 可移植执行提(PE32)文件、或者是标准的64位Windows 可移植执行体(PE32+)文件。
编译器编译源代码是生成的代码
一个或多个模块、资源文件的逻辑性分组
CLR执行模型
程序的编译过程
说明:
CLR是针对程序集进行工作。
在细说托管模块和程序集的构成
PE32或PE32+
标准的windows PE文件头
标识了文件类型,包括GUI、CUI、或者DLL,并包含一个时间标记来指出文件的生成时间
CLR头
包含使这个模块成为托管代码的信息,头中包含CLR版本、一些标识,托管模块入口方法(main)的MethodDef元数据token以及模块的元数据、资源、强名称,一些标识及其他不太重要的数据项的位置和大小。
元数据
主要是两种表:一种表述源代码中定义的类型和成员;一种描述源代码中引用的类型和成员。
IL代码
编译器将源代码生成的中间代码。
2、程序集
编译器根据PE32的清单文件,该清单文件中包含构成程序集的文件,程序集中的文件所实现的公开导出的类型以及程序及关联的资源和数据文件。编译器默认将生成的托管模块转为程序集。
主要使用的工具包含:CSC.exe(C#编译器)、AL.exe(程序集链接器)。
参考文档:
1、PE结构详解:http://blog.csdn.net/reversalc/article/details/8022977
2、CSC.exe的命令行使用:http://blog.csdn.net/reversalc/article/details/8022977
3、CLR完全介绍:http://www.cnblogs.com/emanlee/archive/2008/10/16/1312984.html
4、CLR简单介绍(包含执行过程):http://www.cnblogs.com/lufangtao/archive/2012/06/07/2539915.html
标签:
原文地址:http://www.cnblogs.com/xiuyuanjing/p/4826625.html