elf加载,动态库加载

elf加载

ELF(Executable and Linkable Format,可执行与可链接格。

所以我们写代码生成的可执行文件,以及写的动态库都是elf格式的文件。

我们重点要关注的就是红色框框里面的section节。
而节保存的就有我们的代码段和数据段。所以我们链接所做的工作其实就是将,相同属性的代码段数据段合并起来,形成新的elf文件。

所以我们用指令就可以查到我们一个可执行文件有多少个节了。
 

readelf -s a.out


 

所以我们的可执行文件里的地址就是从全零到全f的逻辑地址。

而我们的虚拟地址就是逻辑地址,我们所要在cpu上执行的就是虚拟地址,只是在elf文件叫逻辑地址,在cpu上叫做逻辑地址。

这是一个可执行文件的执行的流程图:

当以上执行完pc指针会根据该指令的长度进行相加(其实就是加上偏移量),就有了下一条指令的地址了

我是这样去理解这个虚拟地址的,其实在本没有虚拟地址这个说法的,可执行文件需要在cpu上去跑代码,所以要加载到内存上,内存上保存虚拟地址的东西就是物理内存,而物理内存里面所里面自己本生就是物理地址,只是为了做区分罢了。所以为什么要有虚拟内存呢?就是将两个不同内存
进行解耦,编译器在编译的时候就不用去考虑物理内存了。

还有个问题就是,如果一个很大的文件要被加载怎么办呢?其实就是将已将映射好执行完的虚拟地址进行释放让后重新再来加载后面的,这样就是一个动态的过程。

动态库加载

所以起始我们很多的动态库也是像这样加载的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/899699.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Redis 性能优化选择:Pika 的配置与使用详解

引言 在我们日常开发中 redis是我们开发业务场景中不可缺少的部分。Redis 凭借其内存存储和快速响应的特点,广泛应用于缓存、消息队列等各种业务场景。然而,随着数据量的不断增长,单节点的 Redis 因为内存限制和并发能力的局限,逐…

ONLYOFFICE文档8.2:开启无缝PDF协作

ONLYOFFICE 开源办公套件的最新版本新增约30个新功能,并修复了超过500处故障。 什么是 ONLYOFFICE 文档 ONLYOFFICE 文档是一套功能强大的文档编辑器,支持编辑处理文档、表格、幻灯片、可填写的表单和PDF。可多人在线协作,支持插件和 AI 集…

论文解读 | ECCV2024 AutoEval-Video:一个用于评估大型视觉-语言模型在开放式视频问答中的自动基准测试...

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 点击 阅读原文 观看作者讲解回放! 作者简介 陈修元,上海交通大学清源研究院硕士生 概述 总结来说,我们提出了一个新颖且具有挑战性的基准测试AutoEvalVideo,用于全…

红队-安全见闻篇(上)

声明 学习视频来自B站UP主 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,如涉及侵权马上删除文章 笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负 一.编程与开发 1.后端语言学习 C语⾔:⼀种通⽤的…

NVR小程序接入平台/设备EasyNVR多个NVR同时管理的高效解决方案

在当今的数字化安防时代,视频监控系统的需求日益复杂和多样化。为了满足不同场景下的监控需求,一种高效、灵活且兼容性强的安防视频监控平台——NVR批量管理软件/平台EasyNVR应运而生。本篇探讨这一融合所带来的创新与发展。 一、NVR监测软件/设备EasyNV…

053_python基于深度学习的短视频内容理解与推荐系统

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…

如何实现海内外工厂的EDI对接?

企业在国际市场的扩张需要高效的信息流动,以便快速响应客户需求。但国内工厂和海外工厂使用的系统可能存在兼容性问题,且数据格式各不相同,集成过程复杂。 近期国内主营高精度滚动轴承的汽车行业C公司就遇到了这样的挑战,如何实现…

linux查看文件命令

查看文件命令 显示命令 cat 语法:cat 【选项】 文件 选项 命令含义n显示行号包括空行b显示行号不包括空行s压缩空行为一行A显示隐藏字符 cat -n 文件:显示行号包括空行 cat -b 文件 cat -s 文件 cat -A 文件 more和less是 分页查看 tac和rev都…

python实战项目47:Selenium采集百度股市通数据

python实战项目47:Selenium采集百度股市通数据 一、思路分析二、完整代码一、思路分析 这里以获取百度股市通股评下的投票数据为例,页面中的其他数据同理。由于此页面数据是js动态加载的,所以采用Selenium获取数据。思路很简单,通过Selenium打开页面,然后定位到“股评”选…

502 错误码通常出现在什么场景?

服务器过载场景 高流量访问:当网站遇到突发的高流量情况,如热门产品促销活动、新闻热点事件导致网站访问量激增时,服务器可能会因承受过多请求而无法及时响应。例如,电商平台在 “双十一” 等购物节期间,大量用户同时…

Java 多线程(七)—— 定时器

定时器介绍与使用 先简单介绍一下什么是定时器:定时器类似生活中的闹钟,当时间一到,我们就会去做某些事情。 在代码层面理解就是,当我们设置的时间一到,程序就会执行我们固定的代码片段(也就是任务&#x…

Nacos-Sync-未授权进后台(建议自查)

Nacos-Sync-未授权进后台(建议自查) 漏洞成因 没进行权限校验。 影响范围 Nacos-Sync 3.0 发现方式 一、fofa发现 title“nacos” && title“Nacos-Sync” 二、路径拼接 /#/serviceSync 利用方式 访问之后直接是进入后台的样子~ 修复方…

【AI视频抠图整合包及教程】开启视觉分割新纪元 —— Meta SAM 2

在数字化时代,Meta公司推出的SAM 2(Segment Anything Model 2)标志着图像和视频分割技术的一个新高度。SAM 2不仅继承了前代SAM模型的卓越性能,更在实时处理、视频分割、交互式提示等方面实现了重大突破。以下是SAM 2的全面营销文…

【植物识别系统】Python+人工智能+深度学习+卷积神经网络算法+TensorFlow+算法模型+Django网页界面平台

一、介绍 植物识别系统,使用Python作为主要编程语言开发,通过收集常见的6中植物树叶(‘广玉兰’, ‘杜鹃’, ‘梧桐’, ‘樟叶’, ‘芭蕉’, ‘银杏’)图片作为数据集,然后使用TensorFlow搭建ResNet50算法网络模型&am…

如何通过Lua语言请求接口拿到数据

文章目录 概要http客户端通过请求下载数据 概要 当某个需求是需要在模块内请求接口拿到数据,需要使用http客户端调用接口 http客户端 LuaSOC请求接口官方文档 调用:http.request(method,url,headers,body,opts,ca_file,client_ca, client_key, clien…

【日记】感觉沟通是件很难精通的事情(1397 字)

正文 今天霜降,感觉得开始戴手套了,去年就是因为戴得早,所以避免了生冻疮。不知道今年还会不会有这么幸运。虽然霜降,但意外地天气很好呢。下午又找了个时间稍微偷溜出去发了一会儿呆。可惜每次下班天都黑了,天气好的话…

HCIP--1

同一区域内的OSPF路由器拥有一致的 LSDB, 在区域内,OSPF 采用 SPF算法计算路由一个区域太多路由器,硬件资源跟不上,所以多划分区域 OSPF 路由计算原理 1. 区域内路由计算 LSA 在OSPF中,每个路由器生成 LSA,用于告诉…

基于SpringBoot的宠物爱好者交流系统的设计与实现(源码+定制+开发)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

Facebook的AI驱动发展:人工智能如何改变社交体验

个性化内容推荐 Facebook利用AI算法分析用户的行为数据,包括点赞、评论、分享和浏览历史。这些数据使得平台能够深入了解用户的兴趣和偏好,从而提供个性化的内容推荐。例如,用户在浏览动态时,AI系统会根据用户的互动历史&#xf…

快速获取 GitHub 个人资料成就徽章

效果展示 成就徽章 个人资料中可以选择是否显示成就徽章,Settings-Public profile,勾选Show Achievements on my profile。 徽章名称获取方式Heart On Your Sleeve使用 ❤️ 表情符号对 GitHub 上的内容做出反应 (正在测试中)Open Sourcerer用户已将 P…