什么是.NET、 CLI、 CLR、 IL、 JIT、GC? 他们是如何工作的?

.Net 是软件开发平台,可以使用不同的语言开发出相互集成的软件系统

类似于Windows,可以运行各种软件系统。是一套在Internet上可以无缝连接和沟通的软件技术、工具、产品和服务的总和。

.Net 的主要组成部分如下:

1、.Net Framework(.Net 框架)

2、 Visual Studio 集成开发环境IDE

3、 XML Web Service:基于Web、面向服务的软件系统开发技术

4、Smart Client:智能客户机技术,融合了C/S模式和B/S模式的优点的应用系统开发技术

5、.NET企业服务器产品:支持.NET的服务器产品,包括SQL Server(提供数据的存储)、Application Server(Web应用程序和XML Web Service的部署和管理)等产品

6、 .NET操作系统:在Windows Server 2003中已经内嵌了.NET Framework,成为支持.NET的操作系统。
提示:Windows XP Professional、Windows 2000 Server这样的操作系统没有内嵌.NET Framework,所以需要单独安装该组件才能成为支持.NET的操作系统。

.NET 主要开发和应用5类应用程序:

Windows Form

Web 程序

XML Web Service应用程序

局域网应用程序

移动数字设备程序

CLI: Common Language Infrastructure 通用语言基础架构 是.NET框架下的一种规范

CLI定义了语言无关的跨体系结构的运行环境。因此我们可以用规范下的各种高级语言开发软件,这些软件无需修改可以运行在不同的计算机体系结构中

CLR: Common Language Runtime 通用语言运行时。是一种规范,保证运行环境是与语言无关并且跨体系结构的

CTS: Common Type System 通用类型系统

CLS: Common Language Specification 通用语言规范

FCL: Framework Class Library 架构类库

包含两部分: 基础类库 Base Class  Library 和成品类库

IL: Immediate Language 中间语言,高级语言Compiler 将高级语言的Source Code 编译成 中间语言。

JIT: Just In Time Complier 将中间语言编译成计算机可以理解的机器码,然后可以执行

Source Code 经过C# Complier 编译成IL(也就是程序及dll、exe等)。 CLR加载这些IL,经过JIT编译成机器码,最终被执行

什么是.NET、 CLI、 CLR、 IL、 JIT、GC? 他们是如何工作的?

时间: 2024-08-27 08:58:07

什么是.NET、 CLI、 CLR、 IL、 JIT、GC? 他们是如何工作的?的相关文章

Atitit..net clr il指令集 以及指令分类  与指令详细说明

Atitit..net clr il指令集 以及指令分类  与指令详细说明 1.1. .NET CLR 和 Java VM 都是堆叠式虚拟机器(Stack-Based VM), 1 1.2. 查看工具ILDASM1 1.3. 此程式执行时,关键的记忆体有三种,分別是:1 1.4. Il指令集2 1.4.1. Mov指令3 1.4.2.  跳转指令集合6 1.4.3.  算术 逻辑 与移位指令8 1.4.4. 类型转换9 1.4.5. Other  and oo指令10 2. 参考12 1.1. 

CLR和JIT

在使用IDE进行编译的时候,这个过程具体的叫法是,使用编译器面向CLR来生成代码.对于不同的开发语言,使用的的编译器也不一样,但是生成的代码都一样. “无论选用哪一个编译器,结果都是一个托管模块.” 托管模块中的中间语言(MSIL),是编译器编译代码时生成的代码,它是与CPU无关的机器语言.当程序运行时,由CLR将中间代码转换为本地CPU指令.因此,任何编译成MSIL的程序都可以再实现CLR的环境上执行.这是.NET Framework具有可移植性的部分原因. 为了执行一个IL指令,首先必须把它

JVM ,JIT ,GC RUNTIME 解析

https://www.infoq.com/articles/OpenJDK-HotSpot-What-the-JIT Understanding HotSpot JVM Performance with JITWatch How Facebook Redesigned the HHVM JIT Compiler for Performance Python JIT Compiler PyPy 4 Brings SMD Vectorization, Performance Improvement

.net GC垃圾回收机制工作原理(转)

