ความแตกต่างระหว่างดาวน์โหลด i386 และ amd64 หรือไม่


164

อะไรคือความแตกต่างระหว่างการดาวน์โหลด i386 มาตรฐานและการดาวน์โหลด amd64 ของ Ubuntu 11.04? ฉันกำลังใช้งาน i386 บนเครื่อง amd ระบบของฉันจะทำงานได้ดีขึ้นด้วยการดาวน์โหลด amd64 แทนหรือไม่ (เครื่องของฉันใช้ Windows 7 64 บิต แต่ฉันไม่สนใจที่จะดูก่อนติดตั้ง Ubuntu)



คำตอบ:


165

i386 อ้างถึงรุ่น 32 บิตและ amd64 (หรือ x86_64) หมายถึงรุ่น 64 บิตสำหรับโปรเซสเซอร์ Intel และ AMD

รายการ i386 ของ Wikipedia:

Intel 80386 หรือที่เรียกว่า i386 หรือเพียง 386 เป็นไมโครโปรเซสเซอร์แบบ 32 บิตที่ Intel เปิดตัวในปี 1985 ... เรียกว่า x86, IA-32 หรือสถาปัตยกรรม i386 ขึ้นอยู่กับบริบท

รายการ x86_64 ของ Wikipedia:

x86-64 เป็นส่วนขยายของชุดคำสั่ง x86 รองรับพื้นที่ที่อยู่เสมือนและฟิสิคัลขนาดใหญ่กว่าที่เป็นไปได้ใน x86 ซึ่งทำให้โปรแกรมเมอร์สามารถทำงานกับชุดข้อมูลที่มีขนาดใหญ่กว่าได้อย่างสะดวกสบาย ... หลังจากเปิดตัวสถาปัตยกรรมภายใต้ชื่อ "x86-64" AMD เปลี่ยนชื่อเป็น AMD64 ... x86 -64 ยังคงถูกใช้โดยอุตสาหกรรมจำนวนมากในฐานะคำที่เป็นกลางผู้ขายในขณะที่คนอื่น ๆ โดยเฉพาะอย่างยิ่ง Sun Microsystems (ปัจจุบันคือ Oracle Corporation) และ Microsoft ใช้ x64

แม้ว่าคุณจะมีซีพียู intel คุณควรใช้ AMD64 เพื่อติดตั้ง 64 บิตบนคอมพิวเตอร์ของคุณ (ใช้ชุดคำสั่งเดียวกัน)

ฉันขอแนะนำให้ใช้ ส่วนใหญ่คุณจะไม่สังเกตเห็นความแตกต่าง แต่สำหรับปริมาณงานขนาดใหญ่ (เช่นการตัดต่อวิดีโอเกม ฯลฯ ) คอมพิวเตอร์จะทำงานได้เร็วขึ้น (คอมพิวเตอร์มีความสามารถในการคำนวณ 2 + 2 + 2 = 6 แทนที่จะต้องทำ 2 + 2 = 4 + 2 = 6 ในตัวอย่าง) ในโลกของ Windows ระบบปฏิบัติการ 32 บิตจะไม่อนุญาตให้คุณใช้ RAM มากกว่า 3.5 Gigs บนคอมพิวเตอร์ของคุณ (แม้ว่าคุณจะมี 8!) คุณต้องใช้ระบบปฏิบัติการ 64 บิตเพื่อใช้งาน RAM ทั้งหมดอย่างสมบูรณ์ อย่างไรก็ตามสำหรับ Linux นั้นไม่มีข้อ จำกัด ดังกล่าว (ขอบคุณ Uri)

ไม่ว่าโลกจะเปลี่ยนจาก 32 บิตและเป็นเพียงเพื่อสนับสนุนเครื่องจักรรุ่นเก่าที่ไม่สามารถรัน 64 บิตได้


ส่วนสุดท้ายคือตอนนี้ (ใน Linux แน่นอน) ไม่เป็นความจริงคุณสามารถใช้ RAM มากกว่า 3.5GB กับเคอร์เนล PAE ใน 32 บิต
Uri Herrera

3.5gbs ของ ram ไม่ จำกัด ที่ 32 บิตจะเป็น 4gbs- <memory card memory>?
Chriskin

