搜档网
当前位置:搜档网 › PE结构详解(64位和32位的差别)

PE结构详解(64位和32位的差别)

PE结构详解(64位和32位的差别)
PE结构详解(64位和32位的差别)

1 基本概念下表描述了贯穿于本文中的一些概念:

图1 解释了Microsoft PE可执行文件格式:

PE文件总体上分为“头”和“节”。“头”是“节”的描述、简化、说明,“节”是“头”的具体化。

3 文件头

PE文件的头分为DOS头、NT头、节头。注意,这是本人的分法,在此之前并没有这种分法。这样分法会更加合理,更易理解。因为这三个部分正好构成SizeOfHeaders所指的范围,所以将它们合为“头”。这里的3个头与别的文章的头的定义会有所区别。

节头紧跟在NT头后面。

3.1 DOS头(PE文件签名的偏移地址就是大小)

用记事本打开任何一个镜像文件,其头2个字节必为字符串“MZ”,这是Mark Zbikowski的姓名缩写,他是最初的MS-DOS设计者之一。然后是一些在MS-DOS下的一些参数,这些参数是在MS-DOS下运行该程序时要用到的。在这些参数的末尾也就是文件的偏移0x3C(第60字节)处是是一个4字节的PE文件签名的偏移地址。该地址有一个专用名称叫做“E_lfanew”。这个签名是“PE00”(字母“P”和“E”后跟着两个空字节)。紧跟着E_lfanew 的是一个MS-DOS程序。那是一个运行于MS-DOS下的合法应用程序。当可执行文件(一般指exe、com文件)运行于MS-DOS下时,这个程序显示“This program cannot be run in DOS mode(此程序不能在DOS模式下运行)”

这条消息。用户也可以自己更改该程序,有些还原软件就是这么干的。同时,有些程序既能运行于DOS又能运行于Windows下就是这个原因。Notepad.exe整个DOS头大小为224个字节,大部分不能在DOS下运行的Win32文件都是这个值。MS-DOS程序是可有可无的,如果你想使文件大小尽可能的小可以省掉MS-DOS程序,同时把前面的参数都清0。

3.2 NT头(244或260个字节)

紧跟着PE文件签名之后,是NT头。NT头分成3个部分,因为第2部分在32与64位系统里有区别,第3部分虽然也是头,但实际很不像“头”。

第1部分(20个字节)

第2部分(96或112个字节)

第3部分数据目录(128个字节)

Windows子系统

为NT头第2部分的Subsystem域定义了以下值以确定运行镜像所需的Windows子系统(如果存在):

DLL特征

为NT头的DllCharacteristics域定义了以下值:

每个数据目录给出了Windows使用的表或字符串的地址和大小。这些数据目录项全部被被加载进内存以备系统运行时使用。数据目录是按照如下格式定义的一个8字节结构:

typedef struct

DWORD VirtualAddress; //数据的RVA

DWORD Size; //数据的大小

typedef ENDS

第1个域——VirtualAddress,实际上是表的RVA。相对镜像基址偏移地址。NT头第2部分的ImageBase

第2个域给出了表的大小(以字节计)。数据目录组成了NT头的最后一部分。

Certificate Table域指向属性证书表。它的第一个域是一个文件指针,而不是通常的RVA。

3.3 节头

在镜像文件中,每个节的RVA值必须由链接器决定。这样能够保证这些节位置相邻且按升序排列,并且这些RVA 值必须是NT头中SectionAlignment域的倍数。

每个节头(节表项)格式如下,共40个字节:

第25标志表明节中重定位项的个数超出了节头中为每个节保留的16位所能表示的范围(也就是65535个函数)。如果设置了此标志并且节头中的NumberOfRelocations域的值是0xffff,那么实际的重定位项个数被保存在第一个重定位项的VirtualAddress域(32位)中。如果设置了第25标志但节中的重定位项的个数少于0xffff,则表示出现了错误。

4 一些注意信息

1.PE头是怎么计算的?

SizeOfHeaders所指的头是从文件的第1个字节开始算起的,而不是从PE标记开始算起的。快速的计算方法是从文件的偏移0x3C(第59字节)处获得一个4字节的PE文件签名的偏移地址,这个偏移地址就是本文所定义的DOS头的大小。NT头在32位系统是244字节,在64位系统是260字节。节头的大小由NT头的第1部分的NumberOfSections(节的数量)*40字节(每个节头是40字节)得出。如此,DOS头、NT头、节头3个头的大小加起来并向上舍入为FileAlignment(文件对齐)的正整数倍的最小值就是SizeOfHeaders(头大小)值。

2.节数量的问题

Windows读取NumberOfSections的值然后检查节表里的每个结构,如果找到一个全0结构就结束搜索,否则一直处理完NumberOfSections指定数目的结构。没有规定节头必须以全0结构结束。所以加载器使用了双重标准——全0、达到NumberOfSections数量就不再搜索了。

3.未初始化问题

①未初始化数据在文件中是不占空间的,但在内存里还是会占空间的,它们依然依据指定的大小存在内存里。所以说未初始化数据只在文件大小上有优势,在内存里与已初始化数据是一样的。

②未初始化数据的方法有2种:1是通过节头的VirtualSize>SizeOfRawData。未初始化数据的大小就是VirtualSize-SizeOfRawData的值。2是节特征的标志置为“此节包含未初始化的数据”,这时SizeOfUninitializedData 才会非0。现在都使用第1种,把它们集成到.data里面可以加快速度。

4.已初始化问题

数据目录里面所对应的块中除了属性证书表、调试信息和几个废除的目录项外,全都属于SizeOfInitializedData(已初始化数据大小)范围。当然,已初始化数据不只这些,还可以是常见的代码段等等。

5.节对齐的问题

如果NT头的SectionAlignment域的值小于相应操作系统(有些资料说是根据CPU来的,这不一定。因为CPU 本身就允许改分页大小,只是大部分时候操作系统是用CPU默认值的。x86平台默认页面大小是4K。IA-64平台默认页面大小是8K。MIPS平台默认页面大小是4K。Itanium平台默认页面大小是8K。)平台的页面大小,那

么镜像文件有一些附加的限制。对于这种文件,当镜像被加载到内存中时,节中数据在文件中的位置必须与它在内存中的位置相等,因此节中数据的物理偏移与RVA相同。

6.镜像大小

SizeOfImage所代表的内存镜像大小没有包含属性证书表和调试信息,这是因为加载器并不将属性证书和调试信息映射进内存。同时加载器规定,属性证书和调试信息必须被放在镜像文件的最后,并且属性证书表在调试信息节之前。

7.数据的组织

