เหตุใดเคอร์เนล Mac OS X 10.6 ของฉันจึงทำงานในโหมด 32 บิต


10

ฉันมี MacBook Pro (5,1) ที่มีหน่วยความจำ 4GB ใช้ 10A432 - แต่มันใช้เคอร์เนล 32 บิต

ความคิดใด ๆ ที่ทำไมมันไม่ทำงานในโหมด 64 บิตและฉันจะทำให้มันเป็นเช่นนั้นได้อย่างไร


ฉันเข้าใจว่าจุดประสงค์ของข้อ 10.6 คือการเขียนส่วนประกอบหลักเพื่อใช้ประโยชน์สูงสุด 64 บิต ด้วยสิ่งนี้คุณกำลังบอกว่ามันจะรันโค้ดที่ปรับให้เหมาะสมกับ 32 บิตเป็นส่วนใหญ่? ...
OscarRyz

dunno รหัสมากที่สุดคือ 64 บิตอย่างชัดเจน แต่เคอร์เนลดูเหมือนจะไม่เป็นสำหรับฉันอยู่ดี
Chopper3

คำตอบ:


12

ในการทบทวนจอน Siracusa ของเสือดาวหิมะที่เขากล่าวถึงการเปลี่ยนแปลง 64 บิต

เสือ เสือดาว เสือดาวหิมะ

รุ่นสั้น: เพราะไม่มี 'โหมดผสม' 64 บิตเคอร์เนลต้อง 64 บิตเคอร์เนลส่วนขยายและไดร์เวอร์

แอปเปิลเลือกที่จะใช้ค่าเริ่มต้นเป็น 32 บิตเพื่อหลีกเลี่ยงการทำสิ่งต่างๆมากมาย

คำแนะนำจากบทความ:

สำหรับ Mac ที่ใช้ K64 ได้ทั้งหมดให้บู๊ตในขณะที่กดปุ่ม "6" และ "4" ค้างไว้พร้อมกันเพื่อเลือกเคอร์เนล 64- บิต สำหรับวิธีแก้ปัญหาที่ถาวรมากขึ้นให้ใช้คำสั่ง nvram เพื่อเพิ่มลงarch=x86_64ในboot-argsสตริงของคุณหรือแก้ไขไฟล์/Library/Preferences/SystemConfiguration/com.apple.Boot.plistและเพิ่มลงarch=x86_64ในสตริง Kernel Flags:

...
    <key>Kernel</key>
    <string>mach_kernel</string>
    <key>Kernel Flags</key>
    <string>arch=x86_64</string>
...

ในการสลับกลับไปเป็นเคอร์เนล 32 บิตให้กดปุ่ม "3" และ "2" ค้างไว้ในระหว่างบู๊ตหรือใช้หนึ่งในเทคนิคข้างต้นโดยแทนที่ "x86_64" ด้วย "i386"


ขอขอบคุณ Gareth สำหรับการแก้ไข (ลิงก์รูปภาพไปยัง imgur จาก arstechnica และคำแนะนำที่เกี่ยวข้องจากบทความ)
ทะเลสาบ

7

การใช้เคอร์เนล 64 บิตใน Snow Leopard นั้นมีประโยชน์ไม่มากนักซึ่งแตกต่างจากระบบปฏิบัติการส่วนใหญ่ ใน Windows และ Linux คุณต้องใช้เคอร์เนล 64 บิตเพื่อเรียกใช้แอปพลิเคชัน 64 บิต บน OS X คุณสามารถเรียกใช้แอปพลิเคชัน 64 บิตด้วยเคอร์เนล 32 บิต

