x86与x64简述

参考:
https://www.php.cn/faq/556228.html
https://baijiahao.baidu.com/s?id=1780254509175249371&wfr=spider&for=pc
https://www.runoob.com/linux/linux-comm-uname.html

1. x86和x64

1.1 x86和x64简述

x86和x64都属于处理器平台的系统架构术语。值得注意的是,因为x64架构是由x86架构扩展而来,所以有时x64也被称为x86_64。
简单来说,x86是32位的CPU,x64是64位的CPU。

1.2 x86和x64的区别

2者的主要区别有以下几个方面,
1、指令集架构不同,x86基于32位指令集,而x64基于64位指令集;
2、内存地址空间不同,由于x86 一次性可处理32的数据,而x64一次性可处理64位的数据,由此导致了2者在内存寻址空间上的差异。CPU最大只能处理4GB的内存,而x64 CPU可以访问更大的内存空间;
3、软件兼容性差异,大部分基于x86架构的软件在x64上可以正常运行,但是少数需要与硬件相关联的应用程序可能无法在x64上运行或需要专门的补丁来支持;
4、驱动程序兼容性差,旧的硬件设备可能只有针对x86系统的驱动程序,导致x64无法使用;

2. 查看linux系统cpu的架构

2.1 uname命令

uname [-amnrsv][--help][--version]

参数说明:

-a 或–all  显示全部的信息,包括内核名称、主机名、操作系统版本、处理器类型和硬件架构等。。
-m 或–machine  显示处理器类型。
-n 或–nodename  显示主机名。
-r 或–release  显示内核版本号。
-s 或–sysname  显示操作系统名称。
-v  显示操作系统的版本。
–help  显示帮助。
–version  显示版本信息。
-p 显示处理器类型(与 -m 选项相同)。

2.2 查看linux系统cpu的架构

可以使用uname命令查看linux系统cpu的架构。

# 如x86_64 表示linux为64位系统 
uname -m 
### x86x64架构的区别及应用场景 #### 基本概念 x86是一种基于32位寄存器设计的处理器架构,而x64则是在x86基础上扩展而来的一种64位架构。这种扩展使得x64能够支持更大的内存寻址范围更宽的数据路径[^1]。 #### 寄存器数量宽度 x86架构中的通用寄存器只有8个,并且其宽度为32位,这限制了它处理数据的能力以及可访问的最大物理地址空间(通常为4GB)。相比之下,x64架构不仅增加了更多的通用寄存器,还将其宽度提升至64位,从而提高了计算效率并允许更大容量的RAM被有效利用。 #### 性能表现 由于拥有更多寄存器以及更高效的指令执行方式,运行于x64平台上的应用程序往往可以获得更好的性能。特别是当涉及到大量数据运算或者需要操作超过4GB内存的应用场景时,优势尤为明显。 #### 应用程序兼容性 尽管如此,在某些特定情况下仍需考虑软件兼容性问题。许多早期开发出来的程序可能仅针对x86环境进行了优化;而在现代操作系统如Windows 10中,则通过提供 WoW64 (Windows on Windows 64-bit) 子系统来实现对32位应用的支持,即使在64位环境下也能顺利运行大多数传统软件。 #### 地址空间大小 另一个重要区别在于虚拟地址长度的不同——x86最多可以表示约4G字节的有效线性地址范围(即2^32),而对于采用扁平模式编译链接的目标文件而言更是严格限定于此界限之内; 而x64理论上可达16EB(exabytes, 即2^64), 实际上当前主流硬件厂商出于成本技术成熟度考量多设定成较小值比如2TB或更高一些级别作为实际可用最大物理/虚拟内存上限. 以下是两种架构下C++代码示例展示如何查询指针所指向变量占用存储单元数目的差异: ```cpp #include <iostream> using namespace std; int main() { int a = 1; cout << sizeof(&a); // 输出结果取决于目标机器体系结构 } ``` 如果上述源码片段分别移植到不同类型的CPU之上构建项目的话,x86版会打印出`4`,因为它的每一个指针都恰好占据四个连续八进制单位(bit groups of eight bits each forming one byte).然而如果是x64版本的话就会得到数值`8`. --- #### ARM架构对比 值得注意的是还有另外一种广泛使用的微控制器系列叫做ARM Cortex-M系列产品家族成员们主要定位于嵌入式领域内的低功耗需求场合之中. 它们的RISC精简指令集计算机(Reduced Instruction Set Computing,Risc)哲学指导原则决定了它们相较于复杂指令集计算(CISC)同行们具有更低能耗开销的同时保持相当甚至超越后者单周期吞吐量水平的表现特性.[^2] 虽然这里讨论的重点放在x86 vs x64之间关系上面但是简单提及一下其他竞争者也是有益无害之事. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值