CPU的段主要分为4个:代码段、数据段、堆栈段、附加段。而操作系统给程序员留下只有代码段和数据段,堆栈段和附加段就由系统自行处理了,我们不用管。PE文件的数据组织方式是以BaseOfCode、BaseOfData为基准,以节为主体,以数据目录为辅助。

①BaseOfCode、BaseOfData是与后面相应的代码节、数据节的VirtualAddress一致。(这里的数据节是狭义的数据节,是特指代码段、数据目录所指定的数据除外的那一部分,也就是我们编程时定义的常量、变量、未初始化数据等)

②所有的代码、数据都必须在节里面,否则就算是代码基址、数据基址、数据目录都有指定,而节头里没有指定,加载器也会报错,不能运行

③导入函数、导出函数、资源、重定位表等是为了辅助程序主体的,这些都由系统负责处理

5 特殊的节

下表描述了保留的节以及它们的属性,后面是对出现在可执行文件中的节的详细描述。这些节是微软的编译产品所定义的不是系统定义的,实际可以不拘泥于此。

5.1 .edata节

文件A的函数K被文件B调用时,函数K就称为导出函数。导出函数通常出现在DLL中,也可以是exe文件。下表描述了导出节的一般结构。

当其它镜像文件通过名称导入函数时,Win32加载器通过导出名称指针表来搜索匹配的字符串。如果找到,它就查找导出序数表中相应的成员(也就是说,将找到的导出名称指针表的索引作为导出序数表的索引来使用)来获取与导入函数相关联的序数。获取的这个序数是导出地址表的索引,这个索引对应的元素给出了所需函数的实际位置。每个导出函数都可以通过序数进行访问。

当其它镜像文件通过序数导入函数时,就不再需要通过导出名称指针表来搜索匹配的字符串。因此直接使用序数效率会更高。但是导出名称容易记忆,它不需要用户记住各个符号在表中的索引。

5.1.1 导出目录表

导出目录表是导出函数信息的开始部分,它描述了导出函数信息中其余部分的内容。

Forwarder RVA导出了其它镜像中定义的函数,使它看起来好像是当前镜像导出的一样。因此对于当前镜像来说,这个符号同时既是导入函数又是导出函数。

例如对于Windows XP系统中的Kernel32.dll文件来说,它导出的“HeapAlloc”被转发到“NTDLL.RtlAllocateHeap”。这样就允许应用程序使用Windows XP系统中的Ntdll.dll模块而不需要实际包含任何相关的导入信息。应用程序的导入表只与Kernel32.dll有关。

导出地址表的的值有时为0,此时表明这里没有导出函数。这是为了能与以前版本兼容,省去修改的麻烦。

5.1.3 导出名称指针表

导出名称指针表是由导出名称表中的字符串的地址(RVA)组成的数组。二进制进行排序的,以便于搜索。

只有当导出名称指针表中包含指向某个导出名称的指针时,这个导出名称才算被定义。换句话说,导出名称指针表的值有可能为0,这是为了能与前面版本兼容。

5.1.4 导出序数表

导出序数表是由导出地址表的索引组成的一个数组,每个序数长16位。必须从序数值中减去Ordinal Base域的值得到的才是导出地址表真正的索引。注意,导出地址表真正的索引真正的索引是从0开始的。由此可见,微软弄出Ordinal Base是找麻烦的。导出序数表的值和导出地址表的索引的值都是无符号数。

导出名称指针表和导出名称序数表是两个并列的数组,将它们分开是为了使它们可以分别按照各自的边界(前者是4个字节,后者是2个字节)对齐。在进行操作时,由导出名称指针这一列给出导出函数的名称,而由导出序数这一列给出这个导出函数对应的序数。导出名称指针表的成员和导出序数表的成员通过同一个索引相关联。

5.1.5 导出名称表(Export Name Table,ENT)

导出名称表的结构就是长度可变的一系列以NULL结尾的ASCII码字符串。导出名称表包含的是导出名称指针表实际指向的字符串。这个表的RVA是由导出名称指针表的第1个值来确定的。这个表中的字符串都是函数名称,其它文件可以通过它们调用函。

5.1.6 举例

①用序数调用

当可执行文件用序数调用函数时,该序数就是导出函数地址表的真实索引。如果索引是错误的就有可能出现不可预知的错误。最著名的例子就是Windows XP在升级Server 2补丁之后,有很多程序都不能运行就是这个原因。微软用序数这种方法被大多数危险程序(病毒、木马)所引用,同样的微软自己也用这种方法来使用一些隐含的函数。最后受害者还是广大的用户,因为使用序数方法的绝大部分程序是有着不可告人的目的的。

②用函数名调用

当可执行文件用函数名调用时,加载器会通过AddressOfNames以2进制的方法找到第一个相同的函数名。假如找到的是第X个函数名,则在AddressOfNameOrdinals中取出第X个值,该值再减去Ordinal Base则为函数地址的真实索引。

5.2.idata节

首先,您得了解什么是导入函数。一个导入函数是被某模块调用的但又不在调用者模块中的函数,因而命名为“import(导入)”。导入函数实际位于一个或者更多的DLL里。调用者模块里只保留一些函数信息,包括函数名及其驻留的DLL名。现在,我们怎样才能找到PE文件中保存的信息呢? 转到data directory 寻求答案吧。

文件中导入信息的典型布局如下:

典型的导入节布局

5.2.1 导入目录表

导入目录表是由导入目录项组成的数组,每个导入目录项对应着一个导入的DLL。最后一个导入目录项是空的(全部域的值都为NULL),用来指明目录表的结尾。

每个导入目录项的格式如下:

导入查找表是由长度为32位(PE32)或64位(PE32+)的数字组成的数组。其中的每一个元素都是位域,其格式如下表所示。在这种格式中,位31(PE32)或位63(PE32+)是最高位。这些项描述了从给定的DLL导入的所有函数。最后一个项被设置为0(NULL),用来指明表的结尾。

对于ARM、PowerPC、SH3和SH4 Windows CE平台来说,其函数表项格式如下:

对于x64和Itanium平台来说,其函数表项格式如下:

Block Size域后面跟着数目不定的Type/Offset位域。它们中的每一个都是一个WORD(2字节),其结构如下:

对应于预保留的SEH加载配置结构的数据目录项必须为加载配置结构指定一个特别的大小,因为操作系统加载器总是希望它为这样一个特定值。事实上,这个大小只是用于检查这个结构的版本。为了与Windows XP以及以前版本的Windows兼容,x86镜像文件中这个结构的大小必须为64。

5.5.2 加载配置结构布局

