การเปลี่ยนเป็น 64 บิตทำได้อย่างไรบน Linux


15

การเปลี่ยนเป็น 64 บิตจัดการบน Linux / Unix อย่างไร โลกของ Windows ยังคงมีปัญหากับมันและฉันอยากรู้ว่ามันจัดการอย่างไรในโลก * nix


ด้วยสีสันการบิน
Kaz

คำตอบ:


12

การทำงานที่จำเป็นเพื่อให้เคอร์เนล 64 บิตถูกทำlooooongเวลาที่ผ่านมาใช้ระบบอัลฟาธันวาคม อย่างไรก็ตามโปรแกรมมีความแตกต่างกัน

ฉันทามติทั่วไปที่ฉันได้เห็นตอนนี้ดูเหมือนจะเป็น:

  • แยก/libและ/lib64ไดเร็กทอรีสำหรับระบบที่มีไบนารีแบบผสม
  • คอมไพล์เป็น 64- บิต; ถ้าการคอมไพล์ล้มเหลวให้คอมไพล์ใหม่เป็น 32- บิตจนกว่าจะสามารถเคลียร์แหล่งที่มาสำหรับ 64- บิต

นอกจากนั้นคุณจะไม่เห็น "ความเศร้าโศก" มากมายจากบิทบิวด์ 32/64 บิต


บวก symlinks เพื่อให้ชื่อไบนารีคงที่และสอดคล้องกัน
geoffc

และเรามีสิ่งที่เรียกว่าmultilib alien.slackbook.org/dokuwiki/doku.php?id=slackware:multilib
phunehehe

คุณสามารถตั้งชื่อโปรแกรมใด ๆ บน Linux ที่สามารถคอมไพล์ได้ แต่ใช้กับ 32- บิตเท่านั้น?
Maciej Piechotka

@Maciej Piechotka: อย่าคิดว่ามีจำนวนมากเหลืออยู่ ฉันคิดว่าฉันจำได้ว่า OpenOffice.org มีความยุ่งยาก แต่นั่นก็ย้อนกลับไปเมื่อการแปลงเป็น 64 บิตเริ่มขึ้น นอกเหนือจากนั้น: Flash Player ดูเหมือนจะยุ่งยาก: P
wzzrd

ตั้งแต่เมื่อคอมไพล์ Flash Player;) gnash / lightspark ทำงานบน 64- บิต แต่ Adobe Flash Player นั้นเหมาะสม
Maciej Piechotka

8

Windows และ * ix ใช้โมเดลข้อมูลที่แตกต่างกันสำหรับการเปลี่ยนแปลง หน้า UNIX.org นี้ค่อนข้างเก่า แต่ก็ยังให้ภาพรวมที่ดีของการแลกเปลี่ยน (หมายเหตุที่long longเพิ่มใน C99 ในภายหลังและจำเป็นต้องมีอย่างน้อย 64 บิต) คุณสามารถดูบทความ Wikipediaในหัวข้อเดียวกัน ในฐานะที่สนับสนุนในตอนท้ายของบทความ UNIX.org ส่วนใหญ่ UNIX เหมือนระบบได้ไปกับ LP64 ซึ่งหมายความว่าlong, long longและคำแนะนำที่มีอยู่ทั้งหมด 64 บิต

Windows ไปพร้อมกับสิ่งที่เรียกว่า LLP64 data model ซึ่งหมายความว่ามีเพียงพอยน์เตอร์ที่long longเป็น 64- บิต longยังคงเป็น 32 บิต ส่วนหนึ่งของเหตุผลเป็นเพียงว่าพวกเขาไม่ต้องการที่จะไปถึงและแก้ไขรหัสเสียที่สันนิษฐานว่าพอดีในlongint


2
มีการถกเถียงกันมากมายในโลก Unix เช่นกัน หนึ่งในข้อโต้แย้งในความโปรดปรานของการเพิ่ม "ยาว" คือว่ามีรหัสมากเกินไปที่คิดว่า "ยาว" เป็น 32 บิต (อย่างน้อยในข้อโต้แย้งเฉพาะฉันได้เข้า comp.std.c ไม่นานก่อนที่มาตรฐาน C99.)
เดวิด ธ อร์นลีย์

2

เนื่องจาก distros Linux ส่วนใหญ่เป็น OpenSource จึงมีการเปลี่ยนแปลงอย่างมากแล้ว หากคุณไม่ได้ใช้ซอฟต์แวร์ที่เหมาะสม (เช่น skype) คุณสามารถเรียกใช้ระบบ 64 บิตที่บริสุทธิ์โดยไม่มีข้อเสียใด ๆ

อย่างไรก็ตามความแตกต่างที่แท้จริงคือ IMHO ที่เหมาะสมกว่าเมื่อเทียบกับเปิดแล้วใช้กับ unix และ windows เนื่องจากเป็นซอฟต์แวร์โอเพ่นซอร์สที่ได้รับการพอร์ตก่อน ทั้งหมด แต่เพิ่งคอมไพล์ใหม่;) - และคุณสมบัติที่พอร์ตครั้งสุดท้าย

อาจเพิ่มเติมบน Linux ที่คุณมี repos ดังนั้นการติดตั้งจะถูกจัดการโดยอัตโนมัติ - คุณไม่จำเป็นต้องเลือกรุ่น 64 บิตหรือ 32 บิต (ระบบจะเลือกโดยอัตโนมัติ) บนโปรแกรม Windows จะถูกดาวน์โหลดและแยกรุ่น 64 บิตและ 32 บิต:

  • เพิ่มขนาดไฟล์เป็นสองเท่าบนเซิร์ฟเวอร์
  • ต้องการให้ผู้ใช้รู้รุ่นของตน หรือแม้แต่สิ่งที่พวกเขาแตกต่างกัน

ฉันคิดว่านั่นเป็นเหตุผลว่าทำไมไบนารี Windows จึงมักเป็น 32- บิตมันเหมาะกับทุกคนและไม่ใช่ทุกคนที่ได้ใช้เวอร์ชัน 64 บิต


2

ที่จริงแล้วลอง "The Long Road to 64-bits" ที่ ACM Queue: http://queue.acm.org/detail.cfm?id=1165766 ซึ่งต่อมาถูกสื่อสารโดย ACM ไมโคร 64 บิตแรกคือ MIPS R4000 จัดส่งใน SGI Crimson 1Q1992 ธ.ค. Alphas ส่งปลายปีนั้น

R4000 ทำงานในโหมด 32 บิตเป็นครั้งแรกและต่อมาในโหมด 64/32 เช่น 64-OS, 64 หรือ 32 บิตรหัสผู้ใช้ Alphas ใช้ UNIX แบบ 64 บิตเท่านั้นเสมอ (ตัวเลือกที่เหมาะสมเนื่องจากไม่มีแอพพื้นฐานที่ติดตั้ง 32 บิต)

ต่อมาในปี 1990 SGI ได้ให้ความช่วยเหลือกับ 64-bit-ize Linux (ทำงานบน Itaniums) เกี่ยวกับเวลาที่ XFS ได้รับการจัดส่งไปยัง Linux (ต้องการ 64 บิต)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.