装载、链接与库

第四部分 装载

1、windows把4G 的虚拟空间分成两部分高2G地址由系统用,低2G地址由自己用

2、装入内存分覆盖装入和页映射

一、覆盖装入  在嵌入式系统中当内存限制的时候,采用的这种方法,当程序分成好几个模块的时候,公用的模块装入,正要用的装入,不用的等待

二、页映射 内存分页然后整页的装入与交换

3、进程的建立

一、建立独立的虚拟空间   建立一个映射函数所需要的数据结构,由虚拟空间到物理地址的映射关系

二、读取文件头,建立虚拟空间和可执行文件的映射关系,当发生页错误的时候,操作系统取物理页,把磁盘中的缺页装载到这个物理页,然后建立物理页和虚拟页的关系,这时候操作系统记录了缺页在文件中的位置也是偏移,

三、将CPU寄存器设置成可执行文件的入口地址,启动运行

4、页错误

当CPU想执行一个页文件的时候,发生页错误,把控制权交给操作系统,操作系统根据页错误处理函数和建立的文件与虚拟空间的映射结构,找到虚拟空间中的空白页,然后建立物理内存和虚拟地址的映射,程序继续执行

5、PE文件的装载

读取第一个页,包含了PE头和段尾等信息,.................检查要装载的地址空间是否可用,不可用换地址.................根据PE头提供的信息把各个段映射到地址空间去........

装载PE所需要的DLL文件...........对所有的导入符号进行解析..........初始化堆栈.........建立主线程启动程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值