用于32位和64位PE文件的加载配置结构布局如下:

①资源目录表是一个16字节组成的结构。其第一个字节又称为“根节点”。其前的12字节虽然有定义,但加载器并不理会,所以任何值都可以。

②第1层目录(资源目录项)是资源类型,微软已经定义了21种。其结构是一个16字节的数组。资源目录项分为名称项和ID项,这取决于资源目录表。资源目录表指出跟着它的名称项和ID项各有多少个(表中所有的名称项在所有的ID项前面)。表中的所有项按升序排列:名称项是按不区分大小写的字符串,而ID项则是按数值。第0-3字节表示资源类型的名称字符串的地址或是32位整数,第4-7字节表示第二层目录(资源目录项)相对于根节点的偏移。

一系列资源目录表按如下方式与各层相联系:每个目录表后面跟着一系列目录项,它们给出那个层(类型、名称或语言)的名称或标识(ID)及其数据描述或另一个目录表的地址。如果这个地址指向一个数据描述,那么那个数据就是这棵树的叶子。如果这个地址指向另一个目录表,那么那个目录表列出了下一层的目录项。

一个叶子的类型、名称和语言ID由从目录表到这个叶子的路径决定。第1个表决定类型ID,第2个表(由第一个表中的目录项指向)决定名称ID,第3个表决定语言ID。

.rsrc节的一般结构如下:

Java32位和64位区别

Java开发平台下如何区分JDK,Tomcat,eclipse的32位与64版本 当你想下载Linux、JDK、Tomcat、eclipse时,你是下载32位版本还是64位版本?64位版本有两种,应该选哪一个? 当你看到这些内容:x86、x64、x86-32、x86-64、ia64、i80386、i80486、i80586、i80686,知道是干什么的吗? 这事儿要先从CPU说起: ------------------------------- IA-32架构与IA-64架构 IA是Intel Architecture(英特尔体系结构)的英语缩写。 IA-32架构下有32位CPU,也64位CPU。(我们经常使用的CPU) IA-64架构下有Intel64的位CPU (只有服务器使用的CPU) ------------------------------- IA-32架构: 本架构的CPU都采用X86指令 Intel、AMD、Cyrix等厂家都生产使用X86指令集的CPU 其中32位(x86-32)的CPU有:i80386、i80486、i80586、i80686、统称i80x86、简称x86。其中64位(x86-64,EM64T)的CPU有:2006年以后生产的PC机CPU都是64位的。简称x64 x86-64是AMD在其64位处理器系列中采用的技术 EM64T是Intel在其64位处理器系列中采用的技术 x86-64与EM64T都差不多,都是64位。最大的优点就是可以全面兼容以前的32位x86指令的应用程序,因为都是IA-32架构架构。 ------------------------------- IA-64架构: IA-64架构是英特尔为了全面提高以前IA-32位处理器的运算性能,是Intel和Hp共同开发了6年的64位CPU架构,是专为服务器市场开发的一种全新的处理器架构,它放弃了以前的IA-32架构(x86系统CPU采用的架构),认为它严重阻碍了处理器的性能提高。它的最初应用是英特尔的Itanium(安腾)系列服务器处理器,现在最新的Itanium 2系列处理器也是采用这一架构的。由于它不能很好地解决与以前32位应用程序的兼容,所以应用受到较大的限制,尽管目前Intel采取了各种软、硬方法来弥补这一不足,但随着AMD Operon处理器的全面投入,Intel 的IA-64架构的这两款处理器前景不容乐观。 ------------------------------- RISC架构 采用这一架构的仍是IBM、SUN和HP等。不过近几年由于这一处理器架构标准没有完全统一、处理器的发展和应用非常缓慢,使得原来本占有的绝大多数中高档服务器市场被IA架构瓜分了大部分江山,已是日趋衰落。目前连这几家服务器厂商也开始了自己放弃,转投IA旗下,推出越来越多的IA架构服务器,以保生存。 目前采用这一架构的主要服务器处理器有IBM的Power4、Compaq Alpha 21364、HP PA-8X00、Sun的UltraSPARC III、SGI的MIPS 64 20Kc等。 ------------------------------- 说完了CPU,现在说一说软件,下载时如何选择,主看下面的示例: SUN JDK:

16位、32位和64位操作系统的区别

16位、32位和64位操作系统的区别 我们这里先讲32bit与64bit系统的区别: 大体上来讲,64位的系统比32位的系统计算处理能力更精确更加强.-----------用计算器计算时有64位数字可以显示出来,而我们普通的32位系统最精确只能显示32个数字,这是一个小的区别.---------最主要的区别就是64位的XP需要你的CPU也是64位的.64位的技术比32位先进,但由于配套的相关的软硬件技术尚未成熟,很多情况下64位系统只能运行32位软件,现在的64位系统就象是一部跑车由于没有公路只能在农田里跑一样. --32位、64位代表的是使用cpu位数(64,32) 有时候人们怀疑一个系统的底层结构能否保证这个系统在被使用时达到安全而高效,64位版本的Windows 在这方面就比较完美。Windows XP和Windows Server 2003都是运行64位硬件的64位版本操作系统。64位Windows操作系统运行64位代码,同时通过使用WoW64 (Windows on Windows 64)也能运行32位代码。 你看,这并不是什么大问题,毕竟,32位版本的不同Windows操作系统都用来同时运行32位和16位代码。(技术上说,并不是同时运行,相关解释在以后的技巧中会展示给大家) 32位版本的Windows在如何允许32为和16位代码并肩运行方面有着很复杂的机制。然而,这个系统被设计成无论你是系统管理员还是临时用户,你都不需要知道这些机制如何运行。 但是64位版本的Windows就不同了。从一个用户的立场上看,64位应用程序和32位应用程序简单地同时运行,没有什么特殊的。但是对于一个管理员(和帮助桌面用户的人员)来说,这其中就有很大不同了:32位代码与64位代码相隔离。这个隔离是如此重要以至于64位版本的Windows有两个注册表,一个是针对64位,一个是针对32位。 尽管64位版本的Windows XP和Windows Server 2003看起来在操作时候和它们32位的版本几乎同样的,但是在表象之下其实是有很大不同的。如果你在64位版本的Windows下按照32位版本一样来执行某些程序,你可能引起一些麻烦。 --------- 16、32、64位是指cpu可寻址的长度。例如32位计算机,CPU可寻址的范围是0到2的32次方减1,也就是说内存最大可达2的32次方个字节,也就是4GB.

如何知道电脑安装win7时该装32位还是64位

