.Net 应用程序与进程的简单理解
2004-11-04 15:25
351 查看
.Net 应用程序与进程的简单理解
lu_yi_ming(_at_)sina.com 2004.11.4
1. .Net 应用程序加载后最终变成一个普通的进程,windows 按照普通进程对待,如调度及异常处理。
2. .Net 应用程序编译后形成 IL 编码(不是x86的机器码加C函数调用)。
3. .Net 应用程序(实时编译为x86代码后)所有的基础调用都通过 .Net 类库入口实现,.Net 类库入口检查调用的合法性等,然后再进一步调用传统的操作系统的函数入口或 COM 入口。
4. .Net 应用程序的加载过程:创建一个进程,把 .Net 的支持库映射到进程地址空间中,把应用程序的 IL 编码放入进程内存空间,调用 .Net 的支持库的某个开始函数,从这个函数开始分析 IL 编码,把所有的 IL 函数入口记录为尚未编译,然后把函数 main 编译成 x86 机器码,开始调用 main,main 调用其他函数时再先编译后调用。这种方式叫托管。操作系统对整个程序的运行按照一般进程对待。
lu_yi_ming(_at_)sina.com 2004.11.4
1. .Net 应用程序加载后最终变成一个普通的进程,windows 按照普通进程对待,如调度及异常处理。
2. .Net 应用程序编译后形成 IL 编码(不是x86的机器码加C函数调用)。
3. .Net 应用程序(实时编译为x86代码后)所有的基础调用都通过 .Net 类库入口实现,.Net 类库入口检查调用的合法性等,然后再进一步调用传统的操作系统的函数入口或 COM 入口。
4. .Net 应用程序的加载过程:创建一个进程,把 .Net 的支持库映射到进程地址空间中,把应用程序的 IL 编码放入进程内存空间,调用 .Net 的支持库的某个开始函数,从这个函数开始分析 IL 编码,把所有的 IL 函数入口记录为尚未编译,然后把函数 main 编译成 x86 机器码,开始调用 main,main 调用其他函数时再先编译后调用。这种方式叫托管。操作系统对整个程序的运行按照一般进程对待。
相关文章推荐
- Windows Powershell创建对象
- 千年零一虫
- Microsoft Visual Studio .NET 2003制作安装程序
- 独具量身定做特色的管理软件--数据大师
- duwamish7的感悟!
- 主引导扇区释疑
- delphi中的时间操作技术(2)
- 关于数据库备份的问题!
- 力争最简单把*、&说清楚
- 好久没来CSDN了,因为一直在忙考试....
- 今天开始就没有学习任务了,所以打算用.NET写一个系统。
- 学ASP.NET学什么?
- 越过调试这道槛——ASP.NET无法调试问题剖析
- set()的用法小介
- 非对称加密算法中求解大正整数模大正整数的余数的快速计算法
- 使用 .NET 框架将现有代码作为 Web 服务提供
- 移植到 Windows 2000 和 COM+
- 使用C#开发COM+组件
- 纯编码实现数据库的建立或压缩