คนส่วนใหญ่ดูเหมือนจะกังวลว่าการใช้เคอร์เนลแบบ 32 บิตใน OS X จะ จำกัด ประสิทธิภาพหรือขีดความสามารถของเครื่อง แต่ในทางปฏิบัติสิ่งนี้ไม่ได้ส่งผลกระทบต่อวัสดุอย่างมีนัยสำคัญ เคอร์เนล 32 บิตสนับสนุนการเรียกใช้แอปพลิเคชัน 64 บิตและแอปเหล่านั้นมีพื้นที่ที่อยู่ 64- บิตเสมือนที่แมปไปยังพื้นที่ที่อยู่ PAE 36- บิตโดยเคอร์เนล บิตเคอร์เนลเพียงแค่มีการใช้หน่วยความจำที่ จำกัด มากขึ้นและ I / O ที่แมปหน่วยความจำกับช่วงที่ใช้งานได้ วิธีที่ Apple จัดการกับพื้นที่ที่อยู่นี้ในเคอร์เนลแบบ 32 บิตทำให้เกิดข้อ จำกัด 32 GB สำหรับหน่วยความจำฟิสิคัลแบ่งขีด จำกัด 4 GB 32- บิตด้วย PAE ประสิทธิภาพที่ชาญฉลาดมีประโยชน์ไม่มากหากมีสิ่งที่สามารถวัดได้ด้วยการใช้เคอร์เนล 64 บิตพร้อมหน่วยความจำ 32 GB หรือน้อยกว่า ถ้าคุณต้องการ,6และ4ปุ่มเมื่อเริ่มต้น ฉันสงสัยว่าคุณจะเห็นและมีความแตกต่างอย่างมากในประสิทธิภาพ

ปัญหาอื่น ๆ คือความเข้ากันได้กับไดรเวอร์อุปกรณ์ส่วนขยายเคอร์เนลและเฟิร์มแวร์ของอุปกรณ์ สำหรับไดรเวอร์อุปกรณ์และส่วนขยายเคอร์เนลพวกเขาจำเป็นต้องจับคู่บิตเนสส์คอมไพล์ใหม่หรือเขียนใหม่ (โดยเฉพาะอย่างยิ่งหากมีแอสเซมบลีใด ๆ ส่วนใดที่พบได้ทั่วไปในรหัสประเภทเหล่านั้น) เดิมที EFI ของ Apple มาในรูปแบบ 32 บิตเท่านั้นและเมื่อเร็ว ๆ นี้บางรุ่นมีเฟิร์มแวร์ 64 บิต เพื่อให้ระบบปฏิบัติการพูดคุยกับเฟิร์มแวร์บิตของเคอร์เนลและ EFI ต้องตรงกัน สิ่งที่เกี่ยวข้องกับการพูดคุยกับ EFI เป็นสิ่งที่ต้องการเลือกดิสก์เริ่มต้นหรือตัวควบคุมการจัดการพลังงานบางอย่าง (เช่นถ้าคุณมีการติดตั้งมากกว่าหนึ่ง OS X และคุณต้องตื่นจากโหมดสลีปหลังจากแบตเตอรี่หมด)

ดังนั้นเคอร์เนล 64 บิตจะเป็นประโยชน์หรือไม่? ประสิทธิภาพไม่ฉลาดจริงๆและฉันเห็นภูมิปัญญากับ Apple โดยใช้เมล็ดแบบ 32 บิตสำหรับเครื่องส่วนใหญ่ที่ใช้ Snow Leopard เพื่อความเข้ากันได้ดีขึ้น


7

ตามสิ่งที่รั่วไหลไปยัง MacRumors (เนื่องจากเอกสารอย่างเป็นทางการอยู่ภายใต้ NDA) ( แหล่งที่มา ) เฉพาะคอมพิวเตอร์ต่อไปนี้ที่สนับสนุนการเรียกใช้เคอร์เนล 64 บิต:

  • ต้นปี 2008 Mac Pro (MacPro 3,1)
  • ต้นปี 2008 Xserve (Xserve 2,1)
  • ข้อดีของ MacBook (15 "/ 17") (MacBookPro 4,1)
  • 2008 iMacs (iMac 8,1)
  • ข้อดีของ Unibody MacBook (MacBookPro 5,1 และ 5,2)
  • ต้นปี 2009 Mac Pro (MacPro 4,1)
  • 2009 iMacs (iMac 9,1)
  • ต้นปี 2009 Xserve (Xserve 3,1)

เฉพาะ XServes ใช้เคอร์เนล 64 บิตโดยค่าเริ่มต้น

