自从接触计算机以来,不管是装系统还是安装应用,就经常会看到什么x86、32位、64位等名词,但是仅知其然,理解都不深刻,今天来梳理记录一下。
比如,在下载向日葵远程工具时,就会提示我们,到底是下载Windows的64位版本还是arm版本,是下载macOS的Intel芯片版本还是apple芯片版本。这个问题对于学习计算机的人来说可能是很司空见惯的,但是对于非计算机专业的人来说可能没有那么容易理解。本文将解释其中的区别和联系。
我们常见的处理器厂商为:微软intel、AMD、苹果自家的M芯片最常见的桌面操作系统则是:Windows、macos、Linux,当前手机的操作系统多为Android和iOS。
在深入探讨这个话题的时,我们必须要认识一个新的概念,那就是指令集架构,芯片和操作系统,都离不开指令集,也正是通过指令集建立了联系。这个概念对于计算机专业的同学来说应该非常熟悉,首先通俗易懂的理解,指令集便是CPU的语言,所有程序最终都是汇编成CPU可以执行的指令进行处理,所以指令集决定了CPU的具体工作实现方式。
当前流行的指令集对比:
指令集 |
全称/别名 |
诞生时间 |
设计公司 |
指令集类型 |
位数支持 |
x86 |
IA-32 (32位) |
1978 (8086) |
Intel |
CISC |
纯 32 位 (IA-32) |
x64 |
x86-64 / AMD64 |
2000 |
AMD |
CISC (64位扩展) |
64 位 (兼容 x86 32 位) |
ARM |
Advanced RISC Machine |
1985 |
ARM Holdings |
RISC |
32 位 (AArch32) 和 64 位 (AArch64) |
RISC-V |
RISC Five |
2010 |
UC Berkeley |
RISC (开源) |
支持 32 位 (RV32)、64 位 (RV64)、甚至 128 位 (RV128) |
指令集 |
授权模式 |
主要应用场景 |
代表产品 |
x86 |
闭源 (Intel/AMD) |
传统 PC、服务器 |
Intel Core, AMD Ryzen |
x64 |
闭源 (AMD主导) |
高性能计算、云计算 |
AMD EPYC, Intel Xeon |
ARM |
授权费 (ARM公司) |
手机、嵌入式、苹果 M 芯片 |
苹果 M2, 高通骁龙, 树莓派 |
RISC-V |
完全开源 |
IoT、嵌入式、新兴服务器 |
SiFive HiFive, 阿里玄铁 |
注:
- CISC:复杂指令集计算机,Complex Instruction Set Computer
指令复杂:单条指令可完成多步操作(如内存访问、计算、跳转合并)
变长指令:指令长度不固定(如 x86 指令长度为 1-15 字节)
硬件复杂度高:通过硬件解码复杂指令,减少编译器负担
- RISC:精简指令集计算机,Reduced Instruction Set Computer
指令精简:单条指令只完成基本操作(如 LOAD/STORE 与计算分离)
定长指令:指令长度固定(如 ARM/RISC-V 通常为 32 位或 64 位)
寄存器多用:大量通用寄存器减少内存访问
软件优化:依赖编译器高效组合简单指令
先从我们熟悉的Intel处理器说起。
我们在组装或选购电脑时,就需要确认自己是买Intel的芯片还是AMD的芯片,但是最终都是安装和运行的Windows系统。根据以上指令集的对比,我们知道实际上Intel和AMD公司的芯片都是x86或x64架构,x86是32位目前新机器基本已经淘汰不用了,所以选择Windows电脑时候就需要选择这两家公司的CPU产品。
其中x86表示是32位,x64表示是64位,前者最大只有4G的内存操作上限,所以内存操作方面会更局促,就算是扩展了内存条也无法提高性能。我之前一直在想,那么为什么要叫x86而不加x64呢?这样不就更好区分了吗,实际上这是最开始研究芯片的是Intel公司,最开始在1978 年推出了Intel8086芯片,随后几年又推出了以下几款芯片:
- 80186(1982年,嵌入式用途)
- 80286(1982年,简称 286,首次支持保护模式)
- 80386(1985年,简称 386,首个 32位 x86 处理器)
- 80486(1989年,简称 486,集成浮点运算单元)
在当时的技术文档和开发社区中,这些处理器被统称位x86系列处理器,这便是x86名称的由来。
直到2000年,AMD公司 基于 x86 扩展出 64位指令集(x86-64,后称 AMD64),Intel 被迫跟进(其独立的 IA-64 架构失败)。此时 x86 涵盖 32位和64位,但日常使用中:
x86 常特指 32位(如 Windows x86)。
x64 明确指 64位扩展(x86-64)
所以可以说Intel现在的指令集不是自家研发的,而是使用的AMD公司的。到这里我们应该可以比较深入的理解最开始提到的向日葵工具下载页面的例子。不过一般来说,我们都遇不到arm架构的Windows系统,因为这个系统Windows不直接对外提供,所以现在基本默认都是下载x64即64位的Windows软件。而macOS就更容易区分了,早些年苹果电脑使用的是Intel的芯片,那就是x64的指令集架构,后续推出了M犀系列芯片后,便是arm指令集架构,后者更加省电。
如何判断系统是什么架构的指令集?
- Windows
Win + R组合键,输入msinfo32,查看系统类型:
- Linux
uname -a 命令
- macOS
可以通过系统信息页面查看是Intel还是M芯片,就知道是什么指令集架构了