x86 32 64 Arm这些听过但不懂,都是什么?是架构还是系统?一文梳理

x86 听过吗?
64位操作系统知道吧 和x86什么关系
32和64都是什么东西?
曾经的我也一头雾水,今天我才来整理一下,惭愧惭愧!
今天带着沉重的心情来梳理一下学习内容吧

如果你很熟悉很了解计算机的话,应该知道,处理器、操作系统、驱动、软件都有32位和64位之分,只不过我们现在使用的多为64位。但是我们还是从历史的头头梳理吧。

见识见识 大名鼎鼎的x86

一、x86是啥

1978年,因特尔发布了第一款 x86 指令集架构处理器 Intel8086。
image.png
后来,这一系列的处理器名称全部以数字 86为结尾,所以这个系列就被简称为 x86了。所以x86是一种指令集架构

x86最开始为16为处理器设计,后来演进为32位和64位处理器的指令集架构。现在,x86架构成为了个人计算机主流的指令集架构。

99.99%的可能性是,你手中的电脑就是x86指令集架构的。(苹果除外)

Intel开始使用32位指令集的时间在1985年,称为 x86_32
随着Intel不断推出新的32位处理器,后来,32位也简称为x86。这也是我们现在看到的x86都是默认的32位的原因。

后来

2003年,AMD抢先Intel发布64位处理器,命名为AMD64。此后,x86正式开始进入64位的时代
64位在性能和应用场景上领先32位,具有很大的提升。
随后,Intel也发布与之兼容的处理器,命名为Intel 64。
AMD64和Intel 64两者统称为x86_64。

所以x86实际上是包含了x86_32和x86_64,同时包含32位和64位。【x64是对x86_64的简称】。

二、32位 vs 64位

硬件上

在硬件上的区别也是当年 64 位被推上舞台的原因,因为64位支持的内存远比64位大得多。

32 位支持的内存是 2^32 Byte,也就是**最大只支持 4GB 内存。**而 64 位支持 2^64 Byte,也就是 17179869184G=16777216TB ≈ ∞。

所以,64 位处理器解决了内存地址总线的问题。

另外 64 位处理器的寄存器也是 64 位,曾经 32 位处理器一次运算需要 4 个「寄存器」,在 64 位处理器上只需要 2 个就够了。好处就是速度更快了。

软件上

Windows系统,32位的系统单个进程**最多使用内存是2GB,**所以大型软件无法良好工作。而在64位系统中,则没有限制,内存绝对够用。

所以,其实很多大型软件是根本没有32位的版本的。

另外,

在 Windows 32 位系统中 C:\Program Files\是软件默认安装目录,C:\System32\ 是系统文件和 DLL 库的目录。
在 Windows 64 位系统中,C:\Program Files\ 是 64 位软件的默认安装目录,而C:\Program Files(x86)\ 是 32 位软件的默认安装目录。
image.png
因为 DLL 文件也分 32 位和 64 位的缘故,所以
64 位系统中 C:\Windows\System32\ 目录用来放 64 位 DLL 文件,
C:\Windows\SysWOW64\ 目录则存放 32 位的 DLL。

image.png

【可能感觉名称和位数有点乱七八糟的,额,个人简单理解就是原来32位系统的安装目录和DLL目录分别是C:\ProgramFiles\C:\System32\。升级为64位之后,我64位的对应文件还放在原属于32位的位置,只是考虑兼容的目的,把32位的安装目录和DLL目录额外规定为了C:\Program Files(x86)\C:\Windows\SysWOW64

所以呢,

64位Windows系统包含了32位系统的兼容库,还有其单独文件夹,可以运行大部分的32位的软件呢。
但是32位系统不能使用64位软件哦。

博主家里,初中时才买的电脑,好像是一几年了,那时还是用的XP系统,是32位的。大学时候(2018入学),我竟然搬到学校去了,发现4GB内存,贼卡。
其实,Windows 系统从 XP 开始一直有 32 位版和 64 位版,而 macOS 自 v10.8(Mountain Lion)开始就抛弃了 32 位版,只提供 64 位版。

好在现在电脑配置还不错:
image.png
还配有3080

三、32位

Windows11的升级给硬件带来了许多要求,其中就有:需要64位或ARM64处理器,不在支持32位处理器

也算是极大的进步,毕竟淘汰32位意味着顺带淘汰一些落后的技术(BIOS(非UEFI)、MBR 分区表格式、32 位发行版、16 位运行环境(NTVDM)等)。

但是呢,
系统中还是保留了32位的虚拟系统,仍然可以运行32位程序。

二十年来,苹果从 MacOS9 RISC 到 OSX RISC 到 OSX X86 到 macOS X64 到 macOS ARM,更新了 4 次架构,
Windows 这才终于移除了 32 位处理器和 IE 浏览器,减轻了一点历史包袱。

为什么 Windows 这么先进的系统,直到 Windows 11 才肯放弃 32 位处理器呢?
主要还是用户太多了。
Windows 10 发布时,前微软的官方负责人回答过这个问题:当时还有大约 1 亿用户在使用 32 位的处理器。
微软并不打算放弃这部分用户。

