标准i386下载和Ubuntu 11.04的amd64下载有什么区别?我当前在amd机器上运行i386,我的系统可以通过amd64下载更好地工作吗? (我的机器运行的是Windows 7 64bit,但是在安装Ubuntu之前我忽略了这一点)。

评论

相关(但不是重复的):Ubuntu的64位版本仅与AMD CPU兼容吗?

另请参阅:32位和64位之间有什么区别,我应该选择哪个?

#1 楼

i386是指32位版本,而amd64(或x86_64)是指适用于Intel和AMD处理器的64位版本。

Wikipedia的i386条目:


英特尔80386,也称为i386,或简称386,是Intel于1985年推出的32位微处理器。根据上下文,它被称为x86,IA-32或i386体系结构。 />

Wikipedia的x86_64条目:


x86-64是x86指令集的扩展。它支持比x86更大的虚拟和物理地址空间,从而使程序员可以方便地处理更大的数据集。在以“ x86-64”名称启动架构后,AMD将其重命名为AMD64 ... x86行业中许多人仍然使用-64作为与供应商无关的术语,而其他公司,尤其是Sun Microsystems(现为Oracle Corporation)和Microsoft,则使用x64。


一个Intel CPU,您应该使用AMD64在计算机上安装64位(它使用相同的指令集)。

我强烈建议使用它。在大多数情况下,您不会发现差异,但是对于较大的工作负载(例如视频编辑,游戏等),计算机的性能会更快(计算机能够计算2 + 2 + 2 = 6而不用做在示例中为2 + 2 = 4 + 2 = 6)。在Windows世界中,一个32位操作系统将不允许您在计算机上使用超过3.5 Gig的RAM(即使您有8G!)。您需要使用64位操作系统才能完全使用所有RAM。但是,对于Linux,没有这样的限制(谢谢,Uri)。

无论如何,世界已经从32位转变了,它仅支持不支持64位运行的旧机器。

评论


最后一部分现在(当然是在Linux中)不是真的,您可以在32位PAE内核中使用超过3.5GB的RAM。

– Uri Herrera
2011年7月24日,0:11



3.5gb的32bit内存限制不是4gbs- <图形卡内存>吗?

–克里斯金
11年7月24日在0:11

为了简单起见,我省略了诸如图形卡内存之类的技术。我的目的是说“如果您有超过3.5-4个演出,请使用64位”。

–user6658
2011年7月24日,0:15



@Treefroginc到底有哪些调整?

– Uri Herrera
2011年7月24日,0:40

在一天中的某些特定情况下,并且如果行星对齐并发出宇宙射线,则在几乎某些情况下,Flash几乎可以忽略不计,64位与32位一样有用且稳定。

–user6658
2011年7月24日5:50



#2 楼


该架构以AMD命名,是因为AMD发明了Athlon64。
同样,32位i386架构也以Intel的386处理器命名,因为它是它的第一个处理器。种,但是i386
也可以在AMD处理器上使用。所以是的,您可以使用该ISO映像。


来源:https://superuser.com/questions/128482/ubuntu-amd64-vs-i386

评论


这是我一直在寻找的评论。谢谢。

– Gerberth
20 Sep 14 '14:26

#3 楼

是的,您可以将amd64位安装到Intel 64位处理器。 AMD发明了x86-64位指令集处理器,因此名称仅是对AMD的致敬。

评论


感谢您清理此问题。我知道这是一个简单的问题,但在任何地方都找不到答案。

–戴夫·沃尔沃(Dave Wolover)
2012年6月1日14:22

#4 楼

amd64和i386之间的区别是amd64是64位,而i386是32位。这是内核中可用寄存器的宽度(以位为单位)。

基本上,一个32位CPU内核一次可以处理的最大数量为42.9亿个略多一点,而一个64位内核可以一次处理的总数量超过184.4亿亿个。 br />
现代PC的内核可以作为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位指针。

评论


我会检查一下,然后再回来...谢谢

–bikram990
13年3月19日在5:45

realloc(mem_ptr,0)函数正在释放以前用malloc,calloc等分配的内存。如果该指针以任何方式损坏,则您尝试释放您不拥有的内存,这会产生分段错误

–沃伦·希尔
13年3月19日在8:05

#5 楼

是的,您可以使用该.ISO。 amd64是指体系结构。 AMD是第一个创建64位CPU的人,所以我相信当时它被命名为这个名字,并且名称一直存在。看起来有些混乱,但是amd64只是表示64位。

评论


他们不是第一个创建64位cpu的人。英特尔以前有一个,但是它不向后兼容,因此未被广泛采用。名称amd64是为了区分AMD的体系结构与Intel的IA64,后者现已停产。

–psusi
2012年5月31日在22:09