• .net程序运行流程


    程序员用.net开发的程序要在计算机上运行,首先程序经过编译后,会生成机器指令,一般以一个文件的形式保存,这个文件在外存储器上(存储器分外存与内存。外存:硬盘,U盘等;)

    然后cpu会把硬盘上的文件读到内存中,会在内存中分配一个内存区域,专门存放文件内容,会有个唯一的地址,cpu就会读到这个地址,取出内容,执行机器指令。

    但是生成的程序却不能放到别的机器上和不同操作系统的计算机上进行执行,因为编译程序生成的文件包含了特定的cpu的机器指令,所以必须对代码加以修改,去适应不同计算机和不同操作系统的,这样的代码称为非托管代码。

    这样的代码局限性太大,会给程序员带来很大重复性工作。因此后来在.net中出现了中间语言,这个就是程序经过编译以后就会转化为中间语言,但是中间语言不能被cpu所认识,必须转为为机器指令,这时就需要把中间语言翻译成机器语言,这时就出现了这样一个软件系统,叫着VM(虚拟机),虚拟机可以让不同计算机和不同操作系统运行程序,.net的这个虚拟机便是.net framework。运行在虚拟机上的代码成为托管代码。所以计算机要想运行.net程序,那么必须先安装.net framework 。

    .net framework包含两个主要的组件:一是CLR(公共语言运行时),它是.net代码所必须的运行环境,CLR负责内存管理及分配与垃圾回收等工作,其选择编译器,将代码编译为IL(中间语言),并将IL和元数据加载到可执行文件中(dll或exe),第二次编译是使用JIT编译器将IL编译成机器语言(二进制代码),从而使计算机识别并加以运行。二是.net framework类库,这是.net开发的所需要的基本类库。托管代码就是以CLR为基础的可运行的代码,非托管代码反之。

     
  • 相关阅读:
    Linux系统管理05-----权限及归属管理
    Linux系统安装管理04----账号管理
    Linux系统管理03-----安装与管理程序
    Zabbix 监控主机
    Zabbix 页面优化
    基于 MHA 的MySQL高可用-CentOS7(理论)
    基于 MHA 的MySQL高可用-CentOS7(实例)
    部署Jumpserver环境
    GNS3连接本地服务器报错
    zabbix 安装部署
  • 原文地址:https://www.cnblogs.com/DreamRecorder/p/10302309.html
Copyright © 2020-2023  润新知