2、安装要求配置不同。64位 *** 作系统只能安装在64位计算机上,并且只在针对64位的软件时才能发挥好的性能。32位 *** 作系统是既可安装在32位计算机上,也可安装在64位计算机上。当然,此时32位的 *** 作系统是无法发挥64位硬件性能的。
3、运算速度不同。64位CPU
GPRs的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据,比32位提高了一倍,性能会相应提升。
4、寻址能力不同。64位处理器的优势还体现在 *** 作系统对内存的控制上。由于地址使用的是特殊整数,因此一个ALU和寄存器可以处理更大的整数,也就是更大的地址。比如,Windows
7 x64
Edition支持高达128GB的物理内存和16TB的虚拟内存,而32位的CPU和 *** 作系统理论上最大只可支持4GB的内存,实际上也就是3.2GB左右的内存,当然32位 *** 作系统是可以通过扩展来支持大内存的,扩展所采用的是PAE技术。
没有这类约定俗成的宏定义,因为Linux运行在很多不同的处理器以及平台上,这包括八位、十六位、三十二位、六十四位的嵌入式等平台,而理所当然地也要迎合不同平台的硬件指令集情况,在这种情况下,自然不可能有约定俗成的宏定义,正如楼上所说的,Linux更注重可移植性,所以这些东西,还是根据自己的需求来定义吧基本数据类型可以指定int的长度:类似的,还有uint32_t和uint64_t其它数据类型1,size_t:跟机器字长一样;2,off_t:32位机器下默认是32位长,这时无法对大于4G的文件偏移 *** 作,这时off_t = __off_t;如果想进行大于4G的文件偏移 *** 作,可以在程序中加入头文件之前定义这时off_t = __off64_t,具体定义在unistd.h中;对于64位机,默认就是64位长。#define _FILE_OFFSET_BITS 643,ino_t:跟机器字长一样。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)