Linux中ELF格式文件介绍

Ubuntu中 vsftpd 的安装与配置 (详细介绍) 简介 vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。 vsftpd是 UNIX 操作系统中的一个开源的、免费的 FTP 服务软件。具有以下特点: 安全性高 轻小易用 支持系统用户匿名用户和虚拟用户的权限验证和相关操作 安装步骤如下: 1.将此命令复制到终端 sudo apt-get install vsftpd 2.安装完成后启动VSFTP 阅读详情

      一、 ELF简介

       ELF(Executable and Linkable Format)即可执行连接文件格式,是一种比较复杂的文件格式,但其应用广泛。与linux下的其他可执行文件(a.out,cof)相比,它对节的定义和gnu工具链对它的支持使它十分灵活,它保存的足够了系统相关信息使它能支持不同平台上的交叉编译和交叉链接,可移植性很强.同时它在执行中支持动态链接共享库。 ELF目前是Linux,SVR4和Solaris2.0默认的目标文件格式,目前标准接口委员会TIS已将ELF标准化为一种可移植的目标文件格式,运行于32-bit Intel体系微机上,可与多种操作系统兼容。分析elf文件有助于理解一些重要的系统概念,例如程序的编译和链接,程序的加载和运行等。

      二、3种类型的ELF文件:

      i.  可重定位文件:用户和其他目标文件一起创建可执行文件或者共享目标文件,例如lib*.a文件。 
      ii. 
可执行文件:用于生成进程映像,载入内存执行,例如编译好的可执行文件a.out。 

      iii.共享目标文件:用于和其他共享目标文件或者可重定位文件一起生成elf目标文件或者和执行文件一起创建进程映像,例如lib*.so文件。 

      三、ELF文件作用: 

      ELF文件参与程序的连接(建立一个程序)和程序的执行(运行一个程序),所以可以从不同的角度来看待ELF格式的文件。 
      i.   如果用于编译和链接(可重定位文件),则编译器和链接器将把ELF文件看作是节头表描述的节的集合,程序头表可选。 
      ii.  如果用于加载执行(可执行文件),则加载器则将把ELF文件看作是程序头表描述的段的集合,一个段可能包含多个节,节头表可选。 
      iii. 如果是共享文件,则两者都含有。

      四、ELF文件总体组成:

      从连接的角度和运行的角度,可以分别把目标文件的组成部分做以下划分:

      

      i.   ELF头文件:位于文件最开始处,包含整个文件的结构信息。
      ii.  节(section):是专门用于连接过程而言的,在每个节中包含指令数据、符号数据、重定位数据等等。
      iii. 程序头表:  在运行过程中是必须的,在链接过程中是可选的,因为它的作用是告诉系统如何创建进程的映像。
      iv. 节头表:包含文件中所用节的信息。

     下面看一下Linux内核对ELF头文件的定义,在linux+v2.6.36/include/linux/elf.h 

/* 32-bit ELF base types. */
typedef __u32 Elf32_Addr;
typedef __u16 Elf32_Half;
typedef __u32 Elf32_Off;
typedef __s32 Elf32_Sword;
typedef __u32 Elf32_Word;

#define EI_NIDENT 16

typedef struct elf32_hdr{
    unsigned char e_ident[EI_NIDENT]; //16字节的信息,下文详细解释
    Elf32_Half e_type; //目标文件类型?
    Elf32_Half e_machine; //体系结构类型
    Elf32_Word e_version; //目标文件版本
    Elf32_Addr e_entry; /* Entry point 程序入口的虚拟地址*/
    Elf32_Off e_phoff; //程序头部表的偏移量
    Elf32_Off e_shoff; //节区头部表的偏移量
    Elf32_Word e_flags; //
    Elf32_Half e_ehsize; //ELF头部的大小
    Elf32_Half e_phentsize; //程序头部表的表项大小
    Elf32_Half e_phnum; //程序头部表的数目
    Elf32_Half e_shentsize; //节区头部表的表项大小
    Elf32_Half e_shnum; //节区头部表的数目
    Elf32_Half e_shstrndx; //
}Elf32_Ehdr; //此结构体一共52个字节

我们使用notepad++打开一个ELF文件,可以看到前四个字节为" ELF":

此外,在linux下我们可以使用objdump 和readelf 两个命令 ,查看到ELF文件的各个节段的信息,运行时必要的动态链接库,ELF中的汇编代码等。

