gpt4 book ai didi

linux - 为什么在 Linux 上以 64 位模式构建的可执行文件显示机器类型为 AMD x86 64?

转载 作者:太空狗 更新时间:2023-10-29 11:25:24 25 4
gpt4 key购买 nike

我在尝试理解 ELF(可执行和链接格式)时遇到了这个问题。

我遵循的步骤

  1. 编写了一个简单的应用程序。main.c 包含int main(int argc, char **argv){ return 0;}
  2. 使用 gcc 在 linux 环境中编译。 (在英特尔笔记本电脑上完成)最简单的命令可能gcc main.c
  3. 现在当我运行 a.out 时,它运行没有任何问题。所以构建没问题。
  4. 我使用 readelf 工具检索 ELF 信息,其中 machine 字段为 Advanced Micro Devices X86-64。这部分让我感到困惑。

所以我检查了 a.out 的文件头,它符合 ELF-64 规范(Value 64 - EM_X86_64)。

谁愿意解释一下,为什么在 Linux 上以 64 位模式构建的可执行文件将机器类型显示为 AMD x86 64

最佳答案

x86_64 平台被称为 AMD64 AMD 推出时的平台。最初,还不清楚英特尔是否会支持它。

您注意到在 i386 不复存在多久后,许多软件都具有架构标签 i386 吗?这是因为 i386 CPU 引入了软件使用的指令集。同样,AMD 引入了您的程序使用的指令集,因此它有一个架构标签,反射(reflect)了第一个支持其指令集的 CPU。 (现代 32 位代码仍然经常被标记为 i686,它指的是大约 1995 年的 Pentium Pro。)

关于linux - 为什么在 Linux 上以 64 位模式构建的可执行文件显示机器类型为 AMD x86 64?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9295807/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com