当前位置: 技术问答>linux和unix
Linux在PowerPc上的二进制文件格式是ELF吗?
来源: 互联网 发布时间:2016-08-08
本文导语: 今天在看ELF文件格式时,看到了这样一句话“工具接口标准委员会(TIS)选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操作系统之间可移植的二进制文件格式”。 Linux在x86上采用的可执行文件的...
今天在看ELF文件格式时,看到了这样一句话“工具接口标准委员会(TIS)选择了正在发展中的ELF标准作为工作在32位INTEL体系上不同操作系统之间可移植的二进制文件格式”。
Linux在x86上采用的可执行文件的格式是ELF格式,在PowerPC上采用的可执行文件的格式是ELF吗?
因为使用的嵌入式的CPU是PowerPC的,所以需要关注一下这个问题。
Linux在x86上采用的可执行文件的格式是ELF格式,在PowerPC上采用的可执行文件的格式是ELF吗?
因为使用的嵌入式的CPU是PowerPC的,所以需要关注一下这个问题。
|
在内核中,执行一个程序的入口是系统调用sys_execve(),这个函数因不同的架构而不一样,但每一个架构都调用了函数do_execve()执行程序,这个函数(do_execve)在内核中只有一个,在该函数中调用函数search_binary_handler()循环尝试支持所有的可执行文件的格式,直到找到第一个能够识别这个文件的回调函数为止。
因此,内核支持的可执行文件格式,不会因为架构而不同。
内核支持的所有的可执行文件格式存储在链表formats(定义与fs/exec.c中),用户可以通过register_binfmt()/unregister_binfmt()函数向内核注册、注销各种文件格式。
PowerPC支持的可执行文件格式有哪些,就看你编译了多少种格式进内核。当然,如果你没有将elf格式编译进内核,也可以通过模块是内核支持。
因此,内核支持的可执行文件格式,不会因为架构而不同。
内核支持的所有的可执行文件格式存储在链表formats(定义与fs/exec.c中),用户可以通过register_binfmt()/unregister_binfmt()函数向内核注册、注销各种文件格式。
PowerPC支持的可执行文件格式有哪些,就看你编译了多少种格式进内核。当然,如果你没有将elf格式编译进内核,也可以通过模块是内核支持。
|
你可以用PC机上的file 命令看看powerPC工具链编译出来的程序
至少我知道的arm还elf格式的
这个powerpc也应该是,而你的文档怕是老了点
至少我知道的arm还elf格式的
这个powerpc也应该是,而你的文档怕是老了点
|
http://linux.heu.cn/node/4
这个应该不老 2009年11月的文章
还有这个
http://blog.csdn.net/yyt7529/archive/2009/06/06/4245298.aspx
这个应该不老 2009年11月的文章
还有这个
http://blog.csdn.net/yyt7529/archive/2009/06/06/4245298.aspx
|
额,我说的不准确
也许elf被制定当初的目的是为了32位intel
后来就用于其他体系结构了
关于文档我没有更好的
powerpc elf 有很多结果
powerpc coff就没有
也许elf被制定当初的目的是为了32位intel
后来就用于其他体系结构了
关于文档我没有更好的
powerpc elf 有很多结果
powerpc coff就没有
|
因为linux现在的二进制格式是elf的 这个由链接器决定 与是哪种cpu没有关系
以前用a.out
以前用a.out
|
跑在苹果PowerBook上的Fedora 12和Ubuntu 9.10,都是ELF格式的。
$ file tar
tar: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, with unknown capability 0x41000000 = 0x13676e75, with unknown capability 0x10000 = 0xb0401, stripped
$ file tar
tar: ELF 32-bit MSB executable, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, with unknown capability 0x41000000 = 0x13676e75, with unknown capability 0x10000 = 0xb0401, stripped
|
用file命令查看文件格式嘛。
|
一般gcc编译出来的应该都是ELF文件。除非你特意去设置编译结果!
|
正确,与平台关系不大。
再一个可以用file看一下。
|
file命令查看文件格式
|
高手们,其实直接用编辑器打开你想看的文件,头四个字符里如果有ELF,就是elf文件啦。
|
windows用的是pe格式
elf pe都是基于coff的
elf pe都是基于coff的
|
这个很经典,符合菜鸟的思维,我喜欢。