当前位置:首页 > 数码 >

elf中文翻译(elf翻译成中文)

来源:原点资讯(www.yd166.com)时间:2024-06-06 10:30:20作者:YD166手机阅读>>

ELF的英文全称是The Executable and Linking Format,最初是由Unix系统实验室开发、发布的ABI(Application Binary Interface)接口的一部分,也是Linux的主要可执行文件格式。

引言

我们来回顾一下,一个用C语言编写的高级语言程序是从编写到打包、再到编译执行的基本过程。

elf中文翻译,elf翻译成中文(1)

在Unix系统中,从源文件到可执行目标文件是由编译驱动程序完成的,如大名鼎鼎的gcc,翻译过程包括图中的四个阶段;

Ø 预处理阶段

预处理器(cpp)根据以字符#开头的命令修改原始的C程序,结果得到另一个C程序,通常以.i作为文件扩展名。主要是进行文本替换、宏展开、删除注释这类简单工作。

对应的命令:linux> gcc -E hello.c hello.i

Ø 编译阶段

编译器将文本文件hello.i翻译成hello.s,包含相应的汇编语言程序

对应的命令:linux> gcc -S hello.c hello.s

Ø 汇编阶段

将.s文件翻译成机器语言指令,把这些指令打包成一种叫做可重定位目标程序的格式,并将结果保存在目标文件.o中(把汇编语言翻译成机器语言的过程)。

把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。

对应的命令:linux> gcc -c hello.c hello.o

Ø 链接阶段

此时hello程序调用了printf函数。 printf函数存在于一个名为printf.o的单独的预编译目标文件中。 链接器(ld)就负责处理把这个文件并入到hello.o程序中,结果得到hello文件,一个可执行文件。最后可执行文件加载到储存器后由系统负责执行, 函数库一般分为静态库和动态库两种。静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一般为.a。动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀名为.so,gcc在编译时默认使用动态库。

从使用上来说,主要的ELF文件的种类主要有三类:

  • 可执行文件(.out):Executable File,包含代码和数据,是可以直接运行的程序。其代码和数据都有固定的地址 (或相对于基地址的偏移 ),系统可根据这些地址信息把程序加载到内存执行。
  • 可重定位文件(.o文件):Relocatable File,包含基础代码和数据,但它的代码及数据都没有指定绝对地址,因此它适合于与其他目标文件链接来创建可执行文件或者共享目标文件。
  • 共享目标文件(.so):Shared Object File,也称动态库文件,包含了代码和数据,这些数据是在链接时被链接器(ld)和运行时动态链接器(ld.so.l、libc.so.l、ld-linux.so.l)使用的。
ELF文件的基本格式

elf中文翻译,elf翻译成中文(2)

从程序执行视角来说,这就是Linux加载器加载的各种Segment的集合。比如只读代码段、数据的读写段、符号段等等。而从链接的视角上来看,elf又分为各种的sections。

注意Section Header Table和Program Header Table并不是一定要位于文件开头和结尾的,其位置由ELF Header指出,上图这么画只是为了清晰。

ELF文件的头部信息

对于elf头部文件信息,首先可以可以查看一下内存的布局情况:

elf中文翻译,elf翻译成中文(3)

根据readelf可以得到该文件的头部信息的情况。

elf中文翻译,elf翻译成中文(4)

栏目热文

elf有哪几种意思(网络上说elf是什么意思)

elf有哪几种意思(网络上说elf是什么意思)

[kiosk@foundation0 Desktop]$ file /bin/passwd /bin/passwd: s...

2024-06-06 10:27:02查看全文 >>

elf中文意思是什么(elf有哪几种意思)

elf中文意思是什么(elf有哪几种意思)

本文介绍了elf的基本结构和内存加载的原理,并用具体案例来分析如何通过ELF特性实现HIDS bypass、加固/脱壳以...

2024-06-06 10:23:15查看全文 >>

初步诊断和确诊的区别(明确诊断与初步诊断的区别)

初步诊断和确诊的区别(明确诊断与初步诊断的区别)

什么是新冠病毒检测阳性?初筛阳性又是什么意思?新冠病毒检测阳性代表在所送检的标本中发现新冠病毒。而新冠病毒主要是通过呼吸...

2024-06-06 10:31:29查看全文 >>

疑似病例一般都是什么意思(疑似病例的判断标准是什么)

疑似病例一般都是什么意思(疑似病例的判断标准是什么)

新冠肺炎的诊断可分为疑似病例、确诊病例和无症状感染者。具体来说,疑似病例从流行病学史上分析,就是在发病前14天内,有病例...

2024-06-06 09:53:26查看全文 >>

疑似病例和密切接触者有什么区别(密切接触者有可疑症状怎么办)

疑似病例和密切接触者有什么区别(密切接触者有可疑症状怎么办)

全民防控众志成城 【专家面对面|可疑暴露者、密切接触者、疑似病例......这些你分得清吗?】什么是新冠肺炎的可疑暴露者...

2024-06-06 09:48:25查看全文 >>

elf启蒙英语(合集启蒙英语)

elf启蒙英语(合集启蒙英语)

简直就是英语认知启蒙的神器!今天分享的这套资源来自美国ELF Learning,是认知启蒙动画中最有趣的,有趣动画中最完...

2024-06-06 10:05:44查看全文 >>

elf中文意思(elf用中文怎么读)

elf中文意思(elf用中文怎么读)

活动延期公告各相关单位及获奖嘉宾: 根据当前北京疫情防控形势,为切实降低风险,避免聚集性活动,现活动组委会决定原定于11...

2024-06-06 10:11:22查看全文 >>

elf用英语怎么读(elf怎么读英文发音)

elf用英语怎么读(elf怎么读英文发音)

bookshelf 英 [ˈbʊkʃelf] 书架双语例句:Please take the bookshelf away...

2024-06-06 10:20:47查看全文 >>

elf在韩国是什么意思(elf有哪几种意思)

elf在韩国是什么意思(elf有哪几种意思)

三言财经10月26日消息,ELF自10月19日上线韩国最大数字加密货币交易所UPbit至今,ELF在韩国数字货币交易市场...

2024-06-06 10:26:39查看全文 >>

微信图标怎么点亮红旗(微信红旗半透明图标怎么弄)

微信图标怎么点亮红旗(微信红旗半透明图标怎么弄)

随着70年国庆日渐临近,近日很多人微信图像上出现了国旗的图标,朋友圈纷纷@微信官方求一面红旗。现在自己动手,就可以实现。...

2024-06-06 09:56:35查看全文 >>

文档排行