3
เพื่อความเรียบง่ายฉันได้ละเว้นด้านเทคนิคเช่นหน่วยความจำกราฟิกการ์ด เป้าหมายของฉันคือการพูดว่า "ถ้าคุณมีมากกว่า 3.5-4 gigs ใช้ 64 บิต"

1
@Treefroginc Tweaks ที่แน่นอนคืออะไร?
Uri Herrera

1
64 บิตเป็นบิตที่ใช้งานได้และเสถียรเป็น 32 บิตโดยมีข้อยกเว้นเล็กน้อยเกือบของแฟลชภายใต้สถานการณ์บางอย่างในช่วงเวลาหนึ่งของวันและถ้าดาวเคราะห์จัดแนวให้รังสีคอสมิกออกมา

41

สถาปัตยกรรมได้รับการตั้งชื่อตาม AMD เพราะ AMD คิดค้นขึ้นมาโดยใช้ Athlon 64 ในทำนองเดียวกันสถาปัตยกรรม i386 แบบ 32 บิตนั้นตั้งชื่อตามตัวประมวลผลของ Intel 386 เนื่องจากเป็นรุ่นแรก แต่ i386 ก็จะทำงานกับโปรเซสเซอร์ AMD ใช่คุณสามารถใช้อิมเมจ ISO นั้นได้

ที่มา: https://superuser.com/questions/128482/ubuntu-amd64-vs-i386


10

ใช่คุณสามารถติดตั้ง amd64 บิตกับโปรเซสเซอร์ Intel 64 บิต AMD คิดค้นโปรเซสเซอร์ชุดคำสั่ง x86-64 บิตดังนั้นชื่อจึงเป็นเพียงเครื่องบรรณาการให้กับเอเอ็มดี


ขอบคุณสำหรับการล้างข้อมูลนี้ ฉันรู้ว่ามันเป็นคำถามง่าย ๆ แต่ฉันไม่สามารถหาคำตอบได้ทุกที่
Dave Wolover

8

ความแตกต่างระหว่างamd64และi386คือamd64เป็น 64 บิตในขณะที่i386เป็น32 บิต นี่คือความกว้าง (เป็นบิต) ของการลงทะเบียนที่มีอยู่ในแกนกลาง

โดยทั่วไปจำนวนที่มากที่สุดที่คอร์ CPU แบบ 32 บิตสามารถจัดการได้ในครั้งเดียวนั้นมีขนาดเล็กกว่า 4.29 พันล้านบิตในขณะที่คอร์แบบ 64 บิตสามารถรองรับจำนวนบิตได้มากกว่า 18.44 พันล้านล้าน

แกนประมวลผลในพีซีสมัยใหม่นั้นสามารถทำงานได้ทั้งแบบ 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

realloc(mem_ptr, 0)ฟังก์ชั่นหน่วยความจำพ้นการจัดสรรก่อนหน้านี้ด้วยmalloc, callocฯลฯ หากตัวชี้ที่ได้รับความเสียหายในทางใด ๆ แล้วคุณกำลังพยายามที่จะหน่วยความจำฟรีที่คุณไม่ได้เป็นเจ้าของและนี้สร้างความผิดของการแบ่งส่วน
วอร์เรนฮิลล์

6

ใช่คุณสามารถใช้. ISO amd64 อ้างถึงสถาปัตยกรรม เอเอ็มดีเป็นคนแรกที่สร้างซีพียู 64 บิตดังนั้นฉันเชื่อว่าชื่อนี้ในเวลานั้นและชื่อติดขัด ดูเหมือนว่าจะสับสนเล็กน้อย แต่ amd64 นั้นหมายถึง 64 บิต


10
พวกเขาไม่ใช่คนแรกที่สร้าง cpu 64 บิต Intel เคยมีมาก่อน แต่มันไม่เข้ากันได้แบบย้อนกลับดังนั้นจึงไม่ได้รับการยอมรับอย่างกว้างขวาง ชื่อ amd64 คือการสร้างความแตกต่างสถาปัตยกรรมของ AMD จาก IA64 ของ Intel ซึ่งขณะนี้ได้ถูกยกเลิกแล้ว
psusi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.