最近在学习操作系统方面的知识,学习操作系统难免要和CPU打交道,虽然现在CPU和操作系统不像计算机发展初期一样是绑定在一起的,但是大家都知道操作系统和CPU Architecture的联系是很紧密的,有多紧密呢,差不多跟你和你女朋友的关系一样紧密,哈哈~~,闲话少说,开始进入正文。

  学习计算机的(我想还包括不是计算机专业)肯定都听过大名鼎鼎的摩尔定律,不知道的可以参见http://en.wikipedia.org/wiki/Moore%27s_law。现在的硬件发展正在随着摩尔定律的预言在阔步向前,从最初的8-bit CPU到后来的16-bit CPU,再到后来的32-bit CPU,最后到时下大热的64-bit CPU,硬件的性能得到大幅度的提升。提到CPU,不得不提到Intel AMD;提到CPU的发展,我们不得不提到操作系统的发展,提到操作系统,我们不得不提到Mcirosoft、Linux。这些都是国际上有名的大厂商,客户遍及全世界的各个角落。硬件发展这么快,不是所有的这些大厂的客户在每次硬件或者操作系统跟新的时候都会去购买新的硬件设备或者操作系统的,这样随着时间的流逝,可能CPU发展到了64bit了,还有很多企业在使用装配32-bit的CPU的机器呢。这样就出现了兼容性的问题了。这些国际大厂(比如Intel、Microsoft)为了更好的服务这些厂商,当然也是为了不惹怒客户,在设计新一代的产品的时候,都是考虑向后兼容的(backwards compatible)。

  提到CPU、提到操作系统,经常听到几个名词,x86、x64、x86-64、IA-32、IA-64。由于对于底层的硬件和操作系统不是很熟悉(所以才来学习的吗),虽然我是学习计算机专业,在听到上面几个名词有时候也会不免产生一些疑问:x64和x86-64什么区别,IA-32、IA-64和x86、x64什么关系?32-bit CPU的机器能装64-bit的操作系统吗?64-bit CPU的机器能装32-bit操作系统吗?Win32应用程序能运行在64-bit windows操作系统上吗?带着这几个疑问,我发挥一个计算机专业学生的本能--求助于收索引擎,发现都是一些零星的不完整的解答,故有了这篇博客。一是想为自己在这方面的学习记一下笔记,方便以后继续学习的时候查阅,二是为了很好的解答一下这些问题,我相信这些问题不仅仅是我一个人的问题,肯定有很多人也有类似的疑惑,三是为了检验一下自己的语言组织及写作能力,平时比较懒,很少写一些东西。

  下面逐一回答上面的几个问题,不过回答问题之前,先让我们来了解几个概念。介绍了下面的几个概念以后上面的几个问题就清楚了。

    X86:这是对于Intel 8086及后续CPU产品的统一称呼,具体参见http://en.wikipedia.org/wiki/X86

    X64:兼容X86CPU的64-bit CPU,具体参见:http://en.wikipedia.org/wiki/X86-64

    X86-64:X64的另一种称呼。

    X86_64:同X86-64

    IA-32:Intel Architecture-32的缩写,是一种不向下兼容的Intel 32-bit CPU 架构,具体参见:http://en.wikipedia.org/wiki/IA-32

    IA-64:Intel Architecture-64的缩写,是一种不向下兼容的Intel 64-bit CPU 架构,具体参见:http://en.wikipedia.org/wiki/IA-64

    除了这些概念,我们可能也会接触到一些名词,像AMD64、Itanium,这里一并解释了。

    AMD64:跟上面的X64、X86-64、X64是一样的(注:AMD也是一家设计CPU的国际大厂)

    Itanium:是Intel 的64-bit不向下兼容的CPU架构,具体参见:http://en.wikipedia.org/wiki/Itanium

  到这里相信你对64-bit,兼容X86的64-bit,IA-32、IA-64以及常见的X86有了比较好的理解。

  那么,32-bit X86 CPU的机器上能装64-bit操作系统吗?

  不能。因为64-bit操作系统需要64-bit 的CPU,它的向下兼容性只体现在Win32应用程序能运行在64-bit的windows上。

  那么,64-bit X64 CPU的机器上能装32-bit操作系统吗?

  能。因为X64向下兼容32-bit指令。

  到了这里,我们也知道了IA-32 CPU,只能安装32-bit操作系统,IA-64 CPU,只能安装64-bit操作系统,不能像X64CPU一样也能安装32-bit操作系统,因为IA-64不向下兼容32-bit指令。

  版权所有,欢迎转载,转载请标明出处,以及本文链接。

  The End。

  

