本連載「Apple Geeks」は、Apple製ハードウェア/ソフトウェア、またこれらの中核をなすOS X/iOSに関する解説をあますことなくお贈りする連載です(目次はこちら)。
UNIX使い向けをはじめ、Apple関連テクノロジー情報を知りつくしたいユーザーに役立つ情報を提供します。
機能拡張の仕組みと使い方
ついに復活しました! 場所も名前も変わったものの、書き手と担当編集者は同一人物。スタイルやノリも同じ。何と同じか……ですと? 筆者の名前と「OS X」でググってくださいませ。毎週月曜更新ですので、ご愛顧のほどよろしくお願いします!
さて、今回は「KEXT」について。いわゆるデバイスドライバーとしての機能を提供するプログラムだが、システムの核たるカーネルに近い部分で動作するため、システムの安定動作に大きく影響する。ここを整理し、システムの負荷軽減ひいては安定稼働に寄与することが、今回の目的だ。
What's KEXT?
KEXT(Kernel EXTension)は、文字通りカーネルを拡張するローダブルモジュールの一種。必要に応じてメモリーにロードされ、各種ハードウェアやファイルシステムにアクセスする機能を提供する。その多くはデバイスドライバーであり、アップルが開発したシステム標準装備のものから、周辺機器に添付されていたサードパーティー製まで、基本的に/System/Library/Extensions
ディレクトリー以下へインストールされる。
KEXTは、一度管理者権限でインストールしてしまえば、メンテナンスフリーだ。必要に応じ動的にメモリー上へロードされるため、ユーザーが存在を意識する必要はない。
しかし、システム不安定化の原因となることも。ベータ版のドライバーをインストールしてからシステムが不安定だ、ときどきカーネルパニックが発生するといった場合にはそのKEXTを疑うべきだろう。
とはいえ、/System/Library/Extensions
ディレクトリーを眺めたところで、どのKEXTが問題のドライバーなのか、多くのユーザーには判別が難しいはず。「よくわからないままに削除を強行したところ、それは重要なシステム標準装備のKEXTだった」となると目も当てられない。カーネルに近い部分で動作するプログラムなだけに、安易な削除は反対にシステムを不安定化させかねないのだ。
対象のKEXTを絞り込む
問題のKEXTを特定するには、2段階の作業が必要だ。作業には「アプリケーション」 - 「ユーティリティ」フォルダーにある「ターミナル」(Terminal)が欠かせないため、まずは起動してほしい。
最初は、システム上に存在する(システムが認識している)KEXTの確認から。方法は2つ、「システムプロファイラ」で「ソフトウェア」→「機能拡張」を選択するか、「ターミナル」で「kextfind -e
」を実行するかだ。これで、KEXTの名称や製造元などの情報を確認できるため、おおよその見当がつくことだろう。
続いては、対象のKEXTがメモリー上にロードされているかどうかの確認を行なう。利用するのは「kextstat
」、実行時点でメモリー上にロードされているKEXTをリストアップするコマンドだ。このとき注目すべきは、KEXTが持つ一意のID(CFBundleIdentifier)。今回の作業の目的は、サードパーティー製KEXTの洗い出しにあるため、grep
にパイプしてアップルが開発したもの(すべてcom.appleから始まる)を除外して表示する(「kextstat | grep -v com.apple
」)。これで、メモリー上にロードされているKEXTをリストアップできたはずだ。
対象とするKEXTのCFBundleIdentifierに目星がついたら、以下の要領でkextfind
コマンドを実行し、そのIDを持つKEXTを検索してみよう(com.iospirit.driver.rbiokithelperは、あくまで筆者の環境での一例)。最初の手順でおおよその見当をつけたKEXTと一致していれば、そのKEXTをメモリー上からアンロードしたあと/System/Library/Extensions
ディレクトリーから削除する、という流れで作業を進める。
$ /usr/sbin/kextfind -bundle-id com.iospirit.driver.rbiokithelper
/System/Library/Extensions/RBIOKitHelper.kext

この連載の記事
-
第187回
iPhone
NFCの世界を一変させる!? iOS 11「Core NFC」の提供開始が意味するもの -
第186回
iPhone
Appleと「4K HDR」 - iOS 11で写真/動画を変える「HEIF」と「HEVC」 -
第185回
iPhone
iPhone 7搭載の「A10 Fusion」「W1」は何を変えるか -
第184回
iPhone
オープンソース化された「PowerShell」をMacで使う -
第183回
iPhone
アップル製デバイス連携の鍵、「Continuity」とは? -
第182回
iPhone
DCI-P3準拠へと歩むiPhone/iPad - WWDC基調講演で秘められた新技術は、ここにある(2) -
第181回
iPhone
WWDC基調講演で秘められた新技術は、ここにある(1) -
第180回
iPhone
WWDC直前、買い替え前にマイMacのココをチェック -
第179回
iPhone
私がiTunesを使わなくなった5つの理由 -
第178回
iPhone
今あえてiPhone「Live Photos」を知る -
第177回
iPhone
「Windows Subsystem for Linux」はOS Xのライバルとなるか? - この連載の一覧へ