Jak załadować & Rozładuj rozszerzenia jądra w systemie Mac OS X
Spisu treści:
- Ładowanie rozszerzenia jądra w systemie Mac OS X za pomocą kextload
- Zwalnianie rozszerzenia jądra za pomocą kextunload
Rozszerzenia jądra, zwane w skrócie kext, to moduły kodu, które są ładowane bezpośrednio do przestrzeni jądra systemu Mac OS X i mogą działać na niskim poziomie w celu wykonywania różnych zadań. Większość kextów jest częścią podstawowego oprogramowania systemu Mac OS X, zwykle sterowników urządzeń, ale niektóre aplikacje innych firm również instalują kext.
Czasami zaawansowani użytkownicy komputerów Mac i administratorzy systemów mogą potrzebować ręcznie załadować lub usunąć rozszerzenie jądra.Ponieważ rozszerzenia jądra są często krytycznymi składnikami systemu MacOS, jest to odpowiednie tylko dla użytkowników, którzy mają określony powód, aby modyfikować, czy kext jest ładowany, czy usuwany do przestrzeni jądra MacOS X. Niewłaściwa modyfikacja zachowania kext może sprawić, że sprzęt Mac stanie się bezużyteczny lub niedostępny, a także może całkowicie uniemożliwić działanie systemu Mac OS X, więc nie próbuj zmieniać żadnego rozszerzenia jądra bez ważnego powodu i zrozumienia, do czego służy.
Ładowanie rozszerzenia jądra w systemie Mac OS X za pomocą kextload
Aby załadować rozszerzenie jądra do systemu Mac OS X, musisz użyć narzędzia kextload wiersza poleceń. Poza tym składnia jest dość prosta i wymaga sudo, aby uzyskać dostęp administracyjny do wykonania akcji:
sudo kextload /ścieżka/do/kext.kext
Możesz także użyć identyfikatora pakietu (który często jest celem poleceń defaults) z flagą -b:
sudo kextload -b com.apple.driver.ExampleBundle
Tak czy inaczej, naciśnij klawisz Return i po wprowadzeniu hasła administratora rozszerzenie jądra zostanie załadowane do systemu Mac OS X.
Możesz potwierdzić, że jądro zostało załadowane, wyświetlając je w kextstat, używając grep do wyszukania podanej nazwy w następujący sposób:
$ kextstat |grep com.apple.driver.ExampleBundle 125 0 0xdddddd7f23351040 0x5000 0x5000 com.apple.driver.ExampleBundle (1) 12 8 7 5 4 2 1
Może to być pomocne po ręcznym zainstalowaniu rozszerzenia jądra w systemie Mac OS X, ponieważ w niektórych sytuacjach zapobiegnie to konieczności ponownego uruchamiania komputera Mac.
Nowoczesne wersje systemu Mac OS X umożliwiają także ładowanie rozszerzeń jądra za pomocą polecenia kextutil, które jest nieco bardziej funkcjonalne ze względu na debugowanie, ale poza tym działa tak samo przy ładowaniu kext.
Zwalnianie rozszerzenia jądra za pomocą kextunload
Usuwanie rozszerzenia jądra z systemu Mac OS X jest w zasadzie dokładnie takie samo, jak ładowanie kext, z tym wyjątkiem, że użyjesz narzędzia kextunload z sudo w następujący sposób:
sudo kextunload -b com.apple.driver.ExampleBundle
Lub wskazując bezpośrednio ścieżkę rozszerzeń jądra:
sudo kextunload /System/Library/Extensions/ThirdPartyMystery.kext
Ponownie możesz potwierdzić, że rozszerzenie jądra zostało zwolnione, używając kextstat i grep, gdzie nie powinno nic zwracać.