几个概念:x86、x86-64和IA-32、IA-64的更多相关文章

  1. 安装PHP扩展32位与64位的误区(x86与x64的查看)

    在安装PHP扩展(DLL,SO),除了需要对应的PHP版本外,在WINDOWS还需要区分(TS线程,NTS非线程),如何判断呢? 1.如何判断是NTS还是TS(WINDOWS用户) 看PHP所在目录中 ...

  2. 错误: 未能完成程序集的安装(hr = 0x8007000b),.net程序关于使用Oracle.DataAccess.dll不同版本x86和x64问题,即oracle odp.net 32位/64位版本的问题

    如果你的机器上安装了odp.net,且确信machine.config也有类似以下结节:(64位+.net 4.0环境下,machine.config可能会有4份,分别对应于.net2.0/4.0的3 ...

  3. 64位Java开发平台的选择,如何区分JDK,Tomcat,eclipse的32位与64版本

    当你想下载Linux.JDK.Tomcat.eclipse时,你是下载32位版本还是64位版本?64位版本有两种,应该选哪一个? 当你看到这些内容:x86.x64.x86-32.x86-64.ia64 ...

  4. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑

    自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...

  5. 如何在WIN2008或WIN2012 64位系统安装32位SQL2000

    如何在WIN2008或WIN2012 64位系统安装32位SQL2000 在日常服务器,云服务器或VPS中,因尔特网络工程师遇到部分使用了WIN2008 或WN2012 64位系统的用户需要安装SQL ...

  6. [转]oracle odp.net 32位/64位版本的问题

    本文转自:http://www.cnblogs.com/yjmyzz/archive/2011/04/19/2020793.html 如果你的机器上安装了odp.net,且确信machine.conf ...

  7. Win7 下用 VS2015 编译最新 openssl(1.0.2j)包含32、64位debug和release版本的dll、lib(8个版本)

    Win7 64位系统下通过VS2015编译好的最新的OpenSSL(1.0.2j)所有八个版本的链接库, 包含以下八个版本: 1.32位.debug版LIB: 2.32位.release版LIB: 3 ...

  8. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑(很详细,还有自动动手编程探测dll)

    阅读目录 dll文件不匹配导致数据库无法启动 究竟是System32还是SysWow64 区分dll文件32位64位的程序让我倍感迷惑 再次判断究竟是System32还是SysWow64——意想不到的 ...

  9. 使用visual c++ 2005远程调试64位系统上32位与64位程序

    一直都挺喜欢使用visual c++远程调试代码,它能展现给我们当时代码执行最真实的情景,今天有时间记录一下,以免以后忘了. 远程调试需要在被调试端安装服务器,对于visual c++ 2005来说调 ...

  10. 判断系统是64位还是32位的bat方法

    if "%PROCESSOR_ARCHITECTURE%"=="x86" goto x86 if "%PROCESSOR_ARCHITECTURE%& ...

随机推荐

  1. Django的Error汇总

    title: Django学习笔记 catalog: true subtitle: 11. Django_Error汇总 date: 2018-12-14 10:17:28 --- Django的Er ...

  2. Java子类对于父类中static方法的继承

    今天看到了Java中子类继承父类的一个相关讨论,在网上综合了各家的观点,写下了一篇简短的总结. 问题如下,在父类中含有staic修饰的静态方法,那么子类在继承父类以后可不可以重写父类中的静态方法呢? ...

  3. maven将jar包添加到本地仓库

    mvn install:install-file -Dfile=jar包本地路径 -DgroupId=groupID -DartifactId=ifactId -Dversion=版本 -Dpacka ...

  4. PAT_A1115#Counting Nodes in a BST

    Source: PAT A1115 Counting Nodes in a BST (30 分) Description: A Binary Search Tree (BST) is recursiv ...

  5. scrapy-redis 之处理异常

    今天心情不好 不想多打字 自己看注释吧 from scrapy.http import HtmlResponse from twisted.internet import defer from twi ...

  6. H5-video1 iOS苹果和微信中音频和视频实现自动播放的方法

    <audio preload="preload" controls id="car_audio" src="http://media.xitao ...

  7. SOA案例架构分析浅谈

    上课中讲到了SOA架构设计,自己在课下决定总结一下对于SOA架构的理解以及应用. 先总结一下SOA的定义,SOA是面向服务架构,它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署.组合和使 ...

  8. VS2015 建立一个C++的MFC简易窗体程序项目

    一开始建立的窗体工程都是带很多窗口,而且自己拉到窗体的控件,一调试就看不到了,是因为新建立工程项目时勾选了太多其他的了,这里记录分享一下建立一个单纯的窗体程序项目步骤给有需要的人也可以学习. 第一步: ...

  9. 什么是hashMap,初始长度,高并发死锁,java8 hashMap做的性能提升

    问题1:HashM安排的初始长度,为什么? 初始长度是 16,每次扩展或者是手动初始化,长度必须是 2的幂. 因为: index = HashCode(Key) & (length - 1), ...

  10. ACDream - Lowbit Sum

    先上题目: C - Lowbit Sum Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others ...