最近在学习操作系统方面的知识,学习操作系统难免要和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. 【笔记】Linux就该这么学-第六课第四章

    vim使用    a 在光标后一位置插入    i 在光标当前位置插入    o 在光标下面创建个空行    dd 删除(剪切)光标所在行    5dd 删除(剪切)从光标处开始的5行    yy 复 ...

  2. 一键安装本地yum仓库脚本

    #!/bin/bash#By:zhaocheng#Date:2019-01-18#Version v1 [ -d /media/cdrom ] || mkdir /media/cdrom[ -d /m ...

  3. 部署国密SSL证书,如何兼容国际主流浏览器?

    国密算法在主流操作系统.浏览器等客户端中,还没有实现广泛兼容.因此,在面向开放互联网的产品应用中,国密算法无法得到广泛应用.比如,在SSL证书应用领域,由于国际主流浏览器不信任国密算法,如果服务器部署 ...

  4. 进程(day09)

    进程的管理 一.进程的基础 进程和程序的区别 每个进程有自己的pid.PCB 操作系统上运行的所有进程构成一颗树. 如何查看这颗树? pstree() 树根进程是init pid是 进程间的亲缘关系两 ...

  5. yum安装软件中的y/d/N

    yum install vim ........ 总下载量:7.0 M安装大小:23 M Is this ok [y/d/N]: d 参数解析: y:在线下载安装 d:只下载不安装 N:不安装 Bac ...

  6. 一维数组快速转集合(List)

    String[] arr={"qwe","asd","zxc","asddf","hghgf"}; ...

  7. 【*2000】【2018-2019 ICPC, NEERC, Southern Subregional Contest C 】Cloud Computing

    [链接] 我是链接,点我呀:) [题意] [题解] 我们可以很容易知道区间的每个位置有哪些安排可以用. 显然 我们优先用那些花费的钱比较少的租用cpu方案. 但一个方案可供租用的cpu有限. 我们可以 ...

  8. netty byteBuf (二)

    netty重新定义了byteBuf 而没使用jdk byteBuffer netty byteBuf与jdk  byteBuffer的区别 (1)jdk buffer长度固定  byteBuf超过最大 ...

  9. 轻量级本地数据库SQLite在WinRT的使用

    开发环境:Windows 8.1 开发工具:Visual Studio Express 2013 for Windows SQLite数据库介绍 1.SQLite是一款轻型的嵌入式数据库,使用C++开 ...

  10. 修改电脑名称后,Oracle客户端连不上

    有以下几个步骤可以尝试,帮助大家缩小错误范围. 1  命令窗口使用sqlplus查看数据库服务是否正常,如下图,没有出现“连接到:”表示数据库服务不正常. 2  在任务管理器中查看数据库的监听是否已经 ...