Mac OS X 10.6 çekirdeğim neden 32 bit modunda çalışıyor?


10

10A432 çalıştıran 4GB belleğe sahip bir MacBook Pro'm (5,1) var - ancak 32 bit çekirdeği çalışıyor.

64-bit modunda neden çalışmadığı hakkında bir fikrim var ve bunu nasıl alabilirim?


10.6'nın amacının 64bit kullanımını en üst düzeye çıkarmak için çekirdek bileşeni yeniden yazmak olduğunu anladım. Yani bununla birlikte çoğu zaman 32 bit üzerinde optimize edilmiş kod çalıştıracağını mı söylüyorsunuz? ...
OscarRyz

dunno, çoğu kod açıkça 64 bit ama yine de çekirdek benim için görünmüyor
Chopper3

Yanıtlar:


12

Jon Siracusa'nın Snow Leopard İncelemesi'nde 64 bit geçişi tartışıyor .

Kaplan Leopar Kar Leoparı

Kısa sürüm: 'karışık mod' olmadığından, 64 bit çekirdek 64 bit Çekirdek Uzantıları ve Sürücüleri gerektirir .

Bunlar henüz yaygın olarak bulunmadığından, Apple birçok şeyi kırmaktan kaçınmak için varsayılanı 32 bit olarak seçti.

Makaleden talimatlar:

Tüm K64 özellikli Mac'ler için, 64 bit çekirdeği seçmek üzere "6" ve "4" tuşlarını aynı anda basılı tutarak önyükleme yapın. Daha kalıcı bir çözüm için, dizenize eklemek arch=x86_64için nvram komutunu kullanın boot-argsveya dosyayı düzenleyin /Library/Preferences/SystemConfiguration/com.apple.Boot.plistve arch=x86_64Çekirdek Bayrakları dizesine ekleyin :

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

32 bit çekirdeğe geri dönmek için, önyükleme sırasında "3" ve "2" tuşlarını basılı tutun veya "x86_64" yerine "i386" yazarak yukarıdaki tekniklerden birini kullanın.


Düzenleme için Gareth'e teşekkürler (arstechnica'dan imgur'a yeniden yazılan görüntü bağlantıları ve makaleden ilgili talimatlar alıntılandı).
Göl

7

Diğer işletim sistemlerinin aksine, Snow Leopard'da 64 bit çekirdeği çalıştırmanın pek bir yararı yoktur. Windows ve Linux'ta, 64 bit uygulamaları çalıştırmak için 64 bit çekirdeğe ihtiyacınız vardır. OS X'te, 32 bit çekirdekli 64 bit uygulamaları çalıştırabilirsiniz.

Çoğu insan, 32 bit çekirdeği OS X'te çalıştırmanın makinelerinin performansını veya yeteneklerini sınırladığından endişe ediyor gibi görünüyor, ancak pratikte bunun önemli bir maddi etkisi yok. 32 bit çekirdek, 64 bit uygulamaların çalışmasını destekler ve bu uygulamaların çekirdek tarafından 36 bit PAE adres alanına eşlenen sanal bir 64 bit adres alanı vardır, bu nedenle 64- daha sınırlı bellek kullanımı ve kullanılabilir aralıkta bellek eşlemeli G / Ç ile bit çekirdeği. Apple'ın 32 bit çekirdekteki bu adres alanını işleme biçimi fiziksel bellek için 32 GB'lık bir sınırla sonuçlanır ve PAE ile 4 GB'lık 32 bitlik sınırı aşar. Performans açısından, 32 GB veya daha az belleğe sahip 64 bit çekirdek kullanarak ölçülebilir bir fayda varsa, pek bir faydası yoktur. Eğer istersen,6ve 4başlangıçta anahtarlar. Performansta önemli bir fark göreceğinizden şüpheliyim.

Diğer sorun aygıt sürücüleri, çekirdek uzantıları ve aygıtın ürün yazılımı ile uyumluluktur. Aygıt sürücüleri ve çekirdek uzantıları için, bitlerle eşleşmeleri, yeniden derlenmeleri veya yeniden yazılmaları gerekir (özellikle, bu tür kodlarda hangi bölümlerin ortak olduğu herhangi bir montaj varsa). Apple'ın EFI başlangıçta sadece 32 bit olarak geldi ve son zamanlarda bazı modellerde 64 bit ürün yazılımı var. İşletim sisteminin bellenimle konuşabilmesi için, çekirdeğin ve EFI'nin bit eşleşmesi gerekir. EFI ile konuşmayı içeren şeyler, bir başlangıç ​​diski veya bazı güç yönetimi denetimleri seçmek gibi şeylerdir (birden fazla OS X kurulumunuz varsa ve pil bittikten sonra uyku modundan çıkmanız gerekiyorsa).

