ओएस एक्स में कर्नेल एक्सटेंशन को लोड और अनलोड कैसे करें

छोटे के लिए केक्स्ट नामक कर्नेल एक्सटेंशन, कोड के मॉड्यूल हैं जो ओएस एक्स के कर्नेल स्पेस में सीधे लोड होते हैं, जो विभिन्न कार्यों को करने के लिए निम्न स्तर पर दौड़ने में सक्षम होते हैं। अधिकांश केक्सट मुख्य मैक ओएस एक्स सिस्टम सॉफ़्टवेयर का हिस्सा हैं, आमतौर पर हार्डवेयर डिवाइस ड्राइवर, लेकिन कुछ तृतीय पक्ष ऐप्स भी एक केक्स्ट स्थापित करेंगे।

कभी-कभी, उन्नत मैक उपयोगकर्ता और सिस्टम प्रशासकों को कर्नेल एक्सटेंशन मैन्युअल रूप से लोड या अनलोड करने की आवश्यकता हो सकती है। चूंकि कर्नेल एक्सटेंशन अक्सर ओएस एक्स के महत्वपूर्ण घटक होते हैं, यह केवल उन उपयोगकर्ताओं के लिए उपयुक्त है जिनके पास यह संशोधित करने का एक विशिष्ट कारण है कि क्या Kext लोड किया गया है या ओएस एक्स कर्नेल स्पेस में अनलोड किया गया है। केक्स्ट व्यवहार का अनुचित संशोधन मैक हार्डवेयर को बेकार या अप्राप्य प्रस्तुत कर सकता है, और ओएस एक्स को काम करने से भी रोक सकता है, इसलिए किसी भी कर्नेल एक्सटेंशन को किसी भी कारण के बिना बदलने और इसके उपयोग की समझ के बिना बदलने का प्रयास न करें।

Kextload के साथ ओएस एक्स में कर्नेल एक्सटेंशन लोड हो रहा है

ओएस एक्स में कर्नेल एक्सटेंशन लोड करने के लिए, आपको कमांड लाइन kextload उपयोगिता का उपयोग करना होगा। वाक्यविन्यास अन्यथा पर्याप्त सरल है, कार्रवाई करने के लिए प्रशासनिक पहुंच के लिए सुडो की आवश्यकता है:

sudo kextload /path/to/kext.kext

आप -b ध्वज के साथ बंडल पहचानकर्ता (जो अक्सर डिफ़ॉल्ट आदेशों के लक्ष्य होते हैं) का उपयोग कर सकते हैं:

sudo kextload -b com.apple.driver.ExampleBundle

किसी भी तरह से, हिट रिटर्न और व्यवस्थापक पासवर्ड के प्रवेश के साथ कर्नेल एक्सटेंशन ओएस एक्स में लोड किया जाएगा।

आप पुष्टि कर सकते हैं कि दिए गए नाम की खोज करने के लिए grep का उपयोग करके कर्नेल को kextstat के साथ सूचीबद्ध करके लोड किया गया है:

$ kextstat |grep com.apple.driver.ExampleBundle
125 0 0xdddddd7f23351040 0x5000 0x5000 com.apple.driver.ExampleBundle (1) 12 8 7 5 4 2 1

ओएस एक्स में मैन्युअल रूप से कर्नेल एक्सटेंशन को स्थापित करने के बाद यह सहायक हो सकता है क्योंकि कुछ स्थितियों में यह मैक को रीबूट करने की आवश्यकता को रोक देगा।

मैक ओएस एक्स के आधुनिक संस्करणों में कर्नेल एक्सटेंशन लोडिंग को kextutil कमांड के साथ पूरा करने की अनुमति भी मिलती है, जो डीबगिंग कारणों के लिए थोड़ा अधिक पूर्ण रूप से प्रदर्शित है, लेकिन अन्यथा एक केक्स्ट लोड करने के लिए समान है।

Kextunload के साथ कर्नेल एक्सटेंशन को उतारना

ओएस एक्स से कर्नेल एक्सटेंशन को अनलोड करना मूल रूप से एक केक्स्ट लोड करने जैसा सटीक होता है, सिवाय इसके कि आप निम्नानुसार सुडौ के साथ kextunload उपयोगिता का उपयोग करेंगे:

sudo kextunload -b com.apple.driver.ExampleBundle

या सीधे कर्नेल एक्सटेंशन पथ पर इंगित करके:

sudo kextunload /System/Library/Extensions/ThirdPartyMystery.kext

दोबारा, आप पुष्टि कर सकते हैं कि कर्नेल एक्सटेंशन को kextstat और grep का उपयोग करके अनलोड किया गया है, जहां इसे कुछ भी वापस नहीं करना चाहिए।