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
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/84564.shtml
英文地址,請注明出處:http://en.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&…