问题描述
标准i386下载与Ubuntu 11.04的amd64下载有什么区别?我目前在amd机器上运行i386,而我的系统是否会使用amd64下载更好? (我的机器运行的是Windows 7 64位,但在安装Ubuntu之前我忽略了这一点)。
最佳解决思路
i386是指32位版本,而amd64(或x86_64)是指英特尔和AMD处理器的64位版本。
维基百科的i386条目:
The Intel 80386, also known as the i386, or just 386, was a 32-bit microprocessor introduced by Intel in 1985… This is termed x86, IA-32, or the i386-architecture, depending on context.
维基百科的x86_64条目:
x86-64 is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets… After launching the architecture under the “x86-64” name, AMD renamed it AMD64… x86-64 is still used by many in the industry as a vendor-neutral term, while others, notably Sun Microsystems (now Oracle Corporation) and Microsoft, use x64.
即使你有一个intel CPU,你也应该使用AMD64在你的计算机上安装64位(它使用相同的指令集)。
我强烈建议使用它。大多数情况下,您不会注意到差别,但对于大量工作负载(例如视频编辑,游戏等),计算机将执行得更快(计算机可以计算2 + 2 + 2 = 6而不必执行在一个例子中2 + 2 = 4 + 2 = 6)。在Windows环境中,32位操作系统不会让您在计算机上使用超过3.5 Gig的RAM(即使您拥有8个!)。您需要使用64位操作系统才能完全使用所有RAM。但是,对于Linux,没有这种限制(谢谢,Uri)。
无论如何,世界已经从32位转移到只支持不能运行64位的旧机器。
次佳解决思路
The architecture is named after AMD because AMD invented it, with the Athlon 64. Similarly, the 32-bit i386 architecture is named after Intel’s 386 processor, because it was the first of its kind, but i386 will also work on AMD processors. So yes you can use that ISO image.
来源:https://superuser.com/questions/128482/ubuntu-amd64-vs-i386
第三种解决思路
是的,你可以安装amd64位到英特尔64位处理器。 AMD发明了x86-64位指令集处理器,因此这个名字只是对AMD的致敬。
第四种思路
是的,你可以使用.ISO。 amd64指的是架构。 AMD是第一个创建64位CPU的人,所以我相信这是当时命名的,并且名字被卡住了。这似乎有点令人困惑,但amd64只是意味着64位。
第五种思路
amd64和i386的区别在于amd64是64位,而i386是32位。这是内核中可用寄存器的宽度(以位为单位)。
基本上,32位CPU内核可以一次处理的最大数量略多于42.9亿个,而64位内核可以处理的数量超过184.4亿,十亿。
现代个人电脑的内核可以像64位或32位处理器一样运行,具体取决于您安装的操作系统版本。
64位代码的运行速度往往高于32位代码,因为它可以处理更大的数字,或者因为64位内核有更多的寄存器,所以可以存储更多内容,而无需将内容存入外部存储器。尽管如果没有编写代码来充分利用处理器的额外功能,则无法保证64位代码的运行速度会更快。
在32位系统上编译将产生与64位系统不同的代码。您可以通过编译为两个系统上的汇编代码来证明这一点。假设您的C文件是myfile.c,请在两个系统上尝试gcc -S myfile.c
并比较myfile.s
为32位系统编写的代码应该编译并在64位系统上运行,但并不是所有的代码都写得很好。许多程序员对系统做出假设可能并非如此:例如寄存器宽度或字节顺序。
如果无法访问源代码,很难看出问题所在,但segmenation fault
表明尝试访问不属于该程序的内存。例如,这可能表明mem_ptr是32位指针,在32位系统上很好,但在64位系统上需要是64位指针。