如何知道电脑安装win7时该装32位还是64位? 64位与32位的区别(最近装了个64位的Win7,所以上来让大家知道知道) 64位与32位的区别 1.64bit CPU拥有更大的寻址能力,最大支持到16GB内存,而32bit只支持4G内存 2.64位CPU一次可提取64位数据,比32位提高了一倍,理论上性能会提升1倍。但这是建立在64bit操作系统,64bit软件的基础上的。 64位处理器之失 ※硬件———缺乏驱动程序,很多现有硬件无法使用 在目前的情况下,大部分厂商不会积极的开发64位Windows驱动,除非64位WindowsXP 已经在市场上较普及,或者拥有64位Windows驱动的产品的市场价格要高于普通产品。不管怎样,64位WindowsXP的用户都会在相当长的一段时间内缺少必要的驱动。目前,市场上仅有A TI全面推出了64位Windows的显卡驱动,而另一位显卡芯片巨头nVidia只推出了一部分产品的64位Windows驱动。即使是ATI的驱动,也有相当多的Bug,据用户反映兼容性和稳定性都有待提升。 其他硬件,例如声卡、SCSI卡、电视卡等很多设备,以及打印机、扫描仪等很多外设都因为缺少驱动程序而不能使用。这一点有些类似Windows2003刚刚推出的时候,只不过Windows2003因为也是32位架构,比较容易解决,有些设备强行使用WindowsXP的驱动即可,但是Windows64位版不能这样替代。加之按照惯例,普通厂商更新一次驱动的周期是两年,所以,在选择64位WindowsXP之前,你必须小心地避开这些“地雷”。 ※软件———操作系统不是问题,但是软件出现不兼容难题 微软已经正式推出了Windows64位版,这让很多担心64位系统无软件可用的人吃了一颗“定心丸”,但是事情并未简单的结束,仅有64位版本的Windows只解决了操作系统平台的问题,就好像已经铺好了高速公路,还需要很多专门为64位架构专门设计的“快车”软件在上面运行。很遗憾,目前专门为64位设计的应用软件凤毛麟角,就连微软公司的大部分软件都仍然是32位架构的,目前仅有MSSQL数据库等很少几种,而像流行的Office 软件都仍然没有为64位系统优化。 最难受的是,一些与硬件相关的软件,如宽带上网的客户端、掌上电脑及智能手机的桌面软件均有极大机会出现不兼容问题,这样您在64位的Windows下将无法宽带上网,或者无法同步您的手机或者掌上电脑。另一种,最容易出问题的软件就是防毒软件,基本上所有以前您买的32位防毒软件将没有一种可以在64位Windows使用,必需购买专门为64位设计的新版,目前市面上仅有寥寥几种,据悉微软也可能介入64位防毒市场,所以

谁知道 WIN7系统 32位和64位 有什么区别

谁知道WIN7系统32位和64位有什么区别? 最佳答案 简单的说x86代表32位操作系统x64代表64位操作系统。 如果你的CPU是双核以上,那肯定支持64位操作系统了 如果你的电脑内存大于4G,那就要用64位的系统了,因为32位的Windows 7也好,Vista也好,最大都只支持3.25G的内存。而64位的windows 7最大将支持128G的内存。 以下是引用网络上一段文字: 64bit计算主要有两大优点:可以进行更大范围的整数运算;可以支持更大的内存。 不能因为数字上的变化,而简单的认为64bit处理器的性能是32bit 处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在32bit应用下性能更强。所以要认清64bit处理器的优势,但不可迷信64bit。 更详细解答: 内存这是64位系统最显著的优点,它可以使用超过4GB的内存。大多数新的台式机和笔记本电脑至少拥有4GB的内存。问题是,像Vista和Win 7的32位版本只能够用大约3GB的内存。相比之

下,64位的Windows 不仅可以利用高达192GB的内存,还能够使用的内存映射取代BIOS的功能,从而使操作系统真正使用完整的 4GB的。因此,如果您安装Win7 x64,对于有的4GB内存的机器你不会浪费1GB内存。 个人认为,3GB不足够用于日常应用只是一个时间问题。一个例子是的Win 7的XP模式功能,它可以让你用旧的应用在一个虚拟机运行在Windows XP中。此功能可以用于各种目的,例如运行Office 2007和Office 2003年在同一台计算机上同时进行,或者是IE(对WEB开发很有用)。但WinXP模式需要至少512MB~1GB内存才能正常运行,因此XP模式非常吃内存。因此,如果您现在部署Windows 7 32位,那么你可能会很快要移动到64位,仅仅因为你必须升级您的机器与新的内存。我自己的笔记本电脑拥有8GB的内存,这是因为为了自己开发的程序在每个虚拟机环境下都能运行。我不想浪费内存中每一个字节。 64位真提供更好的性能了么? 我猜很多人认为64位处理器要快于32位处理器。因为有这样一个事实,从8位过渡到16位,从16位过渡到32位的过程确实带来了一些性能提升。基于以上的原因,是否可以认为64位的处理器可以更快?

怎样区别32位与64位的系统

怎样区别32位与64位的系统 2009年10月24日星期六 20:43 一、查看系统是32位还是64位的方法: 开始菜单——运行——CMD——systeminfo——系统类型——x86 pc则表示为32位系统(x64则表示为64位系统) 开始菜单——运行——CMD——winmsd——系统类型——x86 pc则表示为32位系统(x64则表示为64位系统) 二、32位系统与64位系统的区别: Windows XP、Windows Vista、Windows Server 2008,以及处于测试阶段的Windows 7,都有32位(x86)和64位(x64)两种版本。面对两种版本光盘镜像下载,常常让有些网友不知所措:究竟选择哪个版本更好一些?下面,我用最简洁的文字尽可能作最详尽的回答:两者之间存在的“五大不同”。与此同时,着重说明Microsoft Windows64位(x64)操作系统,相对于32位(x86)操作系统的最大优势和劣势是什么? 第一,设计初衷不同。64位操作系统的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求。换句简明的话说就是:它们是高科技人员使用本行业特殊软件的运行平台。而32位操作系统是为普通用户设计的。 第二,要求配置不同。64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能。32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。当然,32位操作系统安装在64位电脑上,其硬件恰似“大马拉小车”:64位效能就会大打折扣。 第三,运算速度不同。64位CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32 位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升1倍。 第四,寻址能力不同。64位处理器的优势还体现在系统对内存的控制上。由于地址使用的是特殊的整数,因此一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。比如,Windows Vista x64 Edition支持多达128 GB的内存和多达16 TB的虚拟内存,而32位CPU和操作系统最大只可支持4G内存。 第五,软件普及不同。目前,64位常用软件比32位常用软件,要少得多的多。道理很简单:使用64位操作系统的用户相对较少。因此,软件开发商必须考虑“投入产出比”,将有限资金投入到更多使用群体的软件之中。这也是为什