大数据NiFi(十一):NiFi入门案例一 注意:数据写出的目录可以不需要提前在对应节点上创建,默认是可以自动创建,可以通过“Create Missing Directories”属性配置。将输出文件的权限设置为此属性的值,格式必须是UNIX rwxrwxrwx,用-来代替被拒绝的权限(例如rw-r--r--)或八进制数字(例如644),可以使用表达式,例如${file.permissions}。这里需要使用到的处理器是“GetFile”和“PutFile”,完成以上需求对“GetFile”和“PutFile”相关属性进行配置。 阅读详情

相关推荐

逆变器技术解析:DDSRF双解耦在正负序分离中的关键作用

本文深入解析了DDSRF双解耦技术在逆变器正负序分离中的关键作用。通过建立正反旋转坐标系并利用交叉反馈解耦网络,DDSRF能快速、精准地分离电网电压中的正负序分量,从而显著提升锁相环在电网不平衡条件下的精度与系统稳定性,是现代高性能并网逆变器的核心算法之一。

m3n5b7v8c9x的博客 410

ELF解析工具 —— 使用介绍

ELF解析工具 函数栈大小

alios、linux、rtos等OS技术分析 7万+

Calibre提参实战:如何用hcell和xcell文件精准屏蔽模块(附避坑指南)

本文详细解析了Calibre提参过程中hcell和xcell文件的应用技巧,帮助工程师精准屏蔽模块以优化寄生参数提取。通过对比hcell与xcell的核心差异、图形界面与命令行操作指南,以及常见问题排查方法,提升芯片后端设计效率。附避坑指南,解决EETOP论坛热议的模块丢失问题。

weixin_26795617的博客 438

ELF文件概述

ELF 文件是一种用于存储可执行程序、目标文件、共享库等的标准文件格式,在 Linux 及其他类 Linux 操作系统(如 Unix 等)中广泛应用。它定义了一种规范的结构,使得操作系统能够准确地加载程序并使其在内存中正确执行。简单来说,当我们编写一段代码(比如用 C 语言编写)并经过编译后,生成的可执行文件往往就是以 ELF 格式存在的。它包含了程序的代码段(存放可执行的机器指令)、数据段(存放程序中定义的各种变量等数据)、符号表(记录程序中定义的函数、变量等符号信息,用于链接等操作)等重要部分。

cyy001128的博客 3330

中兴SDH设备开局及业务配置

中兴SDH设备开局及业务配置 1.设备开局(S200-----S325) A.开电之后,按住截铃(bell off)开关,直至NCP告警灯变成橙色; B.此时,设备进入Download状态,设备IP为:192.192.192.11/24; 2.用交叉线(568A)将设备的QX口连接至电脑,电脑配置和设备相同网段的IP信息; 3.在电脑上测试连通性:pin...

weixin_33897722的博客 3996

Stata:手动安装ivreghdfe包的完整指南与常见问题解决

本文提供了Stata中手动安装ivreghdfe包的完整指南,包括准备工作、详细安装步骤及常见问题解决方案。ivreghdfe作为处理高维固定效应模型的强大工具,依赖ftools、reghdfe和ivreg2三个核心组件,手动安装可避免版本冲突问题。文章还分享了进阶使用技巧,如并行计算加速和保存固定效应估计值,助力用户高效完成工具变量回归分析。

weixin_29251131的博客 929

Windows上浏览ELF文件

Linux下如果想要浏览ELF文件,可以用objdump来做,但是Windows上没有这个工具,如果为了用objdump,要么装个虚拟机,要么启用linux kernel on windows,无论哪个,都挺麻烦。这里介绍一个方便实用的浏览ELF文件的小工具,具体来说,它是Windows上神级第三方资源浏览器Total Commander(以下简称TC)的一个插件。 关于Total Commander,简单来说,如果你受够了Windows自带的资源浏览器,Total Commander绝对是最好的替代。具体

松石立雪 9573

uniapp - 微信授权登录报错 errMsg“:“login:fail send“ | “code“:-100 | “innerCode“:-6,解决uni-app调用微信登录时没有响应且返回错误

uni-app,微信登录,微信登录报错,微信小程序,支付宝小程序,安卓app,苹果ios,nvue,H5网页网站,uniapp苹果安卓app,微信授权登录,uniAppAPP端微信登录报错,微信确认登录界面后点击登录报错,"errMsg":"login:failsend","errCode":-100,"code":-100,"innerCode":-6,都配置好了还是报错怎么办,uniapp微信授权登录报错,UniApph5对接微信登录出现错误,appid,应用签名,微信登陆,code:-100

🏆 前端领域优质创作者 1万+

Ubuntu18.04下gcc工具的常用命令,编译详细过程和ELF文件的了解

