मेरा Mac OS X 10.6 कर्नेल 32-बिट मोड में क्यों चलता है?


10

मेरे पास मैकबुक प्रो (5,1) है जिसमें 4GB मेमोरी 10A432 चल रही है - लेकिन यह 32-बिट कर्नेल चला रहा है।

किसी भी विचार क्यों यह 64-बिट मोड में नहीं चल रहा है, और मैं ऐसा करने के लिए कैसे प्राप्त कर सकता हूं?


मैं समझता था कि 10.6 का उद्देश्य 64bit के उपयोग को बढ़ाने के लिए मुख्य घटक को फिर से लिखना था। तो इसके साथ आप कह रहे हैं कि यह 32 बिट पर सबसे अधिक बार अनुकूलित कोड चलाएगा? ...
OscarRyz

dunno, अधिकांश कोड स्पष्ट रूप से 64 बिट है, लेकिन कर्नेल मेरे लिए वैसे भी प्रतीत नहीं होता है
चॉपर 3

जवाबों:


12

जॉन सिराकुसा की रिव्यू ऑफ स्नो लेपर्ड में उन्होंने 64-बिट संक्रमण के बारे में चर्चा की

बाघ तेंदुआ हिम तेंदुआ

लघु संस्करण है: क्योंकि कोई 'मिश्रित-मोड' नहीं है 64-बिट कर्नेल के लिए 64-बिट कर्नेल एक्सटेंशन और ड्राइवर की आवश्यकता होती है

जैसा कि वे व्यापक रूप से अभी तक उपलब्ध नहीं हैं, Apple ने बहुत सी चीजों को तोड़ने से बचने के लिए 32-बिट को डिफ़ॉल्ट रूप से चुना।

लेख से निर्देश:

सभी K64- सक्षम मैक के लिए, 64-बिट कर्नेल का चयन करने के लिए एक साथ "6" और "4" कुंजी दबाए रखें। अधिक स्थायी समाधान के लिए, nvram कमांड का उपयोग arch=x86_64अपनी boot-argsस्ट्रिंग में जोड़ने के लिए करें , या फ़ाइल को संपादित करें /Library/Preferences/SystemConfiguration/com.apple.Boot.plistऔर arch=x86_64कर्नेल फ्लैग्स पर क्लिक करें:

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

32-बिट कर्नेल पर वापस जाने के लिए, बूट के दौरान "3" और "2" कुंजियों को दबाए रखें, या ऊपर की तकनीकों में से एक का उपयोग करके "x3_64" को "i386" से बदल दें।


संपादित करने के लिए गैरेथ के लिए धन्यवाद (आर्टिस्टेनिका से इमगुर करने के लिए पुनःशोषित छवि लिंक और लेख से प्रासंगिक निर्देश उद्धृत)।
लेक

7

अधिकांश अन्य ऑपरेटिंग सिस्टमों के विपरीत, स्नो लेपर्ड में 64-बिट कर्नेल चलाने के लिए ज्यादा लाभ नहीं है। विंडोज और लिनक्स में, 64-बिट एप्लिकेशन को चलाने के लिए आपको 64-बिट कर्नेल की आवश्यकता होती है। ओएस एक्स पर, आप 32-बिट कर्नेल के साथ 64-बिट एप्लिकेशन चला सकते हैं।

ज्यादातर लोगों को यह प्रतीत होता है कि ओएस एक्स में 32-बिट कर्नेल को चलाने से उनकी मशीनों के प्रदर्शन या क्षमताओं को सीमित किया जाता है, लेकिन व्यवहार में यह एक महत्वपूर्ण सामग्री प्रभाव नहीं है। 32-बिट कर्नेल 64-बिट अनुप्रयोगों को चलाने का समर्थन करता है, और उन ऐप में वर्चुअल 64-बिट पता स्थान होता है जो कि कर्नेल द्वारा 36-बिट PAE पते स्थान पर मैप किया जाता है, इसलिए वे 64- पर जैसे व्यवहार करेंगे, वैसा ही व्यवहार करेंगे थोड़ा कर्नेल, अधिक विवश स्मृति उपयोग और मेमोरी-मैप किए गए I / O के साथ प्रयोग करने योग्य सीमा तक। जिस तरह से Apple इस एड्रेस स्पेस को 32-बिट कर्नेल में भौतिक मेमोरी के लिए 32 GB सीमा में संभालता है, PAE के साथ 4 GB 32-बिट सीमा को तोड़ता है। प्रदर्शन-वार वहाँ कोई लाभ नहीं है, अगर 32 जीबी मेमोरी या कम के साथ 64-बिट कर्नेल का उपयोग करने के साथ एक औसत दर्जे का है। यदि आप चाहते हैं,6और 4स्टार्टअप पर चाबियाँ। मुझे संदेह है कि आप प्रदर्शन में महत्वपूर्ण अंतर देखेंगे।

अन्य समस्या डिवाइस ड्राइवर, कर्नेल एक्सटेंशन और डिवाइस के फर्मवेयर के साथ संगतता है। डिवाइस ड्राइवर और कर्नेल एक्सटेंशन के लिए, उन्हें बिट-नेस से मेल खाना चाहिए, पुनर्नवीनीकरण किया जाना चाहिए, या फिर से लिखा जाना चाहिए (विशेषकर यदि उनके पास कोई असेंबली है, जो कि उन प्रकार के कोड में आम हैं)। Apple का EFI मूल रूप से केवल 32-बिट में आया था, और हाल ही में कुछ मॉडलों में 64-बिट फर्मवेयर है। फ़र्मवेयर से बात करने के लिए ऑपरेटिंग सिस्टम के लिए, कर्नेल और ईएफआई के बिट-नेस का मिलान करना होगा। ईएफआई से बात करने वाली चीजें स्टार्टअप डिस्क या कुछ पावर मैनेजमेंट कंट्रोल चुनने जैसी चीजें हैं (जैसे कि अगर आपके पास एक से अधिक ओएस एक्स इंस्टॉलेशन हैं और आपको बैटरी खत्म होने के बाद नींद से जागना होगा)।

