1. CPU 位数
CPU位数 = CPU中寄存器的位数 = CPU能够一次处理的数据宽度 = 数据总线宽度
CPU为了实现其功能一般设计了指令集(如:IA32指令集和x86-64指令集等),即是CPU的全部指令,这就是机器语言。计算机的所有功能都是基于CPU的指令集。指令集和CPU的位数是有联系的。如Intel 8086 CPU 是16位,其指令集也是16位, Intel 80386DX CPU 是32位,其指令集也是32位,但其为了向上兼容,也保留了原16位指令集。
2. 操作系统位数
操作系统位数 = 其所依赖的指令集位数 <= CPU位数
机器字长 = 整数和指针数据的标称大小(字长决定的最重要的参数就是虚拟地址空间的最大大小)
CPU位数与操作系统位数,这两者有区别也有联系,操作系统位数的概念时基于CPU的位数的。
CPU的位数是指能一次同时寄存和处理二进制数码的位数,这和CPU中寄存器的位数对应。整数类型不一定跟位数相等,CPU位数准确地说应该是CPU一次能够并行处理的数据宽度,一般就是指数据总线宽度。
操作系统的位数是说其所依赖的指令集的位数,应该是根据指针类型的位数来定的。
计算机系统一般具有向上兼容性,所以也有64位CPU上运行32位操作系统、32位CPU上运行16位操作系统的情况。
3. Linux下查看CPU硬件架构
$ arch
x86_64
$ uname -m
x86_64
$ echo $HOSTTYPE
x86_64
4. Linux下查看CPU的信息
$ lscpu(或者查看文件/proc/cpuinfo)
5. Linux下查看系统位数
$ getconf LONG_BIT
64
$ getconf WORD_BIT
32