在Linux 系统(Ubuntu环境下)GCC工具的定义和简介,经常使用的一些常用命令及GCC工具编译的详细过程和一个实例演训,还有ELF文件格式的初步了解。

qq_53144725的博客 1451

osgPython

osgPython是一组 Python 模块,为 OpenSceneGraph 的 C++ 库提供了完整的 Python 接口。这意味着你可以在 Python 中调用几乎所有的 OSG 功能,从创建简单的场景到复杂的渲染效果。核心优势开发速度快:Python 语法简洁,无需编译,快速迭代易于学习:比 C++ 更易上手,适合原型开发和教学生态丰富:可以结合 NumPy、Matplotlib 等科学计算库跨平台:与 OSG 一样支持 Windows、Linux、macOS性能考虑。

深之JohnChen的专栏 453

华为OD机试 - 计算数列位置N的值 - 模拟法(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。输入 M,N 两个数,则按照以下规则形成一个数列。数列的前 M 个元素的值为 1 到 M从 M+1 个元素开始,计算逻辑为如果其前 M 个元素中,存在值相同的元素,则该位置上的数值等于前 M 个数中最大数值与最小数值之和。如果其前 M 个元素中,

学Java,找哪吒 508

ELF文件详解

一、ELF概述 1、ELF的定义 ELF(Executable and Linkable Format)文件是一种目标文件格式,常见的ELF格式文件包括:可执行文件、可重定位文件(.o)、共享目标文件(.so)、核心转储文件等。 ELF主要用于Linux平台,Windows下是PE/COFF格式。 2、ELF文件的结构 一个完整的ELF文件一般会包括如下几个内容:ELF头、Section头、Segment头和Section。 其中由Section头组成的集合称为Section头表,...

PeakJin的博客 2万+

EtherCAT主站SOEM -- 19 --Qt-Soem通过CSP模式(周期同步位置模式)控制一个电机转圈圈

以上就是EtherCAT主站SOEM – 19 --Qt-Soem通过CSP模式(周期同步位置模式)控制一个电机转圈圈的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 1996

linux中elf文件的作用,Linux中ELF格式文件介绍

一、 ELF简介ELF(Executable and Linkable Format)即可执行连接文件格式,是一种比较复杂的文件格式,但其应用广泛。与linux下的其他可执行文件(a.out,cof)相比,它对节的定义和gnu工具链对它的支持使它十分灵活,它保存的足够了系统相关信息使它能支持不同平台上的交叉编译和交叉链接,可移植性很强.同时它在执行中支持动态链接共享库。 ELF目前是Linux,S...

weixin_39863616的博客 1401

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Linux中ELF格式文件介绍,linux中ELF格式文件介绍

ELF格式即可执行连接文件格式,是一种比较复杂的文件格式。但应用广泛,和其他可执行文件(a.out,cof)相比,它对节的定义和gnu工具链对它的支持使它十分灵活,它保存的足够的系统相关信息使它能够支持不同平台上的交叉编译和交叉链接ELF格式文件的分类,组成,作用,以及其中包含的内容,常用的elf操作工具分类a)可重定位的对象文件(Relocatable file):这是由汇编器汇编生成的.o文件...

weixin_33800074的博客 351

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

linux elf文件格式,简单介绍一下Linux中ELF格式文件

ELF(Executable and Linkable Format)即可执行连接文件格式,是一种比较复杂的文件格式,但其应用广泛。与linux下的其他可执行文件(a.out,cof)相比,它对节的定义和gnu工具链对它的支持使它十分灵活,它保存的足够了系统相关信息使它能支持不同平台上的交叉编译和交叉链接,可移植性很强.同时它在执行中支持动态链接共享库。通过本文,可以大致了解Linux系统中ELF...

weixin_34683262的博客 575

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

linux文件类型elf,linux中ELF格式文件介绍

ELF格式即可执行连接文件格式,是一种比较复杂的文件格式。但应用广泛,和其他可执行文件(a.out,cof)相比,它对节的定义和gnu工具链对它的支持使它十分灵活,它保存的足够的系统相关信息使它能够支持不同平台上的交叉编译和交叉链接ELF格式文件的分类,组成,作用,以及其中包含的内容,常用的elf操作工具分类a)可重定位的对象文件(Relocatable file):这是由汇编器汇编生成的.o文件...

weixin_31915631的博客 242
上一篇: Linux操作系统中进程内存分配解析
下一篇: mkdir创建多级目录
飛雪一刀
博客等级 码龄19年 18粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值