तो क्या 64-बिट कर्नेल एक लाभ होगा? प्रदर्शन-वार वास्तव में व्यवहार में नहीं है, और मैं बेहतर संगतता के लिए स्नो लेपर्ड चलाने वाली अधिकांश मशीनों के लिए 32-बिट कर्नेल का उपयोग करके Apple के साथ ज्ञान देख सकता हूं।


7

MacRumors पर लीक होने के अनुसार (आधिकारिक दस्तावेज एनडीए के तहत हैं) ( स्रोत ) केवल 64-बिट कर्नेल चलाने वाले निम्न कंप्यूटर का समर्थन करते हैं:

  • 2008 की शुरुआत में मैक प्रो (मैकप्रो 3,1)
  • 2008 की शुरुआत
  • मैकबुक पेशेवरों (15 "/ 17") (मैकबुकप्रो 4,1)
  • 2008 iMacs (iMac 8,1)
  • यूनीबॉडी मैकबुक प्रोस (MacBookPro 5,1 और 5,2)
  • 2009 की शुरुआत में मैक प्रो (MacPro 4,1)
  • 2009 iMacs (iMac 9,1)
  • अर्ली 2009 एक्सरेस (एक्सरेस 3,1)।

डिफ़ॉल्ट रूप से केवल XServes 64-बिट कर्नेल का उपयोग करते हैं।

यदि आप कंप्यूटर 6और 4कीज़ को पकड़ना शुरू करते हैं, तो आप 64-बिट कर्नेल शुरू करेंगे, या किसी अन्य स्रोत के अनुसार उनका एनडीए तोड़कर आप /Library/Preferences/SystemConfiguration/com.apple.Boot.plistकर्नेल फ्लैग जोड़ सकते हैं या इसे nvram में कर सकते हैं।


मुझे वह भी दिखाई दिया, इसीलिए मैंने अपना मॉडल कोड डाला।
चॉपर 3

[६] [४] से काम शुरू होता है, लेकिन, ६४ बिट्स पर चलने वाले कर्नेल के होने का क्या लाभ है? ...
OscarRyz

@ ऑस्कर रेयेस: आप 64-बिट ड्राइवरों का उपयोग कर सकते हैं और प्रक्रियाएं 4 जीबी से अधिक मेमोरी तक पहुंच सकती हैं। तो अभी? जब तक आप सर्वर साइड एप्लिकेशन नहीं चला रहे हैं, जो 4GB से अधिक मेमोरी का उपयोग कर सकता है - इसलिए Xserves पर 64-बिट डिफ़ॉल्ट।
चीलियन


1

जब तक स्नो लेपर्ड जारी नहीं किया जाता है, तब तक हम यह नहीं जान पाएंगे कि सिस्टम 64/32 बिट मोड का समर्थन करेगा ... लेकिन सभी संकेत हैं कि स्नो लेपर्ड कर्नेल समर्थन के साथ पारदर्शी होगा ...

लेकिन, अफसोस, एक "डाउनर" होने के लिए खेद है, यदि आप एक पंजीकृत अपीलीय सदस्य हैं, तो Appleseed फोरम चर्चा करता है कि कर्नेल को 64 बिट मोड पर कैसे बाध्य किया जाए। अन्यथा, यदि आपको कहीं और हिम तेंदुआ मिला है, तो इसके बारे में चिंता न करें।

हिम तेंदुए की रिहाई के कोने के आसपास सही है ...


0

यह ठीक है, यहाँ क्यों है:

  • 32 बिट SL 64 बिट ऐप्स चलाएगा; SL 64 बिट संगत है चाहे आप किस कर्नेल संस्करण को बूट करें

  • SL भले ही 32 बिट कर्नेल के साथ बूट किया गया हो, फिर भी 64 बिट ऐप्स और 4GB से अधिक रैम को चलाने में सक्षम होगा

  • कारण आपको 64 बिट कर्नेल की आवश्यकता होगी यदि कर्नेल को 32 जीबी से अधिक रैम को संबोधित करने की आवश्यकता है (इसलिए यह एक्सफ़ोर्स पर डिफ़ॉल्ट है) या आपके पास 64 बिट केवल कोबे (डेवलपर्स) है

  • 64 बिट कर्नेल आपके कंप्यूटर को जादुई रूप से तेज नहीं बनाते हैं; जब तक आपको 32 GB से अधिक RAM (IOW केवल Xserves वैसे भी) की आवश्यकता नहीं है, तब तक आपको कारणों को संबोधित करने के लिए इसकी आवश्यकता नहीं है

  • उपभोक्ता प्रणालियों पर 32 बिट डिफ़ॉल्ट बनाने और पेशेवरों और डेवलपर्स को 64 बिट कर्नेल विकल्प देने से Apple अधिकतम संगतता और अधिकतम लचीलापन बनाए रख रहा है

  • 64 बिट मुख्य रूप से एक डेवलपर विकल्प है; वे 64 बिट कर्नेल के साथ काम करने के लिए अपने नए 64 बिट ड्राइवर / किक्सट्स का परीक्षण करने के लिए इसका उपयोग कर सकते हैं

हिम तेंदुए से आया हुआ और उद्धृत किया हुआ डिफ़ॉल्ट रूप से 32-बिट कर्नेल लोड करता है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.