Mac OS X で & アンロード カーネル エクステンションをロードする方法
目次:
略して kext と呼ばれるカーネル拡張機能は、Mac OS X のカーネル空間に直接読み込まれるコードのモジュールであり、さまざまなタスクを実行するために低レベルで実行できます。ほとんどの kext は、コア Mac OS X システム ソフトウェア (通常はハードウェア デバイス ドライバー) の一部ですが、一部のサード パーティ アプリも同様に kext をインストールします。
Mac の上級ユーザーやシステム管理者は、カーネル エクステンションを手動でロードまたはアンロードする必要がある場合があります。カーネル拡張機能は多くの場合、MacOS の重要なコンポーネントであるため、これは、kext が MacOS X カーネル空間にロードまたはアンロードされるかどうかを変更する特定の理由があるユーザーにのみ適しています。 kext の動作を不適切に変更すると、Mac ハードウェアが役に立たなくなったり、アクセスできなくなったりする可能性があり、Mac OS X がまったく機能しなくなる可能性もあります。そのため、やむを得ない理由とその使用法を理解することなく、カーネル拡張機能を変更しようとしないでください。
kextload を使用して Mac OS X にカーネル エクステンションをロードする
カーネル拡張機能を Mac OS X にロードするには、コマンド ライン kextload ユーティリティを使用する必要があります。それ以外の場合、構文は十分に単純であり、アクションを実行するには管理アクセスに sudo が必要です:
sudo kextload /path/to/kext.kext
バンドル識別子 (デフォルト コマンドの対象となることが多い) を -b フラグと共に使用することもできます:
sudo kextload -b com.apple.driver.ExampleBundle
いずれの方法でも、Return キーを押して管理者パスワードを入力すると、カーネル拡張機能が Mac 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
Mac OS X の最近のバージョンでは、kextutil コマンドを使用してカーネル エクステンションのロードを完了させることもできます。これは、デバッグの理由から、もう少しフル機能ですが、それ以外は kext のロードと同じです。
kextunload によるカーネル拡張のアンロード
Mac OS X からカーネル拡張機能をアンロードすることは、次のように sudo で kextunload ユーティリティを使用することを除いて、基本的に kext をロードすることとまったく同じです:
sudo kextunload -b com.apple.driver.ExampleBundle
またはカーネル拡張機能のパスを直接指定:
sudo kextunload /System/Library/Extensions/ThirdPartyMystery.kext
繰り返しになりますが、kextstat と grep を使用して、カーネル エクステンションがアンロードされたことを確認できます。ここでは何も返されません。