请高手解释一下硬件架构与可执行二进制文件的关系和依赖。具体问题如下:
我在IBM P5上装了一套Redhat 4 U4 的linux, powerPC版的。然后去下载了一些X86 Redhat 4 linux的软件。安装的时候发现识别不了可执行文件。
我比较疑惑,同样都是Redhat Linux,版本号也一样,在不同硬件平台的可执行文件不能直接兼容吗?难道不同硬件平台,同一软件平台下支持的可执行文件格式不一样?
------解决方案--------------------应该说不同的软件最后编译,汇编成二进制的可执行代码,但是不同的架构的机子,指令集不同,有些命令不一定能够被识别.
但是现在的软件都能够做到平台无关..进一步的我也不知道...
------解决方案--------------------平台无关一般不是指生成的可执行文件,像java其平台无关因为其生成了自己的中间代码,在虚拟机上解释执行。而对于一般编译生成可执行文件的,其平台无关指的是代码可以在不同的平台编译,而不是一份可执行文件在不同的平台运行
------解决方案--------------------根据不同平台编译是由不同平台下的编译器来实现的
如gcc就有支持N多个平台下编译可执行代码