หากคุณเปิดคอมพิวเตอร์ค้างไว้6และ4ปุ่มคุณจะเริ่มต้นเคอร์เนล 64 บิตหรือตามแหล่งอื่นที่ทำลาย NDA ของพวกเขาคุณสามารถแก้ไข/Library/Preferences/SystemConfiguration/com.apple.Boot.plistการเพิ่มการตั้งค่าเคอร์เนลหรือทำใน nvram


ฉันก็เห็นเช่นกันนั่นคือเหตุผลที่ฉันใส่รหัสรุ่นของฉัน
Chopper3

เริ่มต้นด้วย [6] [4] ทำงานอย่างไร แต่ข้อดีของการที่เคอร์เนลทำงานบน 64 บิตคืออะไร ...
OscarRyz

@Oscar Reyes: จากนั้นคุณสามารถใช้ไดรเวอร์ 64- บิตและกระบวนการสามารถเข้าถึงหน่วยความจำมากกว่า 4GB ดังนั้นตอนนี้ ไม่มีเว้นแต่คุณจะใช้แอปพลิเคชันฝั่งเซิร์ฟเวอร์ที่สามารถใช้หน่วยความจำมากกว่า 4GB ได้ดังนั้นค่าเริ่มต้น 64 บิตบน Xserves
Chealion


1

จนกว่า Snow Leopard จะวางจำหน่ายเราจะไม่ทราบว่าระบบใดจะสนับสนุนโหมด 64/32 บิต ... แต่สิ่งบ่งชี้ทั้งหมดคือ Snow Leopard จะโปร่งใสด้วยการรองรับเคอร์เนล ...

แต่น่าเสียดายที่ขออภัยที่เป็น "downer" หากคุณเป็นสมาชิก Appleseed ที่ลงทะเบียนแล้วฟอรัม Appleseed จะพูดถึงวิธีบังคับเคอร์เนลให้อยู่ในโหมด 64 บิต มิฉะนั้นหากคุณได้รับ Snow Leopard จากที่อื่นอย่ากังวลไปเลย

การปล่อยของ Snow Leopard นั้นอยู่ใกล้ ๆ ...


0

ไม่เป็นไรนี่คือเหตุผล:

  • 32 บิต SL จะเรียกใช้แอป 64 บิต SL สามารถทำงานร่วมกันได้ 64 บิตโดยไม่คำนึงว่าเคอร์เนลเวอร์ชันใดที่คุณบูต

  • SL แม้ว่าการบู๊ตด้วยเคอร์เนล 32 บิตจะยังคงสามารถเรียกใช้แอพ 64 บิตและจัดการกับ RAM ได้มากกว่า 4GB

  • เหตุผลที่คุณต้องการเคอร์เนล 64 บิตคือถ้าเคอร์เนลต้องการที่อยู่มากกว่า 32 GB ของ RAM (ดังนั้นจึงเป็นค่าเริ่มต้นบน Xserve) หรือคุณมี 64 บิตเท่านั้น kext (นักพัฒนา)

  • เคอร์เนล 64 บิตไม่ทำให้คอมพิวเตอร์ของคุณเร็วขึ้นอย่างน่าอัศจรรย์ ยกเว้นว่าคุณต้องการ RAM มากกว่า 32 GB (IOW only Xserves ต่อไป) คุณไม่จำเป็นต้องใช้เหตุผลในการจัดการปัญหา

  • โดยการตั้งค่าเริ่มต้นที่ 32 บิตบนระบบผู้บริโภคและให้ผู้เชี่ยวชาญและนักพัฒนาตัวเลือกเคอร์เนล 64 บิต Apple รักษาความเข้ากันได้สูงสุดและความยืดหยุ่นสูงสุด

  • 64 บิตเป็นตัวเลือกหลักสำหรับนักพัฒนา พวกเขาสามารถใช้มันเพื่อทดสอบไดรเวอร์ 64 บิตใหม่ / kexts เพื่อให้แน่ใจว่าพวกเขาทำงานกับเคอร์เนล 64 บิต

ถอดความและยกมาจากSnow Leopard โหลดเคอร์เนล 32- บิตโดยค่าเริ่มต้น

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