.Net 应用程序与进程的简单理解,请指正
本人最近对 .Net 程序形成一点简单认识,希望大家指正。
1. .Net 应用程序加载后最终变成一个普通的进程,windows 按照普通进程对待,如调度及异常处理。
2. .Net 应用程序编译后形成 CLS 编码(不是x86的机器码加C函数调用)。
3. .Net 应用程序(实时编译为x86代码后)所有的基础调用都通过 .Net 类库入口实现,.Net 类库入口检查调用的合法性等,然后再进一步调用传统的操作系统的函数入口或 COM 入口。
4. .Net 应用程序的加载过程:创建一个进程,把 .Net 的支持库映射到进程地址空间中,把应用程序的 CLS 编码放入进程内存空间,调用 .Net 的支持库的某个开始函数,从这个函数开始分析 CLS 编码,把所有的 CLS 函数入口记录为尚未编译,然后把函数 main 编译成 x86 机器码,开始调用 main,main 调用其他函数时再先编译后调用。这种方式叫托管。操作系统对整个程序的运行按照一般进程对待。
有无理解上的差错,请指点一二。多谢!
问题点数:20、回复次数:2Top
1 楼Sunmast(速马@Redmond, WA)回复于 2004-11-04 13:50:29 得分 20
1、对的,如果一个很简单地程序调用了一个巨大的COM
2、是IL代码,CLR也只能处理这种代码
3、是由CLR检查的,这个也是类型安全的来源
4、windows先像加载普通程序一样加载exe文件,创建进程,然后剩下的就是JIT的事情了Top
2 楼yinbinfeng0451(编码人生)回复于 2004-11-04 14:24:17 得分 0
长知识!!!!Top




