วิธีโหลดและยกเลิกการต่ออายุส่วนขยายของเคอร์เนลใน OS X

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

บางครั้งผู้ใช้ Mac ขั้นสูงและผู้ดูแลระบบอาจต้องโหลดหรือยกเลิกการโหลดส่วนขยายของเคอร์เนลด้วยตนเอง เนื่องจากส่วนขยายของเคอร์เนลเป็นส่วนประกอบที่สำคัญของ OS X ดังนั้นจึงเหมาะสำหรับผู้ใช้ที่มีเหตุผลเฉพาะเจาะจงเพื่อแก้ไขว่า kext ถูกโหลดหรือยกเลิกการโหลดลงในพื้นที่เคอร์เนลของ OS X การปรับเปลี่ยนลักษณะการทำงาน kext ไม่เหมาะสมอาจทำให้ฮาร์ดแวร์ Mac ไร้ประโยชน์หรือไม่สามารถเข้าถึงได้และยังป้องกัน OS X ไม่ให้ทำงานได้ดังนั้นอย่าพยายามเปลี่ยนส่วนขยายเคอร์เนลใด ๆ โดยไม่มีเหตุผลที่น่าสนใจและเข้าใจว่าการใช้งานเป็นอย่างไร

กำลังโหลดส่วนขยายเคอร์เนลใน OS X ด้วย kextload

ในการโหลดส่วนขยายของเคอร์เนลลงใน OS X คุณจะต้องใช้อรรถประโยชน์ kextload ของบรรทัดคำสั่ง ไวยากรณ์เป็นอย่างอื่นง่ายพอที่ต้อง sudo สำหรับการเข้าถึงผู้ดูแลระบบเพื่อดำเนินการ:

sudo kextload /path/to/kext.kext

นอกจากนี้คุณยังสามารถใช้ตัวระบุกลุ่ม (ซึ่งมักเป็นเป้าหมายของคำสั่งดีฟอลต์) โดยใช้ค่าสถานะ -b:

sudo kextload -b com.apple.driver.ExampleBundle

ไม่ว่าจะเป็นวิธีใดก็ตามให้กด return และใส่รหัสผ่านของผู้ดูแลระบบส่วนขยายเคอร์เนลจะถูกโหลดลงใน OS X

คุณสามารถยืนยันเคอร์เนลได้รับการโหลดโดยการแสดงรายการด้วย kextstat โดยใช้ grep เพื่อค้นหาชื่อที่กำหนดเช่น:

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

การดำเนินการนี้อาจมีประโยชน์หลังจากติดตั้งส่วนขยายเคอร์เนลลงใน OS X ด้วยเช่นกันในบางสถานการณ์จะเป็นการป้องกันไม่ให้ต้องรีบูตเครื่อง Mac

Mac OS X รุ่นใหม่ยังช่วยให้การโหลดส่วนขยายเคอร์เนลเสร็จสมบูรณ์ด้วยคำสั่ง kextutil ซึ่งเป็นบิตเพิ่มเติมที่มีคุณลักษณะสำหรับการแก้จุดบกพร่อง แต่เป็นอย่างอื่นสำหรับการโหลด kext

การขยายส่วนขยายเคอร์เนลด้วย kextunload

การยกเลิกการโหลดส่วนขยายของเคอร์เนลจาก OS X โดยทั่วไปจะเหมือนกับการโหลด kext ยกเว้นคุณจะใช้อรรถประโยชน์ kextunload กับ sudo ดังนี้:

sudo kextunload -b com.apple.driver.ExampleBundle

หรือโดยชี้โดยตรงไปยังเส้นทางของส่วนขยายเคอร์เนล:

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

อีกครั้งคุณสามารถยืนยันการขยายเคอร์เนลได้รับการยกเลิกการโหลดโดยใช้ kextstat และ grep ซึ่งจะไม่มีผลตอบแทนใด ๆ