三国志88吧 关注:105贴子:7,809
  • 4回复贴,共1

【windows7】64位系统不必苦寻64位软件——原理解析和使用建议

取消只看楼主收藏回复



IP属地:广西1楼2012-03-17 21:15回复

    原链接。原作者:沥龙


    IP属地:广西2楼2012-03-17 21:16
    回复

      品牌机预装的OEM系统的
      首选已经是64位的了,很多朋友一个劲地抱怨64位兼容性太差不能装32位的软件或64位软件太少什么的。64位用32位软件其实没有问题,理论兼容
      x86 全平台,兼容性应该是最全的才对,省略一万字以后,不知是哪里听说的,误解太深,最后已经无力解释了。于是干脆写了一篇长篇大论,以后就直接
      copy-paste 了,虽然是常识,还是分享一下吧。


      IP属地:广西3楼2012-03-17 21:16
      回复

        三、如何实现
        在兼
        容模式下,支持 x86-64 的 64 位操作系统就要起到协调作用了,它首先要是识别程序的平台性质,如 16 位(Windows x64
        并不支持 16 位子系统,因此无法执行 MS-DOS 16 位程序)、32 位,还是 64 位。如果是 32 位,就在相应的程序指令前加上 32
        位标志,CPU 遇到这个标志时,就不会把程序应用的 64 位新特性中,为程序指定 32 位寄存器(虽然部分 32 位寄存器是 64
        位寄存器的前一部分,但它们名字是不相同),内存空间也重新映射或进行必要转换(这还不太确定)。也就是说,32 位程序所看到的寄存器仍然是 32
        位的,内存仍然只能访问 4G 或以下,它们不会发现 CPU 有任何异常。
        对于操作系统的软件部分,就拿 Windows x64
        来说,我们可以发现,它比对应的 32 位系统要臃肿一些,部分原因是 64
        位指令数据要长一些,单个程序会大一些。但更明显的是操作系统中的很多东西都是“双份”的,也就是分别准备了 64 位的和 32
        位的,这些主要是平台资源(如 .NET 框架)、库资源(如 Visual C++ 库)和一些底层的系统工具(如
        CMD、DXDiag)。更明显的表现是,打开系统分区,我们就能发现程序文件夹“Program Files”有两个,一个用于 x86-64
        软件,另一个则用于 x86(32位)软件。这可说明,不仅硬件完全支持 x86/x86-64,操作系统也把这两个平台放在平等的地位。
        随着
        64 位操作系统的推广,越来越多的软件开发者会同时在 32 位和 64 位环境下进行软件测试,保证软件的可靠性。但是要他们统统开发纯 64
        的版本是不现实的,虽然从 x86 过度到纯 x86-64
        理论上只要重新编译,原来的代码可以不作任何修改,但有时并不这么简单,同时还要考虑经济效率(再次开发是要花钱的),再说一些软件并不需要用的用到
        64 位的计算特性(所以也没有修改和重新编译的必要)。所以就放心的用那些已经写明支持 x86 64位平台的程序好了,就算没有声明支持
        x86-64 也是可以运行的。


        IP属地:广西6楼2012-03-17 21:17
        回复
          没有啊。我的开机是占40%内存


          IP属地:广西10楼2012-03-17 23:03
          回复