首先了解一下托管资源--.net所指的托管只是针对内存这一块,并不是对于所有的资源:针对Stream,数据库的连接,com对象,GDI+的相关对象等,这些对象并不受.net的管理成为非托管资源;对于内存的回收和管理,由GC完成,而其它资源则需要手动释放. 其次垃圾的定义--.Net类型分为两大类,一个就是值类型,另一个就是引用类型.前者是分配在栈上,并不需要GC回收:后者是分配在堆上,因此它的内存释放和回收需要通过GC来完成.GC的全称为“Garbage Collector”,顾名思义就是垃圾回

java中的GC(gabage collection)如何工作

1. “引用记数(reference counting)”是一种简单但速度很慢的垃圾回收技术.每个对象都含有一个引用记数器,当有引用连接至对象时,引用计数加1.当引用离开作用域或被置 为null时,引用计数减1.虽然管理引用记数的开销不大,但需要在整个程序生命周期中持续地开销.垃圾回收器会在含有全部对象的列表上遍历,当发现某个 对象的引用计数为0时,就释放其占用的空间.这种方法有个缺陷,如果对象之间存在循环引用,可能会出现“对象应该被回收,但引用计数却不为零”的情况.对 垃圾回收器而言,定位这样

CLR是如何被加载并工作的

当运行Windows应用程序的时候,CLR总是默默地为服务着.CLR到底是如何被加载并运行呢? 首先,Microsoft专门为CLR定义了一个标准的COM接口. 安装某个版本的.NET Framework,CLR被包含在DLL中,作为COM服务器在Windows注册表中注册. 一台电脑上可能安装多个版本的CLR.打开开发人员命令提示,输入CLRVer.exe,可以看到当前电脑上安装的CLR版本. 比如,在C:\Windows\Microsoft.NET\Framework\v2.0.50727文

Java GC(垃圾回收)的工作原理

Garbage Collection简称GC,是垃圾回收的意思. 内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃.Java语言提供的GC功能可以自动检测对象是否超过作用域,从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法,资源回收工作全部交由GC来完成,程序员不能精确控制垃圾回收的时机. 下面简要介绍一下GC在实现垃圾回收时的基本工作原理. Java的内存管理实际上就是对象的管理,其中包括对象的分配和释放.对于程序员来说,

什么是.Net, IL, CLI, BCL, FCL, CTS, CLS, CLR, JIT

什么是.NET? 起源:比尔盖茨在2000年的Professional Developers Conference介绍了一个崭新的平台叫作Next Generation Windows Service,也就是后来的.NET. 软件层:.NET可以被看作是介于操作系统和编程语言之间的软件层,它可以支持多种编程语言,包括C#,VB.NET,C++,F#,等等. 用来产生托管代码的框架.平台:传统的编译方式是"源代码→编译→可执行文件",在.NET中编译方式是"源代码→编译→程序集

.NET学习笔记 -- 那堆名词到底是啥(CLR、CLI、CTS、CLS、IL、JIT)

什么是CLR? CLR,公共语言运行时(Common Language Runtime)是一个由多种语言使用的“运行时”.他的核心功能包括(内存管理.程序集加载.安全性.异常处理和线程同步),可以被面向CLR的所有语言使用.这里的“运行时”,就是一个运行时环境,就像JAVA虚拟机一样.哦,错了,确切的说是JRE(Java  Runtime Enviromental).JVM确切的说不是一个实体的java虚拟机,而是一个规范,就像CLI一样.会有不同的实现,如:JRockit还是Hotspot(前

[C++/CLI编程宝典][2]什么是C++/CLI语言

对于什么是C++/CLI,我们首先能够简单的将其名字划分为两部分来理解,第一,C++,我们熟悉的眼下被广泛使用的面向对象的ISO国际标准的高级语言,也称为ISOC++,我们这里以后均称其为ISOC++:第二,CLI,我们能够觉得是对ISOC++在CLI上扩展.CLI是通用语言框架的缩写,微软的.NET就是架构在CLI其上,尽管CLI如今也是ISO标准,可是C++/CLI并非ISOC++委员会对其进行的扩展,所以C++/CLI并非新版的ISOC++标准,它仅仅是微软针他的CLI实现.NET的扩展.