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

本文详细介绍了x86指令集架构的发展历程,从16位到32位再到64位,以及32位与64位在硬件和软件上的差异。重点讲述了Windows系统中的32位与64位兼容性,以及ARM架构与x86的区别。
摘要由CSDN通过智能技术生成

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架构区别

  • 30
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ComboBox.setSelectedItem(String.valueOf(year)); updateCalendar(); } else if (source == addAccountButton) { addAccount(); 计算机架构指的是计算机硬件与软件之间的接口规范,它定义了如何 } else if (source == searchAccountButton) { searchAccount(); } else if (source == summaryButton) { summary(); } } private class CalendarTableCellRenderer extends DefaultTableCellRenderer { private static final long serialVersionUID = 1L; 在计算机系统中执行指令、处理数据、访问内存等操作。常见的计算机架构包 @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int括x86、x64ARM等。 x86和x64是指计算机的CPU架构x86是Intel column) { JLabel label = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column公司推出的32位CPU架构,最早出现在Intel 8086处理器上,现在已经广泛); if (value != null) { int dayOfMonth = (int) value; Calendar cal = Calendar.getInstance(); cal应用于个人计算机和服务器等领域。x64则是指64位的扩展架构,也称.set(year, month - 1, dayOfMonth); int dayOfWeek = cal.get(Calendar.DAY_OF_WEEK); if (dayOfWeek作x86-64或AMD64,它是由AMD公司提出并推广的,目前已经成为主流 == Calendar.SATURDAY || dayOfWeek == Calendar.SUNDAY) { label.setForeground(Color.RED); } else { label的64位CPU架构,可以兼容之前的32x86架构。x64具有更大的寻址.setForeground(Color.BLACK); } } return label; } } private class AccountTableModel extends AbstractTableModel { private static空间和更高的性能,因此在计算密集型任务和内存密集型应用中表现更优秀。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值