zoukankan      html  css  js  c++  java
  • 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及以后系统都自动安装了)。

  • 相关阅读:
    简单批处理语法结构
    简单批处理常用命令
    简单批处理符号简介
    简单批处理内部命令
    jQuery操作DOM
    jQuery中的事件与动画
    jQuery选择器
    初始面向对象
    初识jQuery
    操作DOM
  • 原文地址:https://www.cnblogs.com/lzcgis/p/10244070.html
Copyright © 2011-2022 走看看