Peki 64-bit çekirdek bir fayda olur mu? Performans açısından gerçekte pratikte değil ve daha iyi uyumluluk için Snow Leopard'ı çalıştıran makinelerin çoğu için 32 bit çekirdekler kullanarak Apple'ın bilgeliğini görebiliyorum.


7

MacRumors'a sızdırılanlara göre (resmi belgeler NDA altında olduğu için) ( Kaynak ) yalnızca aşağıdaki bilgisayarlar 64 bit çekirdeği çalıştırmayı destekler:

  • 2008 Başı Mac Pro (MacPro 3,1)
  • 2008 Başı Xserve (Xserve 2,1)
  • MacBook Profesyonelleri (15 "/ 17") (MacBookPro 4,1)
  • 2008 iMacs (iMac 8,1)
  • Unibody MacBook Profesyonelleri (MacBookPro 5,1 ve 5,2)
  • 2009 Başı Mac Pro (MacPro 4,1)
  • 2009 iMacs (iMac 9,1)
  • 2009 başı Xserve (Xserve 3,1).

Yalnızca XServes varsayılan olarak 64 bit çekirdeği kullanır.

Bilgisayarı 6ve 4tuşlarını basılı tutarak başlatırsanız 64 bit çekirdeği başlatırsınız veya NDA'larını kıran başka bir kaynağa göre /Library/Preferences/SystemConfiguration/com.apple.Boot.plistbir çekirdek bayrağı eklemeyi düzenleyebilir veya nvram'da yapabilirsiniz.


Ben de gördüm, bu yüzden model kodumu koydum.
Chopper3

İş [6] [4] ile başlıyor, ancak çekirdeğin 64 bit üzerinde çalışmasının faydası nedir? ...
OscarRyz

@Oscar Reyes: Daha sonra 64 bit sürücüleri kullanabilirsiniz ve işlemler 4GB'tan fazla belleğe erişebilir. Şimdi mi? 4GB'tan fazla bellek kullanabilen bir sunucu tarafı uygulaması çalıştırmadığınız sürece hiçbiri - dolayısıyla Xserves'te 64 bit varsayılanı.
Chealion

5

Jason'ın maalesef gizlenmiş bağlantısı çok faydalı bir bilgi sakladı:

ioreg -l -p IODeviceTree | grep firmware-abi

64 bit EFI Mac'ler rapor verecek

| | "firmware-abi" = <"EFI64">

1

Snow Leopard piyasaya sürülene kadar hangi sistemlerin 64/32 bit modunu destekleyeceğini bilemeyiz ... Ancak tüm göstergeler Snow Leopard'ın çekirdek desteği ile şeffaf olacağı ...

Ancak, ne yazık ki, "downer" olduğu için üzgünüm, kayıtlı bir Appleseed üyesiyseniz, Appleseed forumu çekirdeğin 64 bit moduna nasıl zorlanacağını tartışır. Aksi takdirde, başka bir yerde Snow Leopard aldıysanız, endişelenmeyin.

Snow Leopard'ın serbest bırakılması hemen köşede ...


0

Sorun yok, işte neden:

  • 32 bit SL 64 bit uygulamalar çalıştıracaktır; SL, önyükleme yaptığınız çekirdek sürümüne bakılmaksızın 64 bit uyumlu

  • 32 bit çekirdekli önyükleme yapsa bile SL hala 64 bit uygulamaları çalıştırabilecek ve 4GB'tan fazla RAM'e hitap edebilecek

  • 64 bit çekirdeğe ihtiyacınızın nedeni, çekirdeğin 32 GB RAM'den fazlasını ele alması gerektiğidir (bu nedenle Xserve'de varsayılan değerdir) veya yalnızca 64 bitlik bir kext (geliştiriciler) varsa

  • 64 bit çekirdekler bilgisayarınızı sihirli bir şekilde daha hızlı yapmaz; 32 GB'den fazla RAM'e ihtiyacınız yoksa (sadece IOW sadece Xserves), nedenleri ele almak için de buna ihtiyacınız yoktur

  • tüketici sistemlerinde 32 bit varsayılan yaparak ve profesyonellere ve geliştiricilere Apple'ın maksimum uyumluluğu ve maksimum esnekliği koruduğu 64 bit çekirdek seçeneğini sunarak

  • 64 bit genellikle bir geliştirici seçeneğidir; 64 bit çekirdeği ile çalıştıklarından emin olmak için yeni 64 bit sürücülerini / kexts'lerini test etmek için kullanabilirler

Başka kelimelerle yazılan ve alıntılanan Snow Leopard varsayılan olarak 32 bit çekirdeği yükler

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.