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://www.pswp.cn/pingmian/84564.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nginx配置中有无‘‘/’’的区别

在Nginx配置中,location指令末尾的斜杠/和proxy_pass目标地址末尾的斜杠/组合使用会产生显著差异。以下是四种组合的区别详解: ​​核心区别对比表​​ 配置方案匹配规则请求URI传递逻辑实际转发效果示例location /api/ proxy_pass ...701/仅匹配/api/…

系统安全之身份认证

本篇我们对常用的身份认证协议做简要的梳理,包括主流的 HTTP 相关认证协议以及证书密钥对、新兴的 WebAuthn 认证。 HTTP 协议认证 RFC 7235 中定义了 HTTP 协议的认证框架,要求在支持 HTTP 协议的服务器,如果访问服务的身份验证失败&#…

部署http服务

使用flask搭建一个http服务,能够通过本地的另外一个终端访问对应接口,拿到服务端的计算结果 服务端: 创建一个test_http_dtw.py并运行 from flask import Flask, request, jsonifyapp Flask(__name__)# 示例分析函数 def analysis(data):…

WLAN 技术指南:从入门到原理

文章目录 目录 文章目录 前言 一.WLAN 基本概念 有线侧组网概念 AP-AC 组网方式 AC 连接方式 CAPWAP 协议 无线侧组网概念 无线信道 ​编辑 BSS/SSID/BSSID ​编辑 VAP ESS 二.WLAN 组网架构 基本的 WLAN 组网架构 四.WLAN 工作原理 AP 上线 AP 获取 IP 地址阶段 CAP…

语言学习专用AI播放器推荐:LLPlayer

学语言,经常会看大量的比较优秀的视频材料,那么推荐一款语言学习利器,极大提高生产力。 LLPlayer 是一款专为语言学习者设计的独特视频播放器。 它具有许多重要功能,例如可同时显示文本字幕和位图字幕、使用 OpenAI Whisper 自动…

mysql 关联表查询,索引失效

来源表: ##示例 CREATE TABLE order_wide (order_id varchar(33) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 订单ID,member_id int(11) DEFAULT NULL COMMENT 用户ID,content varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT 订单标签,PRIMARY KEY (order_…

Oracle DG库手动注册归档日志的两种方法

Oracle DG库手动注册归档日志的两种方法 注册单个归档日志文件注册多个归档日志文件有的时候由于网络或各种原因,Oracle DG库服务器上可能缺少部分归档日志文件,导致DG库的MRP进程一直处于WAIT_FOR_GAP状态。 此时我们可以手动从主库或其他DG拷贝归档日志到当前DG服务器,并…

中小型VUE3项目创建流程相关命令tips

开新项目因为距离上次初始化时间太过久远,忘记初始化命令的有多少? 不得已简要记录一下流程 1. 使用vite构建新项目 1.1 构建 npm create vite@latest my-vue-app --template vue1.2 安装依赖 npm install1.3 启动 npm run dev参考文档 2. 添加需要的插件 2.1 准备工作…

Web后端开发(请求、响应)

目录 请求: Postman: 简单参数: 实体参数: 数组集合参数: 日期参数: Json参数: 路径参数: 响应: 请求响应: 请求:获取请求数据 响应&a…

Excel大厂自动化报表实战(互联网金融-数据分析周报制作上)

这是Excel大厂自动化报表实战第二期--互联网金融-数据分析周报制作上 数据资源已经与这篇博客捆绑,有需要者可以下载通过网盘分享的文件:2.4自动化报表-8月成交数据.xlsx,2.4自动化报表-8月获客数据.csv等2个文件 链接: https://pan.baidu.co…

HTTP 网络协议演进过程

网络协议演进问题,涉及到HTTP版本之间的连接复用优化和协议升级(特别是从HTTP/2到HTTP/3)的核心变化。我们以 HTTP/1.0 到 HTTP/2.0,再到 HTTP/3.0 的演进顺序来详细解释它们在通道复用(TCP/QUIC)上的优化和…

Xsens动捕和Manus数据手套在元宇宙数字人制作中提供解决方案

硬件连接与数据传输 Xsens与Manus集成:Xsens惯性动作捕捉系统负责捕捉人体的身体动作,Manus数据手套专门精确捕捉手指动作。Xsens动捕套装上有接口或无线连接模块,可与Manus手套配对和传输数据,将身体与手指跟踪数据结合。 Face…

【Java开发日记】简单说一说使用 Netty 进行 Socket 编程

目录 什么是 Netty 对比Netty和传统的Socket 传统Socket编程服务端 传统Socket编程客户端 Netty环境搭建 先创建出来一个项目 Netty服务端程序 Netty客户端程序 Channel Channel分类 为什么选择Netty 什么是 Netty Netty是由JBOSS提供的一个java开源框架&#xff0c…

目标检测任务的评估指标mAP50和mAP50-95

mAP50 和 mAP50-95 是目标检测任务中常用的评估指标,用于衡量模型在不同 交并比(IoU)阈值 下的平均精度(Average Precision, AP)。它们的区别主要体现在 IoU 阈值范围 上。 ✅ 1. mAP50(mean Average Prec…

COHERENT XPRV23光电接收器控制软件

COHERENT XPRV23光电接收器控制软件

执行应用共享内存空间 同步QT进行快速捕获数据流

引言:本文章针对驱动的应用app,例如sensor data内容的获取,显示到QT的一种办法,共享内存。举例子,这是一个常见需求,比如摄像头采集进程与 GUI 显示进程分离,通过共享内存传输图像,避…

opencl的简单介绍以及c++实例

🧩 一、什么是 OpenCL? OpenCL(Open Computing Language) 是一个用于异构计算的开放标准,由 Khronos Group 提出和维护。它允许你在各种计算设备上(如 CPU、GPU、DSP、FPGA)并行运行代码&#…

ThingsCloud事物云平台搭建-微信小程序

ThingsCloud云平台与微信小程序设计 本文主要是介绍ThingsCloud云平台的搭建及微信小程序与app的使用。 当前文章是作为一个通用案例,介绍如何快速使用 ThingsCloud云平台 以及 利用 ThingsCloud云平台平台的框架快速设计手机APP和微信小程序。 可以快速让硬件接入,实现硬件…

2024 一带一路暨金砖国家职业技能大赛(金砖国家未来技能和技术挑战赛)

2024 一带一路暨金砖国家职业技能大赛(金砖国家未来技能和技术挑战赛任务书) 1 参加比赛的形式:2 项目阶段简介:3 项目阶段和所需时间:4 第一阶段:职业素养与理论技能4.1 项目 1.职业素养4.2 项目 2.法律法…

2025-06-13【api】阿里百炼api调用方法

通过调用各种大模型可以完成对文生文,文生图,图片理解,文生视频,音频识别,文转音频等需求。 #方法一 import os from openai import OpenAI# 初始化客户端 client OpenAI(api_keyos.getenv("DASHSCOPE_API_KEY&…