当前位置: 首页 > news >正文

ARM 和 x86_64是什么关系

什么是 ARM 和 x86_64?

它们都是 CPU 指令集架构(ISA)

指令集架构(Instruction Set Architecture)就是:

CPU 能够理解和执行的“语言”和“命令格式”。


类比解释:指令集就像“语言”

类比对象ARM CPUx86_64 CPU(Intel/AMD)
语言西班牙语英语
编译器翻译成西班牙语的代码翻译成英语的代码
执行者会西班牙语的 CPU会英语的 CPU
  • ARM 架构 是一种低功耗、高能效的 CPU 架构,广泛用于手机、嵌入式设备,以及现在的 Apple Silicon(M1/M2/M3);

  • x86_64(也叫 amd64) 是一种更通用的 CPU 架构,由 Intel/AMD 推广,几乎所有 PC、服务器都用它。


为什么这个差异会影响容器运行?

因为容器(Docker 镜像)里安装的程序,都是「预编译的二进制文件」,这些文件只能在编译时所指定的架构上运行。

类比延续:

如果你有一个翻译成“英文”的剧本(x86_64 编译的程序),而演员(M1 Mac CPU)只会西班牙语(ARM 架构),那么它根本读不懂剧本,演不了。


举个真实例子

一个你在 x86_64 上构建的 Linux 镜像(比如 Ubuntu)里可能有:

/bin/bash (x86_64 编译)
node (x86_64 ELF 二进制)
chromium (x86_64 二进制)

这些程序都不能直接在 ARM Mac 上运行,因为它们不兼容 ARM 指令集。

所以需要“翻译器”:Rosetta 2 和 QEMU

这两个就像「实时同声传译」:

名字用途谁在用它?
Rosetta 2Apple 提供的 x86 → ARM 翻译器macOS 原生 App,Docker Desktop
QEMU通用的 CPU 架构模拟器Docker Desktop, 虚拟化环境

它们的工作就是:让你在 只懂 ARM 的 CPU 上,运行 x86 的程序


在 Docker 中的表现

  • 镜像是 x86_64 编译的

  • 你机器是 ARM(M1)

  • 默认 Docker Desktop 会尝试使用 QEMU 让 x86 程序运行(但兼容性有限)

  • 你开启 Rosetta 后,让整个容器运行在“全模拟 x86_64 环境”下,兼容性更强


总结一句话:

ARM 和 x86_64 是两种完全不同的 CPU 语言,你不能直接在一个平台上运行另一个平台编译的程序,除非你有「翻译器」(比如 QEMU 或 Rosetta)在中间做中转。


图示脑图风格总结:

          编译架构                ↘
镜像程序 ——> x86_64 架构 binary → [不能在 ARM 机器上直接跑!]↘解决方案:使用 QEMU / Rosetta 做 CPU 翻译模拟↘ARM Mac 上也能运行 x86_64 镜像中的程序

文章转载自:

http://16ZLuur8.jynzb.cn
http://dZAOtHP8.jynzb.cn
http://0y4AmOcr.jynzb.cn
http://bBYjY1pt.jynzb.cn
http://k2ZHCdmO.jynzb.cn
http://WAe7tWy8.jynzb.cn
http://DWsd2Vz8.jynzb.cn
http://z1h2QBiN.jynzb.cn
http://fZmHNInA.jynzb.cn
http://4hVAB6QC.jynzb.cn
http://wNjfWIiq.jynzb.cn
http://Wx6mFWXi.jynzb.cn
http://rkxhJixw.jynzb.cn
http://BEGjBL1Z.jynzb.cn
http://4eD2L6Lx.jynzb.cn
http://BfrpEDLg.jynzb.cn
http://stjubqmF.jynzb.cn
http://rqvSIR80.jynzb.cn
http://Mct0TjMU.jynzb.cn
http://ivahPpBa.jynzb.cn
http://tkoFr8mI.jynzb.cn
http://i2PdlCth.jynzb.cn
http://v5B2q1jk.jynzb.cn
http://VcWmjWPr.jynzb.cn
http://lUvkMeSr.jynzb.cn
http://YjPp5MfY.jynzb.cn
http://S1O6tTT1.jynzb.cn
http://0sBSwUQY.jynzb.cn
http://6O9HpUME.jynzb.cn
http://mDseJZT8.jynzb.cn
http://www.dtcms.com/a/246162.html

相关文章:

  • Oracle Form判断表单数据重复方法
  • 用idea进行数据同步
  • 大中台应用的层次抽象
  • cf1742D
  • VSCode - Trae 插件关闭弹出框代码补全
  • 微服务集成seata分布式事务 at模式快速验证
  • 【Java工程师面试全攻略】Day8:高并发系统设计实战
  • R语言缓释制剂QBD解决方案之四
  • 2025pmx文件怎么打开blender和虚幻
  • Vosk API:开源离线语音识别的强大工具
  • 超简单部署离线语音合成TTS和语音识别
  • 【android bluetooth 框架分析 04】【bt-framework 层详解 5】【AbstractionLayer介绍】
  • 机器学习 [白板推导](五)[支持向量机]
  • 落水人员目标检测数据集(猫脸码客第253期)
  • 高保真组件库:获取验证码
  • python格式化字符串的几种方式
  • Spring上下文模块设计
  • 图像处理 | 如何动态调整CLAHE算法中的ClipLimit参数
  • 回归-嵌入式与c概念
  • 2025年渗透测试面试题总结-长亭科技[校招]安全服务工程师(题目+回答)
  • 使用 MkDocs 构建并部署项目文档到 GitHub Pages
  • 小程序【页面离开、页面卸载】对比区分
  • (十二)深度学习计算性能:硬件架构、算法效率与理论极限分析
  • 【苍穹外卖项目】Day01
  • ZeroTier+CCproxy+Proxifier实现内网穿透和流量转发
  • uniapp 腾讯云 COS 文件管理进阶(文件夹分类与批量操作)
  • 网络安全A模块专项练习任务七解析
  • 常见的网络协议有哪些
  • 数据结构学习20250612
  • Transformer模型详解