Chinaunix首页 | 论坛 | 博客
  • 博客访问: 983714
  • 博文数量: 186
  • 博客积分: 10020
  • 博客等级: 上将
  • 技术积分: 1676
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-14 17:08
文章存档

2011年(5)

2009年(11)

2008年(2)

2007年(111)

2006年(57)

我的朋友

分类: LINUX

2007-10-13 17:56:00

.NET架构主要分为3部分

FCL – Framework Class Library

CTS – Common Type System (其中包括Common Language Specification

CLR – Common Language Runtime

这三层从高到底,越高代表越接近应用程序,越低代表越接近内核。

.NET最主要的思想是从JVM Java Virtual Machine)得来的,换句话说,就是使用一种“中间层”来代替原本的PE可执行文件格式。CILCommon Intermediate Language)一般来说都是已经编译好的,是用JITJust-In-Time)动态执行。

CTS层提供一般常用的数据类型,而其中的CLS模块包含所有的.NET应用程序都需要共享的数据类型。

具体来说,从最底层的CLR来看,CLR是所有.NET应用程序的引擎。主要包括由jitterJust-In-Time Compiler)生成的CIL代码,垃圾回收器(Garbage Collector,不知道中文名是什么)CTS与异常处理机制。

CLR中最重要的一点就是受控代码(Managed Code),在受控代码的控制下,程序中永远不会出现失去胡乱引用的指针。

但受控代码绝对不等于解释语言,受控代码只是为了保证在运行程序是内存与类型的安全。

所有的.NET应用程序都会被编译成CIL(原先CIL被命名为MSIL – MicroSoft Intermediate Language)。实际上,在.NET编译后同样会生成PE可执行代码,不同的是这种PE格式在某一个位做了标示,用来代表这个文件包含了CIL.NET metadata。这些PE文件的所有对象的入口处都会有一段代码用来呼叫JIT模块,从而在代码执行前动态编译当前执行的方法(Method,对应Class)管理员在2009年8月13日编辑了该文章文章。

-->
阅读(1521) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~