32位、64位与Java开发研究分析
1.1 设计初衷不同
64位操作系统的设计初衷是:满足机械设计和分析、三维动画、视频编辑和创作,以及科学计算和高性能计算应用程序等领域中需要大量内存和浮点性能的客户需求。换句简明的话说就是:它们是高科技人员使用本行业特殊软件的运行平台。而32位操作系统是为普通用户设计的。
1.2 要求配置不同
64位操作系统只能安装在64位电脑上(CPU必须是64位的)。同时需要安装64位常用软件以发挥64位(x64)的最佳性能。32位操作系统则可以安装在32位(32位CPU)或64位(64位CPU)电脑上。当然,32位操作系统安装在64位电脑上,其硬件恰似“大马拉小车”:64位效能就会大打折扣。
1.3 运算速度不同
64位CPU GPRs(General-Purpose Registers,通用寄存器)的数据宽度为64位,64位指令集可以运行64位数据指令,也就是说处理器一次可提取64位数据(只要两个指令,一次提取8个字节的数据),比32位(需要四个指令,一次提取4个字节的数据)提高了一倍,理论上性能会相应提升1倍。
1.4 寻址能力不同
64位处理器的优势还体现在系统对内存的控制上。由于地址使用的是特殊的整数,因此一个ALU(算术逻辑运算器)和寄存器可以处理更大的整数,也就是更大的地址。比如,Windows Vista x64 Edition支持多达128 GB的内存和多达16 TB的虚拟内存,而32位CPU和操作系统最大只可支持4G内存。
1.5 软件普及不同
目前,64位常用软件比32位常用软件,要少得多的多。道理很简单:使用64位操作系统的用户相对较少。因此,软件开发商必须考虑“投入产出比”,将有限资金投入到更多使用群体的软件之中。这也是为什么64位软件价格相对昂贵的重要原因(将成本摊入较少的发售之中)。
总而言之,Microsoft Windows 64位操作系统,必须“上”靠64位主机硬件的支撑,“下”靠64位常用软件的协助,才能将64位的优势发挥到极致,“三位一体”缺一不可(道理很简单:操作系统只是承上启下的运行平台)。至于64位电脑可以安装32位操作系统,64位操作系统可以安装32位软件,那是设计上的“向下兼容”,不是64位设计初衷的本来含义。
1.6 总 结
在64位电脑虽然可以安装32位操作系统,但是32位电脑绝对不能安装64位操作系统。这点至关重要务必牢记,以避免盲目下载和安装。
在64位电脑运行的32位操作系统上,不能采取硬盘安装方式安装64位操作系统。如若安装,首选光盘格式化安装方式,也可采用比较繁琐的DOS安装方式。
使用虚拟机安装操作系统,实际上就是在目前运行的操作系统上安装软件。因此,在32位操作系统上不能虚拟安装64位操作系统。即便采取“曲线”方式勉强安装,其实已经脱离了底层设备的支持,是毫无疑义的。
2 32位、64位与Java开发
编译的class可以在2^N位计算机运行,只要有JVM支持就行,Java class文件是被编译为与机器无关的字节码,是一个标准,与平台无关的。
Java的每种基本类型所占存储空间大小是确定的,不会随着硬件的变化而变化,但大多数语言不是这样的,这也是比其他语言更具移植性的原因之一。
SUN的JVM,原生类型占据空间是不会变的,引用类型占据空间大小是不同的。
64位的CPU可以跑 32位或者64位的OS ,64位的OS可以跑32位或者64位的JVM,Java是跨平台的, 指得是Java编译成的class文件,可以在(32/64) .* (Oracle/IBM/…) .* (Linux/Win)等不同的JVM实现下面运行,Java源文件在不同的JVM下面不需要重新编译。但在不同的OS下面可能需要安装不同的JVM(这个程度上说,某个JVM实现不是跨平台的)。
3 64位Java开发平台搭建
当你想下载Linux、JDK、Tomcat、eclipse时,你是下载32位版本还是64位版本?64位版本有两种,应该选哪一个;当你看到这些内容:x86、x64、x86-32、x86-64、ia64、i80386、i80486、i80586、i80686,知道是干什么的吗?
3.1 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等。
3.2 SUN JDK
jdk-6u25-windows-i586.exe 适用于x86-32(简称x86)的CPU,要586以上的CPU,因为x86-64的CPU能向下兼容32位,所以运行在x86-64CPU也是可以的,但是以32位运行的。
jdk-6u25-windows-x64.exe 适用于x86-64,EM64T 的64位CPU。
jdk-6u25-windows-ia64.exe 适用于IA-64Itanium(安腾)系列服务器CPU
3.3 Tomcat
apache-tomcat-6.0.32-windows-x86.zip 适用于x86-32(简称x86)的32位CPU,因为x86-64的CPU能向下兼容32位,所以运行在x86-64CPU也是可以的,但是以32位运行的。
apache-tomcat-6.0.32-windows-x64.zip 适用于x86-64,EM64T 的64位CPU。(简称x64)
apache-tomcat-6.0.32-windows-i64.zip 适用于Itanium(安腾)系列服务器CPU,全称应该是ia64。
3.4 CentOS
Linux操作系统的一个发行版本CentOS,下载时有
CentOS-5.6-i386-bin-DVD.iso 适用于x86-32(简称x86)的CPU,要386以上的CPU
CentOS-5.6-x86_64-bin-DVD-1of2.iso 适用于x86-64,EM64T 的64位CPU(简称x64)
3.5 eclipse
eclipse-jee-helios-SR2-win32.zip 适用于x86-32(简称x86)的CPU
eclipse-jee-helios-SR2-win32-x86_64.zip 适用于x86-64,EM64T 的64位CPU(简称x64)
3.6 如何选择
如果你想使用32位程序,就下载32位的版本,如果你想使用64位的版本,请根据你的CPU来选择,但我想没人使用Itanium(安腾)的64位CPU来做开发吧(服务器除外),所以ia64不能选,只能选x86-64。总之就是根据你的实际情况选择。
最后说明一下,要所有的软件,硬件,全是64位的,你的应用才算成功的运行在64位上了。比如:
使用64位的CPU,现在(2006年以后生产)的CPU都是64位。
安装64位的操作系统,比如64位的windows 7
安装64位的JDK,比如jdk-6u25-windows-x64.exe
安装64位的Tomcat,比如apache-tomcat-6.0.32-windows-x64.zip
安装64位的eclipse,比如eclipse-jee-helios-SR2-win32-x86_64.zip
原文地址:http://my.oschina.net/xianggao/blog/85637 本人转载只做为学习用,其他事项请参考原文。