分类: 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可执行文件格式。CIL(Common Intermediate Language)一般来说都是已经编译好的,是用JIT(Just-In-Time)动态执行。
CTS层提供一般常用的数据类型,而其中的CLS模块包含所有的.NET应用程序都需要共享的数据类型。
具体来说,从最底层的CLR来看,CLR是所有.NET应用程序的引擎。主要包括由jitter(Just-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日编辑了该文章文章。