怎样查看计算机是32位还是64位操作系统

怎样查看计算机是32位还是64位操作系统 1.首先单击左下方的“开始”按钮,然后依次展开“控制面板—系 统” 2.这时出现了“查看有关计算机的基本信息”窗口,我们将滚动条拉到最下面,有一项 “系统类型”,如果你的系统是32位这里就会显示32位操作系统,如果是64位则会显示64位操作系统。

Windows xp 方法一: 1.在桌面上“我的电脑”鼠标右键单击“属性” 2.弹出了标题名为“系统属性”的窗口,在“常规”选项卡下记录您的系统是32位还是 64位的信息。如果您的系统是64位的,会明确标示出“x64 Edition”,否则您的系统就是32位 的。 方法二:

1.单击“开始”,然后单击“运 行” 2.在“打开”框中,键入,然后单击“确 定” 3.在“项目”下面的右窗格中找到“处理器”。注意数值。 4.如果“处理器”对应的值是以“x86”开头的,则该计算机正在运行的是 Windows 操作 系统的 32 位版本。

5.如果“处理器”对应的值是以“ia64”开头的,则该计算机正在运行的是 Windows 操 作系统的 64 位版本。 6.或者:在“系统摘要”右窗格中找到“系统类型” 7.如果显示“基于 X86 的PC”,则该计算机正在运行的是 Windows 操作系统的32位版 本; 8.如果为“基于 Itanium 的系统”,则该计算机正在运行的是 Windows 操作系统的64 位版本。 方法三:

1.开始>运行中键入“cmd”命令 2.然后在“命令提示符”窗口中输入“systeminfo”,按回车

3.如果您的系统是64位的,会在“OS 名称: Microsoft Windows XP Professional”一 行后明确标示出“x64 Edition”,否则您的系统就是32位的。 方法四: 1.开始>运行中输入“winver”(系统版本号命令)

Win7_32位与64位区别

内存 这是64位系统最显著的优点,它可以使用超过4GB的内存。大多数新的台式机和笔记本电脑至少拥有4GB的内存。问题是,像Vista和Win 7的32位版本只能够用大约3GB 的内存。相比之下,64位的Windows 不仅可以利用高达192GB的内存,还能够使用的内存映射取代BIOS的功能,从而使操作系统真正使用完整的4GB的。因此,如果您安装Win7 x64,对于有的4GB内存的机器你不会浪费1GB 内存。 个人认为,3GB不足够用于日常应用只是一个时间问题。一个例子是的Win 7的XP模式功能,它可以让你用旧的应用在一个虚拟机运行在Windows XP中。此功能可以用于各种目的,例如运行Office 2007和Office 2003年在同一台计算机上同时进行,或者是IE(对WEB开发很有用)。但WinXP模式需要至少512MB~1GB内存才能正常运行,因此XP模式非常吃内存。因此,如果您现在部署Windows 7 32位,那么你可能会很快要移动到64位,仅仅因为你必须升级您的机器与新的内存。我自己的笔记本电脑拥有8GB 的内存,这是因为为了自己开发的程序在每个虚拟机环境下都能运行。我不想浪费内存中每一个字节。

64位真提供更好的性能了么? 我猜很多人认为64位处理器要快于32位处理器。因为有这样一个事实,从8位过渡到16位,从16位过渡到32 位的过程确实带来了一些性能提升。基于以上的原因,是否可以认为64位的处理器可以更快? 有这么一个例子,很多32位处理器支持S***指令集,但是大多数程序员根本不会使用它们,因为这会妨碍到不支持这些指令集的电脑运行他们编译的程序(e.g.SSE2可以令Zip压缩更快,但是最常用的3个压缩软件都没有使用它)。 因此,只有应用了64位优化的64位程序才会有性能提升。不幸的是大多数Windows应用程序并没有做这个优化。 不过最近一年来,新生了很多的64位应用程序,但不要错误地认为,它们将比32位版本更快。因为通常情况下,这个64位版本的制作,仅是因为32位版本无法正常运行在64位Windows操作系统上。但是有些对64位有性能依赖的程序,比如数学计算(e.g.Mathlab)和各类视频处理软件,或者软件开发者明确的支持64位(e.g.7zip),那么速度可

32位操作系统运行快还是64位系统运行快

32位操作系统运行快还是64位系统运行快 关于32位操作系统运行快还是64位系统运行快这个问题,在问题的提法上本身就有问题。其实正确的问法应该是电脑系统装32位系统好还是64位系统好。下面小编就为大家介绍一下这个问题的具体解答吧,欢迎大家参考和学习。 这里有个重要的条件,就是硬件条件相同且都支持64位和内存足够,这是目前主流硬件的基本配置了。问题中的渲染一词在同等条件下仍然是程序运行速度的问题(需要排除依赖显卡的独立部分,因为在Windows 7上很多渲染工作已转交给GPU来完成),天缘下面的回答也必须要以这个为节点或条件。问题2的游戏载入速度同问题1中的渲染,还有个比较特殊的地方,就是还跟DIRECTX版本和驱动等相关,所以也必须规定软件条件必须相同,只有位上差异,故仍是哪个更快的问题。 一、计算机操作系统和软件角度 首先看操作系统和上层软件,无论64位OS还是64位软件都是必须按照64位格式进行编译,也就是默认的字长64位,运行时,除了一些特殊的独立计算,比如位运算,其它非标准字长变

量运行时都是需要进行转换的。32位也是一样,这一点还看不出来哪个优劣(只指速度),即使硬件条件相同,实际上还是有速度上的差异,那就看谁的格式转换最少,这就决定于应用程序的类型和设计方法了。 操作系统也是软件,我们再看一下编译后的文件大小,大家可以看一下Windows 7 64位版安装文件大小就知道了,肯定要比32位要大,这里问题就来了,同样一个个文件(打个比方),32位可能是1M,而64位的可能就是2M,那么从硬盘上读取就存在时间差异。所以文件大是个劣势。 到这里就可以看出不同版本OS或软件实际运行效率几乎相当(实际上程序的差异主要就是在类型转换上),速度因素主要决定于硬件,下面就来看一下硬件因素有哪些。

Windows7和XP的32位和64位的区别