6 年后的今天,大概那 1 亿台设备也老的老,破的破了,所以微软终于可以在 Windows 11 上移除对 32 位处理器的支持。

四、x86总结

Window系统的向下兼容性一直非常好,即使一些软件不能在Windows上运行,但这压根不影响Windows系统的向下兼容是是业界楷模,已经达到了变态程度,甚至阻碍其发展

也正是 Windows 系统的兼容性好,软件开发商就省事了,反正我的软件不需要那么多系统资源,甚至一套软件开发完不需要维护就能卖十几年,既然如此为什么还要单独出64位版的?
2022 年的 Windows 11 还能运行 90 年代的软件,这在其他操作系统上是很难做到的。

五、Arm

Arm和x86是并列的关系,都是cpu架构。

X86架构的CPU是PC服务器行业的老大,ARM架构的CPU则是移动端的老大。

X86架构和arm架构实际上就是CISC与RISC之间的区别,实际上就是它们应用领域不太相同,追求也不相同。

x86架构和Arm架构两者的区别

  1. 追求不同:x86追求性能,功耗大。Arm追求节能,低功耗,性能没x86强。
  2. 领域不同:x86多用于Intel和AMD的PC机和服务器,Arm多用于移动终端(手机,平板)。
  3. 本质不同:X86采用CISC复杂指令集计算机,Arm采用的是RISC精简指令集计算机。
  4. CISC是复杂指令集CPU,指令多,共好大,CPU电路设计复杂,但编译器设计简单。RISC是精简指令集CPU,指令少,功耗小,CPU电路设计简单,但编译器设计复杂,它的关键在于流水线操作能在一个时钟周期内完成多条指令。

X86架构(The X86 architecture)是微处理器执行的计算机语言指令集,指一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。x86泛指一系列基于Intel 8086且向后兼容的中央处理器指令集架构。
Intel在早期以80x86这样的数字格式来命名处理器,包括Intel 8086、80186、80286、80386以及80486,由于以“86”作为结尾,因此其架构被称为“x86”。由于数字并不能作为注册商标,因此Intel及其竞争者均在新一代处理器使用可注册的名称,如奔腾(Pentium)、酷睿(Core)、锐龙(Ryzen,AMD推出)。
ARM架构,曾称进阶精简指令集机器(Advanced RISC Machine)更早称作Acorn RISC Machine,是一个32位精简指令集(RISC)处理器架构。还有基于ARM设计的派生产品,重要产品包括Marvell的XScale架构和德州仪器的OMAP系列。
ARM家族占比所有32位嵌入式处理器的75%,成为占全世界最多数的32位架构。
ARM处理器广泛使用在嵌入式系统设计,低耗电节能,非常适用移动通讯领域。消费性电子产品,例如可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机),电脑外设(硬盘、桌上型路由器),甚至导弹的弹载计算机等军用设施。
在数据中心需求增长的趋势下,核心芯片的角逐越演越烈。ARM已经进军服务器市场,ARM单核的面积仅为 X86 核的 1/7,同样芯片尺寸下可以继承更多核心数。通过“堆核”的方式,使得ARM架构处理器在性能快速提升下,也能保持较低的功耗。根据Ampere给出的数据,其CPU的性能超越传统x86处理器3倍,性能功耗比领先近4倍。与 x86 服务器CPU相比,Ampere Altra 系列可用50%的能耗,提供200%的性能。
近年来,ARM架构的的兴起下,许多巨头纷纷开始自研ARM架构的服务器芯片,包括国外的亚马逊、谷歌甚至微软,国内的腾讯、阿里巴巴、华为等等都积极参与其中。
曾经失败的高通似乎也在尝试再次进军服务器芯片市场,去年收购了芯片创业公司Nuvia,而Nuvia创立的目标是打造高性能的ARM服务器芯片。
ARM的服务器芯片有三大目标市场即云计算、HPC和边缘计算。

参考链接:
[1] 32、64、x86、x64 有什么区别?Win 11 最大的进步是干掉了这个「老破小」
[2] X86架构与Arm架构区别

相关推荐

  1. 什么DDI?DDI的原理和作用什么

    2024-03-20 11:52:01       35 阅读
  2. 什么双端队列(Double-Ended Queue)?

    2024-03-20 11:52:01       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-20 11:52:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-20 11:52:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-20 11:52:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-20 11:52:01       18 阅读

热门阅读

  1. npm run dev命令的执行顺序和原理

    2024-03-20 11:52:01       21 阅读
  2. MySQL面试复习记录

    2024-03-20 11:52:01       20 阅读
  3. 昆山项目外包选邦芒人力 企业用工无忧解决方案

    2024-03-20 11:52:01       15 阅读
  4. 【ROS】利用ROS标准消息std_msgs::String发送结构体

    2024-03-20 11:52:01       21 阅读
  5. day66 事务

    2024-03-20 11:52:01       15 阅读
  6. 【C++】每日一题 219 最小栈

    2024-03-20 11:52:01       19 阅读
  7. 决策树的学习及应用

    2024-03-20 11:52:01       22 阅读
  8. Spring JdbcTemplate 案例详解教程

    2024-03-20 11:52:01       17 阅读
  9. 车载摄像头 开发的现状和对比

    2024-03-20 11:52:01       18 阅读