应用程序类型(通用与苹果芯片)

时间:2021-05-02 16:50:36

标签: macos apple-m1

如果我查看系统信息中的应用程序列表,一些应用程序具有“通用”的“种类”,而其他应用程序具有“Apple Silicon”。有什么区别?

谢谢!

1 个答案:

答案 0 :(得分:1)

Mach-O 可执行文件格式在同一个可执行文件中支持多种架构,例如 <child-component *ngIf="myObservable | async" [data]="myObservable | async"></child-component> aarch64x86_64 等。在 Apple 营销术语中,这样的文件通常被称为 “fat binary”Universal 应用程序”,因为它允许单个二进制文件,以便在不同平台上轻松传送和执行。

这在 00 年代的 PowerPC->Intel 过渡期间帮助了 Apple,并且现在正在重复使用相同的概念来平滑 x86_64->AArch64 过渡。

“Apple Silicon” 只是 Apple 用来指代他们内部设计的基于 ppc 的芯片(移动和台式机)的营销术语。您可以将其视为 “AArch64” 的同义词。

回到您的问题,系统信息->软件->应用程序中显示的AArch64字段显示您计算机上安装的应用程序是针对哪些平台构建的。 “Apple Silicon”应用程序将仅包含为 AArch64 构建的代码,“Intel”应用程序将仅在 x86_64 下运行,而“通用”应用程序将包含两者的代码。

您还可以使用 XCode 的 kind 工具来检查给定的 Mach-O 二进制文件包含哪些架构:

lipo

如您所见,Firefox 和系统提供的 $ lipo -detailed_info /Applications/Firefox.app/Contents/MacOS/firefox Fat header in: /Applications/Firefox.app/Contents/MacOS/firefox fat_magic 0xcafebabe nfat_arch 2 architecture x86_64 cputype CPU_TYPE_X86_64 cpusubtype CPU_SUBTYPE_X86_64_ALL capabilities CPU_SUBTYPE_LIB64 offset 4096 size 41728 align 2^12 (4096) architecture arm64 cputype CPU_TYPE_ARM64 cpusubtype CPU_SUBTYPE_ARM64_ALL capabilities 0x0 offset 49152 size 91232 align 2^14 (16384) $ lipo -detailed_info /bin/ls Fat header in: /bin/ls fat_magic 0xcafebabe nfat_arch 2 architecture x86_64 cputype CPU_TYPE_X86_64 cpusubtype CPU_SUBTYPE_X86_64_ALL capabilities 0x0 offset 16384 size 59536 align 2^14 (16384) architecture arm64e cputype CPU_TYPE_ARM64 cpusubtype CPU_SUBTYPE_ARM64E capabilities PTR_AUTH_VERSION USERSPACE 0 offset 81920 size 75440 align 2^14 (16384) 都是作为胖二进制文件构建和交付的。