Windows7和XP的32位和64位的区别 x86是对基于intel处理器的系统的标准缩写。X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,是一个intel通用计算机系列的编号,也标识一套通用的计算机指令集合,由于早期intel的CPU编号都是如8086,80286来编号,由于这整个系列的CPU 都是指令兼容的,所以都用X86来标识所使用的指令集合如今的奔腾,P2,P4,赛扬系列都是支持X86指令系统的,所以都属于X86家族. 这里的64位技术是相对于32位而言的,这个位数指的是CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。64bit处理器并非现在才有的,在高端的RISC(Reduced Instruction Set Computing,精简指令集计算机)很早就有64bit处理器了,比如SUN公司的UltraSparc Ⅲ、IBM公司的POWER5、HP公司的Alpha等。 简单的说x86代表32位操作系统x64代表64位操作系统。 64bit计算主要有两大优点:可以进行更大范围的整数运算;可以支持更大的内存。不能因为数字上的变化,而简单的认为64bit处理器的性能是32bit处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit处理器,目前情况下也是在32bit应用下性能更强。所以要认清64bit处理器的优势,但不可迷信64bit。 要实现真正意义上的64位计算,光有64位的处理器是不行的,还必须得有64位的操作系统以及64位的应用软件才行,三者缺一不可,缺少其中任何一种要素都是无法实现64位计算的。目前,在64位处理器方面,Intel和AMD两大处理器厂商都发布了多个系列多种规格的64位处理器;而在操作系统和应用软件方面,目前的情况不容乐观。因为真正适合于个人使用的64位操作系统现在就只有Windows XP X64,而Windows XP X64本身也只是一个过渡性质的64位操作系统,在Windows V ista发布以后就将被淘汰,而且Windows XP X64本身也不太完善,易用性不高,一个明显的例子就是各种硬件设备的驱动程序很不完善,而且现在64位的应用软件还基本上没有,确实硬件厂商和软件厂商也不愿意去为一个过渡性质的操作系统编写驱动程序和应用软件。所以要想实现真正的64位计算,恐怕还得等到Windows Vista普及一段时间之后才行。 目前主流CPU使用的64位技术主要有AMD公司的AMD64位技术、Intel公司的EM64T 技术、和Intel公司的IA-64技术。其中IA-64是Intel独立开发,不兼容现在的传统的32位计算机,仅用于Itanium(安腾)以及后续产品Itanium 2,一般用户不会涉及到,因此这里仅对AMD64位技术和Intel的EM64T技术做一下简单介绍。 AMD64的位技术是在原始32位X86指令集的基础上加入了X86-64扩展64位X86指令集,使这款芯片在硬件上兼容原来的32位X86软件,并同时支持X86-64的扩展64位计算,使得这款芯片成为真正的64位X86芯片。这是一个真正的64位的标准,X86-64具有64位的寻址能力。 X86-64新增的几组CPU寄存器将提供更快的执行效率。寄存器是CPU内部用来创建和储存CPU运算结果和其它运算结果的地方。标准的32- bit x86架构包括8个通用寄存器(GPR),AMD在X86-64中又增加了8组(R8-R9),将寄存器的数目提高到了16组。X86-64寄存器默认位64-bit。还增加了8组128-bit XMM寄存器(也叫SSE寄存器,XMM8-XMM15),将能给单指令多数据流技术(SIMD)运算提供更多的空间,这些128位的寄存器将提供在矢量和标量计算模式下进行128位双精度处理,为3D建模、矢量分析和虚拟现实的实现提供了硬件基础。通过提供了更多的寄存器,按照X86-64标准生产的CPU 可以更有效的处理数据,可以在一个时钟周期中传输更多的信息。 Intel官方是给EM64T这样定义的:EM64T全称Extended Memory 64 Technology,即扩展64bit内存技术。EM64T是Intel IA-32架构的扩展,即IA-32e(Intel Architectur-32

win7 64位 系统和 win 7 32位 系统的区别

Win7 x64 vs Win7 x86 内存 这是64位系统最显著的优点,它可以使用超过4GB的内存。大多数新的台式机和笔记本电脑至少拥有4GB的内存。问题是,像Vista和Win 7的32位版本只能够用大约3GB的内存。相比之下,64位的Windows 不仅可以利用高达192GB的内存,还能够使用的内存映射取代BIOS的功能,从而使操作系统真正使用完整的4GB的。因此,如果您安装Win7 x64,对于有的4GB内存的机器你不会浪费1GB 内存。 个人认为,3GB不足够用于日常应用只是一个时间问题。一个例子是的Win 7的XP模式功能,它可以让你用旧的应用在一个虚拟机运行在Windows XP中。此功能可以用于各种目的,例如运行Office 2007和Office 2003年在同一台计算机上同时进行,或者是IE(对WEB开发很有用)。但WinXP模式需要至少512MB~1GB内存才能正常运行,因此XP模式非常吃内存。因此,如果您现在部署Windows 7 32位,那么你可能会很快要移动到64位,仅仅因为你必须升级您的机器与新的内存。我自己的笔记本电脑拥有8GB的内存,这是因为为了自己开发的程序在每个虚拟机环境下都能运行。我不想浪费内存中每一个字节。 64位真提供更好的性能了么? 我猜很多人认为64位处理器要快于32位处理器。因为有这样一个事实,从8位过渡到16位,从16位过渡到32位的过程确实带来了一些性能提升。基于以上的原因,是否可以认为64位的处理器可以更快? 有这么一个例子,很多32位处理器支持S***指令集,但是大多数程序员根本不会使用它们,因为这会妨碍到不支持这些指令集的电脑运行他们编译的程序(e.g.SSE2可以令Zip压缩更快,但是最常用的3个压缩软件都没有使用它)。 因此,只有应用了64位优化的64位程序才会有性能提升。不幸的是大多数Windows应用程序并没有做这个优化。 不过最近一年来,新生了很多的64位应用程序,但不要错误地认为,它们将比32位版本更快。因为通常情况下,这个64位版本的制作,仅是因为32位版本无法正常运行在64位Windows操作系统上。但是有些对64位有性能依赖的程序,比如数学计算(e.g.Mathlab)和各类视频处理软件,或者软件开发者明确的支持64位(e.g.7zip),那么速度可能较32位版本有明显的变化。 另一方面,win64不会减慢您的计算机性能。虽然类似CLR(.net底层)的程序会进行一些计算使32位程序能够运行在64位系统上,逻辑上需要花费较多的时间。但是,在实践中你会不知道其中的差别。几乎所有性能测试都可以证明,在大多数情况下不用在意64位和32位之间性能差异。 因此,更好的CPU性能不是升级到64位的理由。

电脑系统64位与32位的区别

第一,设计初衷不同。64位操作系统的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求。换句简明的话说就是:它们是高科技人员使用本行业特殊软件的运行平台。而32位操作系统是为普通用户设计的。 第二,要求配置不同。64位操作系统只能安装在64位电脑上(CPU 必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能。32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。当然,32位操作系统安装在64位电脑上,其硬件恰似“大马拉小车”:64位效能就会大打折扣。 第三,运算速度不同。64位CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升1倍。 第四,寻址能力不同。64位处理器的优势还体现在系统对内存的控制上。由于地址使用的是特殊的整数,因此一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。比如,Windows Vista x64 Edition支持多达128 GB的内存和多达16 TB的虚拟内存,而32位CPU和操作系统最大只可支持4G内存。 第五,软件普及不同。目前,64位常用软件比32位常用软件,要少得多的多。道理很简单:使用64位操作系统的用户相对较少。因此,

软件开发商必须考虑“投入产出比”,将有限资金投入到更多使用群体的软件之中。这也是为什么64位软件价格相对昂贵的重要原因(将成本摊入较少的发售之中)。 总而言之,Microsoft Windows 64位操作系统,必须“上”靠64位主机硬件的支撑,“下”靠64位常用软件的协助,才能将64位的优势发挥到极致,“三位一体”缺一不可(道理很简单:操作系统只是承上启下的运行平台)。至于64位电脑可以安装32位操作系统,64位操作系统可以安装32位软件,那是设计上的“向下兼容”,不是64位设计初衷的本来含义。

电脑装系统选择32位还是64位 32位和64位系统有什么区别

windows系统分为32位(x86)和64位(x64)两种版本,很多用户在安装系统时不知道选择32位还是64位系统,那么怎么判断电脑适合32位还是64位系统呢?32位和64位有什么区别? 一、32位和64位是什么意思 1、32位和64位表示CPU一次能处理的最大位数; 2、32位CPU只能安装32位系统,64位CPU可以安装32位和64位系统; 3、如今市面上的CPU大多数为64位,怎么看CPU是32位还是64位。 二、寻址能力 1、32位系统的最大寻址空间是2的32次方=4294967296(bit)= 4(GB)左右; 2、64位系统的最大寻址空间为2的64次方=4294967296(bit)的32次方,数值大于1亿GB; 3、也就是说32位系统的处理器最大只支持到4G内存,而64位系统最大支持的内存高达亿位数,实际使用过程中大多数的电脑32位系统最多识别3.5GB内存,64位系统最多识别128GB内存。 三、软件兼容性 1、大部分软件都是基于32位架构环境下开发,64位系统的兼容性不如32位; 2、32位系统无法运行64位软件,64位系统可以安装多数32位软件,64位系统下32位软件安装文件夹带x86区分。

四、系统体积大小 1、64位操作系统包含32位系统兼容库,既兼容64位又兼容32位的应用程序; 2、64位系统都比32位系统大的多,比如win7 64位比win7 32位系统大700M左右。 根据上述的介绍我们可以知道,如果CPU是32位,那么只能安装32位系统,如果CPU是64位,则可以安装32位或64位,除此以外还需看内存的大小,内存4G以下建议32位,因为32位系统最多识别3.5G内存,4G及以上内存建议64位系统。

windows7 32位和64位的区别

windows7 32位和64位的区别 如今安装Windows 7已经不是什么新鲜事儿了,如果你还没有装Windows 7,那未免也太Out了。说起Windows 7的好处,那真是一堆一堆的,所以别犹豫,赶紧装一个吧。 哎,等等,装之前咱得想明白了要装哪个版本的Windows 7,家庭版、专业版、旗舰版,那是萝卜白菜各有所爱,今天咱们就来真对另一种版本分类来说说,没错,就是跟计算机硬件有直接关系的32位和64位版本。 如果您是讲求效率的看客,那么请走快速通道,一句话帮您下决心,不过如果您想对32位和64位有更深一步的了解,那不妨走完整通道,看完整篇文章。 【快速通道】:如果您平时并不热衷于玩游戏,而工作中又涉及到大量的在虚拟环境下开发的情况,并且需要计算机的物理内存大于3GB,那么不妨安装64位系统试试;反之,如果您是游戏发烧友,平时并不需要那么大的内存(3G内存完全可以满足基本应用),则尝试一下32位系统。 【完整通道】:为什么在快速通道中,我们把内存的条件阀值定为3G呢?其实这和32位系统构架有关,且听我慢慢道来。 关于32位和64位系统的差别,那真是说来话长,这里我们首先要了解一下CPU的架构技术,通常我们可以看到在计算机硬件上会有X86和X64的标识,其实这是两种不同的CPU 硬件架构,x86代表32位操作系统x64代表64位操作系统。那么这个32位和64位中的“位”又是什么意思呢?相对于32位技术而言,64位技术的这个位数指的是CPU GPRs (General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集就是运行64位数据的指令,也就是说处理器一次可以运行64bit数据。举个通俗易懂但不是特别准确的例子:32位的吞吐量是1M,而64位吞吐量是2M。 64位计算有两大优点可取:可以以进行更大范围的整数运算;可以支持更大的内存。但不能因为数字上的变化,而简单的认为64位处理器的性能是32位处理器性能的两倍。实际上在32位应用下,32位处理器的性能甚至会更强,即使是64位处理器,目前情况下也是在32位应用下性能更强。所以说不要迷恋64位,64位不是一个传说,我们要清晰地分析后再决定使用32位还是64位。 大家是不是有些迷茫了?到底什么时候选择64位,什么时候选择32位?我们分成几部分来给大家逐一解释。 我们先说说内存,为什么32位的系统只能显示3G内存(实际上是3.25G)呢?这是由于系统本身的限制所造成的。32位系统对于内存的寻址能力总共就4G,而4G里还要放其他东西:比如系统BIOS,输入输出设备的地址和设定,各类接口的设定和地址等等,这些地址和设定所占用的空间要达到700M左右,因此4G内存在32位中也只能显示出3G了,但是剩下的那些内存其实也没有被浪费掉。 那么,是不是32位系统就真的不能识别出4G内存了?也不是。我们知道在内存中会有700多MB的空间被硬件地址或接口所占用,那我们能不能通过某种手段,让它们去占用硬盘上

64位系统和32位系统的区别

Windows 64位系统和32位系统的区别 第一,设计初衷不同。64位操作系统的设计初衷是为了满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求。 第二,要求配置不同。64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能。 32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。当然,32位操作系统安装在64位电脑上,其硬件恰似"大马拉小车":64位效能就会大打折扣。 第三,运算速度不同。64位CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升1倍。 第四,寻址能力不同。64位处理器的优势还体现在系统对内存的控制上。由于地址使用的是特殊的整数,因此一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。比如,Windows Vista x64 Edition支持多达128 GB的内存和多达16 TB的虚拟内存,而32位CPU和操作系统最大只可支持4G内存。 第五,软件普及不同。目前,64位常用软件比32位常用软件要少很多。道理很简单:使用64位操作系统的用户相对较少。因此,软件开发商必须考虑"投入产出比",将有限资金投入到更多使用群体的软件之中。这也是为什么64位软件价格相对昂贵的重要原因(将成本摊入较少的发售之中)。 在这里特别强调,64位电脑虽然可以安装32位操作系统,但是32位电脑绝对不能安装64位操作系统。这点至关重要务必牢记,以避免盲目下载和安装。 如果不知道自己的电脑的CPU是不是64位的,可以通过一些软件来查询,如可以使用CPU-Z来完成检测,目前最新版本是1.58。

Windows 7 32位与64位的区别

Windows 7 32位与64位的区别 Windows 7从另一种角度上来说,包含两类大版本,一个是32位,另一个则是64位。64位系统就一定强过32位吗?你是否需要64位Windows 7?32位系统和64位系统有什么区别? 在内存与CPU上的区别 首先,相信选择64位Windows 7的网友中很有大比例是内存大于或等于4GB的。在32位Windows 7下,可能会显示内存可使用3.25G,这让很多网友感到不安。没错,可寻址的内存空间确实是32位Windows 7和64位Windows 7最为显著的特点。 32位的CPU(准确的说是运行在32位模式下的CPU)只能寻址最大4GB的内存,受制于此,32位的操作系统也只能识别最大4GB的内存,由于在系统中,除了内存之外,还有很多存储设备,因此,真正可以利用的内存空间肯定小于4GB,也就是我们看到的系统属性中显示的3.xxG。 但64位CPU则有了很大改变,64位CPU的最大寻址空间为2的64次方bytes,计算后其可寻址空间达到了惊人的 16TB(treabytes),即16384GB。当然,这只是理论,从实际应用上,Windows 7 64bit的各版本分别为8GB-192GB,其中,家庭普通版能支持8GB内存,家庭高级版能支持16GB内存,而64位的Windows 7专业版、企业版和旗舰版最高可支持192GB内存。 也就是说,内存大于等于4GB的用户,由于受到32位硬件限制,因此,不能最大化的利用硬件资源,这就很有必要安装64位操作系统以最大化利用资源。 需要注意的是,64位系统需要64位CPU的支持,在安装64位Windows 7前请先确认你的CPU是否支持64位,一般而言,2006年之后购买的CPU均支持64位模式。 如果仅考虑这点,对于内存小于4GB的用户,32位Windows 7更适合大家使用,因为64位版本会占用更多的系统内存资源,起的作用适得其反了。 接下来我们再来考虑运算性能,这也是很多网友非常关注的。 理论上,64位平台上的运行性能要远超过32位平台。原因在与CPU通用寄存器的数据位宽,64位平台是64位,而32位平台是32位,也就是说,64位平台可以运行64位数据指令,处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升1倍。 相信看到这里,又会有很多用户动摇了,甚至有很多内存不足4GB的网友们想要体验下64位Windows 7的威力,但仍然有个问题。

64位机与32位机的区别

如果你的CPU是双核以上,那肯定支持64位操作系统了 如果你的电脑内存大于4G,那就要用64位的系统了,因为32位的Windows 7也好,Vista也好,最大都只支持3.25G的内存。而64位的windows 7最大将支持128G的内存。 以下是引用网络上一段文字: 64bit计算主要有两大优点:可以进行更大范围的整数运算;可以支持更大的内存。 不能因为数字上的变化,而简单的认为64bit处理器的性能是32bit处理器性能的两倍。实际上在32bit应用下,32bit处理器的性能甚至会更强,即使是64bit 处理器,目前情况下也是在32bit应用下性能更强。所以要认清64bit处理器的优势,但不可迷信64bit。 评论(515)|552923 其他1条回答 2011-01-13 16:17szh1953|四级 第一,设计初衷不同。64位操作系统的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求。换句简明的话说就是:它们是高科技人员使用本行业特殊软件的运行平台。而32位操作系统是为普通用户设计的。 第二,要求配置不同。64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能。32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。当然,32位操作系统安装在64位电脑上,其硬件恰似“大马拉小车”:64位效能就会大打折扣。 第三,运算速度不同。64位CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升1倍。第四,寻址能力不同。64位处理器的优势还体现在系统对内存的控制上。由于地址使用的是特殊的整数,因此一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。比如,Windows Vista x64 Edition支持多达128 GB的内存和多达16 TB的虚拟内存,而32位CPU和操作系统最大只可支持4G内存。 第五,软件普及不同。目前,64位常用软件比32位常用软件,要少得多的多。道理很简单:使用64位操作系统的用户相对较少。因此,软件开发商必须考虑“投入产出比”,将有限资金投入到更多使用群体的软件之中。这也是为什么64

计算机64位与32位的区别是什么意思

计算机64位与32位的区别是什么意思 64位操作系统的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需 要大量内存和浮点性能的客户需求。换句简明的话说就是:它们是 高科技人员使用本行业特殊软件的运行平台。而32位操作系统是为 普通用户设计的。 64位处理器的优势还体现在系统对内存的控制上。由于地址使 用的是特殊的整数,因此一个ALU(算术逻辑运算器)和寄存器可以 处理更大的整数,也就是更大的地址。比如, WindowsVistax64Edition支持多达128GB的内存和多达16TB的虚 拟内存,而32位CPU和操作系统最大只可支持4G内存 64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能。32位操 作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。 当然,32位操作系统安装在64位电脑上,其硬件恰似“大马拉小车”:64位效能就会大打折扣。 关于32位和64位系统的差别,那真是说来话长,这里我们首先要了解一下CPU的架构技术,通常我们可以看到在计算机硬件上会 有X86和X64的标识,其实这是两种不同的CPU硬件架构,x86代 表32位操作系统x64代表64位操作系统。那么这个32位和64位 中的“位”又是什么意思呢?相对于32位技术而言,64位技术的这 个位数指的是CPUGPRs(General-PurposeRegisters,通用寄存器) 的数据宽度为64位,64位指令集就是运行64位数据的指令,也就 是说处理器一次可以运行64bit数据。举个通俗易懂但不是特别准 确的例子:32位的吞吐量是1M,而64位吞吐量是2M。即理论上64位系统性能比32位的提高1倍。 目前,64位常用软件比32位常用软件,要少得多的多。道理很 简单:使用64位操作系统的用户相对较少。因此,软件开发商必须

相关主题