• CLR的执行模型(上)


    做了一段时间开发,最近重新看了一下C#底层的知识,记录一下。

    说明:全文不区分大小写,以后不加额外注释的都遵循这个规则。

    1    CLR的执行模型

    1.1   将源代码编译成托管模块

    公共语言运行时(common language runtime,clr)是多语言平台的运行时,核心功能:内存管理、程序集加载、安全性、异常处理和线程同步等。

    将源代码编译成托管模块:C#源代码文件→C#编译器→托管模块(中间语言和元素据)。

    托管模块:
    (1)PE32/PE32+。PE32可以在32或者64位系统运行,PE32+只能在64位系统运行,还标志文件类型(GUI,CUI,DLL),包含生成时间。

    (2)CLR头。主要是CLR版本、flag、main方法的元素据token、模块元素据、资源等。

    (3)元素据。

    (4)IL代码。将IL编译成本机CPU指令。

    1.2   将托管模块合并成程序集

    Clr与程序集(是一个或多个模块/资源文件的逻辑分组,是重用、安全性、版本控制的最小单元)工作,而不是模块。

    托管模块(IL、元素据)+资源文件(.JPG…)→将多个托管模块和资源文件合并成程序集的工具(C#编译器)→程序集

    1.3   加载公共语言运行时

    程序集可以是可行性应用程序,也可以是dll,他们都由clr来管理(.net framework框架下,Windows 7及以后系统都自动安装了)。

  • 相关阅读:
    第十二章,结束练习
    第十一章,表单
    第十章,表格练习
    第九章,跨行跨列的表格
    第八章,表格
    第七章,列表
    第六章,body当中的属性
    第五章,标签的使用
    6. C# 命名规则
    5. c#变量
  • 原文地址:https://www.cnblogs.com/lzcgis/p/10244070.html
Copyright © 2020-2023  润新知