当前位置: 首页 > news >正文

湖南网站seo营销多少费用深圳建设项目信息网

湖南网站seo营销多少费用,深圳建设项目信息网,郑州市建设信息网站,wordpress获取导航菜单我们先进行一个整体轮廓的了解,随后在深入理解细节。 在动态库加载之前还要说一下程序的加载,因为理解了程序的加载对动态库会有更深的理解。 轮廓: 首先,不管是程序还是动态库刚开始都是在磁盘中的,想要执行对应的可…

我们先进行一个整体轮廓的了解,随后在深入理解细节。
在动态库加载之前还要说一下程序的加载,因为理解了程序的加载对动态库会有更深的理解。

轮廓:

首先,不管是程序还是动态库刚开始都是在磁盘中的,想要执行对应的可执行程序或者编译都需要一个指定的路径才可以找到。他就像我们现实生活中的地址,当然这些对我们程序地址空间的影响不大,主要是因为路径太重要了,进行一下强调。

在这里插入图片描述
从图中可以比较清晰的看到动态库加载的简略行为,随后在执行到库函数的地方时跳转到共享区,执行完在跳转回来即可。
可是这个库只会被一个进程使用吗?

我们看到一个动态库可能会被多个进程同时使用
在这里插入图片描述
所以当我们由另外的进程时,不需要重新加载动态库了,只要用现成的,直接使用页表映射即可。因为他能被多个库同时使用,所以也叫共享库!

程序的加载:

说在前边,程序的加载需要说一大堆预备的知识,最后才能进行串起来。

我们谈这个之前先想一个问题:我们编译好的程序的二进制代码中会有“地址”吗?
我们验证一下:
在这里插入图片描述
对此文件进行一下objdump -S code(反汇编)
在这里插入图片描述
可以看到其中就已经存在一种类似地址的东西了。

同时我们进行size可以看到这个可执行程序已经分好了各种区域,类似我们mm_struct中的地址空间划分。
在这里插入图片描述
那我们在程序中定义的变量名也理所当然的变为了地址。

至此我们知道了可执行程序中存在地址与空间划分了

linux中生成的可执行程序格式叫做ELF。
这个二进制可执行程序有自己固定的格式,elf可执行程序的头部有着自己的属性。
另外我们的文件经过编译后,有很多的汇编语句,我们已经见到过了,这是什么地址呢?是如何进行编址?

先回答第二个问题
我们在编址时一般有两种:其一是相对编址;其二是绝对编址。

相对编址时,使用起始地址加上对应的偏移量
在这里插入图片描述
绝对编址:
在这里插入图片描述
绝对编址就是我们本身的方式,也叫做平坦模式,所以整体是线性增长的。
同时我们也可以认为这其实就是虚拟地址

所以我们的汇编程序中就已经存在虚拟地址了。

此时我们还需要设计一个东西叫做加载器:
在这里插入图片描述
我们会先把加载器的库加载到内存中,执行库中的方法将可执行程序拷贝到内存,加载器对可执行程序的头部进行解释。可以得到main函数的地址。

所以 ELF + 加载器 = 各个区域中的起始位置与结束位置 + main函数地址。

现在我们基本就将预备知识铺垫的差不多了。

可以进入主线了。
我们常说进程 = 内核数据结构+代码和数据。
那么当我们执行一个程序时是先创建内核数据结构还是先将文件加载到内存中呢?
我们这样想:当你被学校录取后,你是开学到了学校才是这个学校的学生还是当志愿填报结束你得到了被录取的信息才是呢?
答案是显然的,当你收到了录取通知就已经是学校的学生了。

那我们进程也是先有内核数据结构在加载程序。
那我们就要开始创建内核数据结构了。
在这里插入图片描述
我们的mm_struct是一个对象,其中有成员变量,变量的初始值是什么?
我们的可执行程序中就已经提供了对应的分配好了各个地址,就可以去填充了。

所以虚拟地址空间这个概念不是OS独有的,是由OS+编译器+加载器一起构成的。

我们不会提到一个没有用的事物,对于main函数的地址我们该怎么用呢?
我们的CPU中有一个PC指针,他保存的是当前执行指令的下一条虚拟地址。
在最开始的时候就是main的地址。这是很关键的一环。

所以我们要开始加载程序到内存咯。
在这里插入图片描述

尽管我们的程序中有自己的虚拟地址,但是加载到物理内存中仍然会有属于自己的物理地址。

那我们现在就需要将mm_struct与内存进行连接起来,那就是页表!
在这里插入图片描述
我们现在开始运行!
根据PC指针的值去页表中映射对应的物理地址,拿到指令去执行,循环往复就执行起来啦!

这就是程序加载的过程。
我们只要分为两个阶段看就会好一点

  1. 内核数据结构的创建
  2. 程序的加载

还有额外的预备知识~

动态库的加载:

持续更新~

http://www.yayakq.cn/news/53653/

相关文章:

  • 谷歌官方网站登录入口怎么做网站图片seo
  • 营商环境建设局网站设计公司设计
  • 网站建设代码标签大全网站开发是属于哪个税收分类
  • 网站logo跳动爱心代码html教程
  • iis中怎样配置网站绑定免费做免费做人爱视频的网站
  • 产品网站怎么做超链接四川专业网站建设
  • 艾瑞网的网站架构中国男女直接做的视频网站
  • 网站优化快照中英文企业网站怎么做
  • 网站租用佛山公司推广优化
  • 企业网站管理系统多站多语言版35公司做的网站漏洞
  • windows网站建设教程网站程序员
  • 南阳网站怎么推广wordpress仪表盘乱码
  • 重庆网站定制开发c# 网站开发框架
  • 给有后台的网站做网页天津建设发展集团有限公司
  • 手机网站 尺寸青海高端网站建设
  • 物流网站素材搭建网站的必须条件
  • 淮南市潘集区信息建设网站做旅游网站的设计感想
  • 网站后台代码如何做asp网站设置
  • 网站设计原则的历史东莞建设最好的镇
  • 杭州怎样建设网站全国公共资源交易中心招标网
  • 济南网站推广优化外包免费的logo网站
  • 网站建设阿华seo烟台H5网站设计
  • 做百度推广网站被攻击网站建设招聘信息
  • 网站首页图片怎么更换做展览的网站
  • 来凡网站建设公司网站推广排名报价
  • 网站制作大概费用网络推广平台有哪些
  • 湖州网站建设哪家好网站 手机 app
  • 绵阳公司商务网站制作博文阅读网站建设
  • 为什么需要建设网站wordpress如何设置内容页
  • 烟台建设用地规划查询网站成都网站建设四川冠辰科技