明升ms88娱乐

首页 > 正文

一步步编写操作系统 44 elf格式的二进制可执行程序1

www.ikollegen.com2019-07-10
明升ms88

bf33e683d4f14addbc436b563f6a8115

一开始,我正在考虑如何使这个精灵文件格式清晰。当我在大学时,操作系统课程的老师一般都会这样介绍ELF:窗口下的可执行文件格式是PE(如果我想说EXE,请不要混淆,EXE是扩展名,文件的一部分name,只是名称的后缀,它不是真正的格式),PE是Portable Executable,Linux下的可执行文件格式是ELF。通常只有通过这样一个简单的比较来理解精灵格式,这最好只是一个简短的介绍,而且根本没有详细说明。我认为那时我们很少有人能从课堂上理解ELF文件格式的本质。在本文中,我们不会重复同样的错误。我们不会寻求深入分析,但我们也必须采用“分析”方法。

ELF指可执行链接格式,可执行链接格式。最初由UNIX系统实验室(USL)开发和分发,作为应用程序二进制接口(ABI)。工具接口标准委员会(TIS)选择它作为IA32架构上不同操作系统之间的便携式二进制文件格式,因此它演变成事实上的二进制文件格式标准。历史即将来临,或称“干货”。

让我们首先解释一下,在ELF规范中,符合ELF格式协议的文件统称为“目标文件”或ELF文件,这与我们通常引用的目标文件不同。

在我们通常的习惯中,我们将已编译但未链接的文件称为目标文件,也称为可重定位文件,例如在Linux下使用gcc -c参数生成的.o文件。我们通常引用的ELF文件是一个已编译和链接的二进制可执行文件,该文件可以直接运行。

为了避免混淆,我们使用与ELF规范相同的命名方法。本节中提到的目标文件是指符合ELF规范的各种类型的文件,例如二进制可执行文件和以linux下的.o结尾的目标文件和.so最后的动态库文件。要重定位的文件可以理解为我们通常使用的目标文件(例如Linux下的.o文件)。 ELF目标文件总结在下表:

30c8fadd83124afaa607d826670f9e34

为什么先向大家介绍这个?正如您将在后面了解到的,elf涉及各种数据结构中的各种“类型”。已经理解的学生会不理我。这适用于那些没有触及过这方面的人。让每个人都有一种感性的理解。

最初,我想提前就您在本文中使用的术语与您达成一致意见。事实上,我想一直使用英语单词,但我担心如果你在一天中间看一页,你将无法解释英语地址,所以我试着散布中英文及时。还标有。

[续]

热门浏览
热门排行榜
热门标签
日期归档