最近在学习操作系统方面的知识,学习操作系统难免要和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. eas之视图冻结与解冻

    // 冻结视图 table.getViewManager().freeze(verticalIndex, horizonIndex); //冻结视图:该方法在table还没显示的时候使用,也就是该方法 ...

  2. RF学习使用记录【4】

    四 Extending Robot Framework 4.1 Creating test libraries RF的测试能力由测试库支持决定,已经有许多的测试库,有一些随着RF框架安装,但是更多的需 ...

  3. C++string和int的相互转化

    本方法主要利用sstream头文件中的方法来进行转换 1.int转成string #include <iostream> #include<string> #include&l ...

  4. 【Codeforces Round #519 by Botan Investments E】Train Hard, Win Easy

    [链接] 我是链接,点我呀:) [题意] [题解] 设每个人做第一题.第二题的分数分别为x,y 我们先假设没有仇视关系. 即每两个人都能进行一次训练. 那么 对于第i个人. 考虑第j个人对它的贡献 如 ...

  5. Spring Cloud-Bus(十二)

    说明 用于分布式上所有微服务都连接到消息总线上面.进行统一的通知 Config动态刷新 configClient configClient通过/actuator/bus-refresh端点通知消息总线 ...

  6. 洛谷 P2483 BZOJ 1975 [SDOI2010]魔法猪学院

    题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的:元素与 ...

  7. MySQL 索引分析

    MySQL复合唯一索引分析 关于复合唯一索引(unique key 或 unique index),网上搜索不少人说:"这种索引起到的关键作用是约束,查询时性能上没有得到提高或者查询时根本没 ...

  8. CentOS 6.9使用sudo时出现:“...不在 sudoers 文件中,此事将被报告”的问题解决

    在终端切换root账号登录 su 修改/etc/sudoers文件 visudo 找到:root ALL=(ALL) ALL,修改成自己的账号: 保存即可,按Exc,输入”:wq!“,回车.

  9. spring mvc接收http参数

    1.http协议携带参数,无外乎两个三个存储地点:1.url上 ,2.header里 3.body里. 2.get请求是没有body的,数据全都放在url上,以?xx&xxx形式.注:get请 ...

  10. Android入门:短信和拨打电话

    watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/ ...