【发布时间】:2017-11-23 11:09:21
【问题描述】:
我遇到过一些情况,我真的希望我对这种比特现象有正确的看法。在 Visual Studio 中开发 C# 软件并且必须使用 3rd 方库时,该指令有时包含使用 64 位处理器的库版本的说明(例如sqlite dlls)。像这样的事情和其他事情让我相信处理器的位大小(即 64 或 32 位)是软件的事情。然后又是安装操作系统,有时你会听到类似“这个 ISO 映像适用于 64 位处理器)。当我意识到在计算机商店中,计算机在 RAM 和 HD 大小、处理器名称和速度等方面进行广告宣传。(例如 500GB HD、4GB RAM、英特尔赛扬处理器 2.2Ghz...)从未听说过在这种情况下提到 64 位或 32 位。
从上面的解释来看,
- 是 64 位还是 32 位软件(即安装的操作系统) 还是硬件的东西?
- 如果上述情况属实,安装 64 位是否安全 几乎任何计算机上的操作系统(例如 Ubuntu 64 位操作系统)或有 考虑硬件/处理器?
【问题讨论】:
-
为简单起见:CPU 具有“32 位”和“64 位”模式(如果支持)。相同的机器代码,比如 X,对两种模式意味着不同的东西。可以在每个进程的基础上选择此模式(实际上比这更复杂),因此加载到进程地址空间的每个“事物”(如 DLL)必须具有相同的位数。 C#(或更好的 ICL)没有位,VS 中的 CPU 设置意味着:将解释器创建为 32/64/默认位。默认是操作系统位数。
-
在 32 位操作系统完全过时之前,您有时会看到 64 位 Windows 与 32 位计算机的广告。您所说的计算机广告始终适用于包含操作系统的系统,因此 CPU 支持的内容仅与 OEM 相关;他们可以选择销售具有 32 位操作系统的 64 位机器(实际上仍然在上网本上这样做,因为 64 位 Windows 占用更多空间,因为它包含两者的库,而 32 位 Windows 没有使用 64位库)。使用 Linux,您可以进行纯 64 位安装,很少有 PC 出售使用 Linux。
-
这可能属于超级用户,其中可能存在重复项,特别是如果您只关心 x86(不过,您没有标记 x86,所以我试图让我的答案不完全是 x86 特定的。 )
-
这并不完全在超级用户上有重复。关于超级用户的相关问题并不是专门为了阐明软件/硬件上下文。但是,您的回答非常明确和相关。
-
32 位已过时,当前所有 x86 CPU 都支持 64 位模式(Geode 微控制器除外...)但一般来说,要么根据型号查找它(例如 google
i7-6700k),或检查 CPUID 功能位:wiki.osdev.org/X86-64#How_do_I_detect_if_the_CPU_is_64_bits_.3F。不支持长模式的最新 CPU 是 Intel Atom,比 Silvermont 早了几代。
标签: architecture cpu cpu-architecture