查看CPU与操作系统的位数
来源:互联网 发布:java制表符 编辑:程序博客网 时间:2024/06/05 08:16
我们经常听到32位、64位CPU或操作系统,那么如何来查看自己所用PC的CPU与操作系统的位数?而32位、64位又是是指什么呢?
1 查看CPU与操作系统的位数
=====================================================================================================
windows环境下:
<1>通过systeminfo命令查看CPU位数与OS位数:
C:\Users\Administrator>systeminfo
主机名: ADMINISTRATOR-PC
OS 名称: Microsoft Windows 7 旗舰版
OS 版本: 6.1.7601 Service Pack 1 Build 7601
OS 制造商: Microsoft Corporation
OS 配置: 独立工作站
OS 构件类型: Multiprocessor Free
注册的所有人: 微软用户
注册的组织: 微软中国
产品 ID: 00426-OEM-8992662-00400
初始安装日期: 2011/12/3 星期六, 19:08:14
系统启动时间: 2014/8/15 星期五, 8:54:16
系统制造商: ASUSTeK Computer Inc.
系统型号: K43SD
系统类型: x64-based PC /* 64位操作系统 */ 若显示 X86-based PC则为32位操作系统
处理器: 安装了 1 个处理器。
[01]: Intel64 Family 6 Model 42 Stepping 7 GenuineIntel ~782 Mhz /* 64位处理器 */
BIOS 版本: American Megatrends Inc. K43SD.208, 2012/8/10 星期五
<2>通过CPU-Z查看CPU位数
在指令集中,Intel CPU若支持64位,则会显示EM64T指令集;AMD CPU若支持64位,则会显示X86-64指令集。若没有出现上述的指令集,则表示CPU为32位。
======================================================================================================
Linux环境下:
查看内核版本:cat /proc/version或uname -a
Linux version 2.6.18.........(gcc 版本 4.1.2 20080704 (Red Hat 4.1.2-48)) #3 SMP Fri Jan 25 15:14:45 CST 2013
查看内核发行版:car /etc/issue
CentOS release 5.5 (Final)
Kernel \r on an \m
查看系统类型:lsb_release -a
LSB Version: :core-3.1-amd64:core-3.1-ia32:core-3.1-noarch:graphics-3.1-amd64:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.5 (Final)
Release: 5.5
Codename: Final
查看系统位数:getconf LONG_BIT 或 file /sbin/init
64 或 /sbin/init: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9,
查看CPU位数:arch或uname -m
x86_64 (通过CPU硬件架构来识别)
=======================================================================================================
2 CPU与操作系统的32或64位的意义
CPU位数是指通用寄存器的数据宽度,即CPU一次能处理的数据宽度(或者寄存器和运算单元之间总线的条数)。
操作系统的内核层直接参考硬件规格写成,所以同一个操作系统程序不能够在不一样的硬件架构上运行。因32/64位的CPU指令集不大相同,所以需要设计32位与64位版本的操作系统。32位操作系统既可以安装在32位CPU的PC上,也可以安装在64位CPU的PC上;而64位操作系统只能安装在64位CPU的PC上。
3 最大支持的内存大小为4GB
我们通常想当然的认为32位CPU或32位最大支持的内存大小为4GB,其实最大能支持多少内存与CPU的位数(如32位CPU、64位CPU,这里指的是通用寄存器的宽度)无关,而是由CPU的地址总线数目与操作系统决定的。
CPU的地址总线数目决定寻址范围,这种由地址总线对应的地址就是物理地址。如CPU的地址总线数目为32,则其可寻物理地址范围为2的32次方,即4GB。(CPU位数与地址总线位数是两个概念,8086 16位CPU的地址总线为20位,即寻址范围为1MB;32位CPU的地址总线为32位,即寻址范围为4GB,但32位CPU也有地址总线为36位的;64位CPU的地址总线为40位,即寻址范围为1TB)。而CPU在访问任何其他组件(如寄存器、显存、BIOS、内存)时,都需要它们实际的物理地址。
操作系统中的进程所访问到的地址是逻辑地址,并不是真实的物理地址,这个逻辑地址是操作系统提供的,CPU在执行指令时需要先将指令的逻辑地址变换为物理地址才能对相应的存储单元进行数据的读取或者写入(注意逻辑地址和物理地址是一一对应的)。
对于32位的windows操作系统,其逻辑地址编码采用的地址位数是32位的,那么操作系统所提供的逻辑地址寻址范围是4GB,而在intel x86架构下,采用的是内存映射技术(Memory-Mapped I/O, MMIO),也就说将4GB逻辑地址中一部分要划分出来与BIOS ROM、CPU寄存器、I/O设备这些部件的物理地址进行映射,那么逻辑地址中能够与内存条的物理地址进行映射的空间肯定没有4GB了,看下面这幅图就明白了:
对于64位的操作系统,其逻辑地址编码采用的地址位数是40位,能够最大支持1T的逻辑地址空间。考虑一种情况,假如CPU是64位的,地址总线位数是40位,操作系统也是64位的,逻辑地址编码采用的地址位数也是40位,内存条大小是64GB,那么是不是内存条的64GB全部都能被利用了呢?答案是不一定,因为这里面还要考虑一个因素就是内存控制器,内存控制器位于北桥之内(现在基本都是放在CPU里面了),内存控制器的实际连接内存的地址线决定了可以支持的内存容量,也就是说内存控制器与内存槽实际连接的地址线如果没有40位的话,是无法完全利用64GB的内存条的存储空间的。当然对于内存控制器这个问题几乎可以不用考虑,因为现在大多数的内存控制器至少都采用的是40位地址总线。
- 查看CPU与操作系统的位数
- CPU的位数与操作系统的位数
- 查看操作系统及CPU的位数
- 查看Linux的内存、CPU、操作系统版本、位数
- 查看linux的操作系统和硬件cpu位数
- 查看linux的内存、Cpu、操作系统版本、位数。
- 查看电脑CPU的位数
- 查看操作系统位数的方法
- 查看linux操作系统的位数
- 查看Ubuntu操作系统的位数
- Linux CPU位数&操作系统位数
- CPU位数和操作系统位数
- Linux查看操作系统位数、CPU架构、个数、核数
- 查看系统的CPU的位数
- 查看CPU和系统内核的位数
- Linux命令 查看操作系统版本&&查看操作系统的位数
- windows查看cpu位数
- 查看CPU位数
- Maven系列2--pom.xml 配置详解
- 怎样实现使用c++将图片存入mongodb数据库再取出来
- 浅析百度搜索引擎白皮书
- POJ 2528 Mayor's posters?(线段树成段更新+离散化)
- js浮点数精度问题
- 查看CPU与操作系统的位数
- 用R软件绘制中国分省市地图
- hdu-oj 1678 Shopaholic
- HDU1531 King
- Android—— 4.2 Vold挂载管理_VolumeManager (三)
- Android Filter类--线程间的通信
- Java序列化
- 读写锁ReadWriteLock的基本使用,创建一个缓冲池。
- 《深度探索C++对象模型》读书笔记之执行期语意学