あまり知られていないmacOS Big Sur以降で利用不可になるkext

画像出典 WWDC 2019 セッション702

Appleは1年前のWWDC 2019のセッション702において将来的にmacOSでのカーネル拡張(kext - Kernel Extensions)の廃止をアナウンスし、従来のkextからSystem Extensions及びDriverKitという新たなフレームワークへ移行することを発表している。

このため、macOS Catalinaがkextをフルサポートする最後のmacOSとなり、macOS Big SurではいくつかのKPI(Kernel Programming Interface)を用いたkextがサポートされなくなる。

参考 Apple、将来のmacOSでカーネル拡張(kext)を廃止しDriverKitへ移行するのに伴い、macOS 10.15.4 Catalinaでは非推奨のKPIがアプリで使用されるとユーザーに通知すると発表。AAPL Ch. 参考 Some Kernel Extensions Won’t Work in macOS 11 Big SurThe Mac Observer

ここではmacOS Big Sur以降でサポートされなくなるkextとSystem Extensions・サードパーティーkextのリストアップ方法をまとめる。

macOS Big Sur以降でサポートされなくなるkext

macOS Big Sur、及び将来のアップデートでサポートされなくなるkextは以下の通り。

  • KAUTH
  • Network Filter
  • IOHIDFamily
  • IOUSBFamily
  • USB Networking
  • USB Serial
  • USB Vendor Specific IPC
参考 Deprecated Kernel Extensions and System Extension AlternativesApple Developer

Appleはこれらのkextを利用するアプリケーション・ドライバーのデベロッパーに対して推奨されるフレームワークへの移行を促している。

一部のアプリケーションでは影響が出ている

この変更は多くのエンドユーザーにとってあまり大きな問題となるものではないが、例えば先日紹介したネットワーク監視アプリ「Little Snitch」はmacOS Big Surで「Network Filter」がサポートされなくなったことで、次期バージョンではAppleが推奨する「Network Extension framework」へと移行することをアナウンスしている。

画像出典 WWDC 2019 セッション702

現行のLittle Snitchであれば「Network Filter」がmacOS Big Surではデフォルトではロードされなくなるため通常の方法では実行が不可能となる。

そのため、前述のkextを利用するアプリケーションはLittle Snitchのようにデベロッパーが対応しなければmacOS Big Surでは利用不可、もしくは機能に制限が加わる可能性がある。

なお、Little Snitchについては下記記事を参照して頂きたい。

Macの通信をマップ上で可視化する「Little Snitch」

現在MacにロードされているSystem Extensions及びサートパーティーkextをリストアップする

現在自分のMacにロードされているSystem Extensions及びサードパーティーのkextをリストアップするには下記コマンドを実行する。

System Extensionsをリストアップ

systemextensionsctl list

僕の環境では現在macOS内に存在するSystem Extensionsは「0」であることがわかる。

サードパーティーのkextをリストアップ

kextstat | grep -v com.apple

System Extensionsと違ってkextは長らくmacOSで採用されてきた仕組みであるため、サードパーティーのkextに限っても僕の環境では3つほどのkextが見つかった。

上記画像ではIntelのドライバー、及びSteam、前述したLittle Snitchのkextがリストアップされているが、この内少なくともLittle Snitchのkext(nke - Network Kernel Extension)は前述の通りサポート外のkextであるため、macOS Big SurではロードされなくなりLittle Snitchが通常の方法では動作しなくなる。

macOS Big Surを将来的に導入する場合、現在自分が愛用しているアプリケーションがあるのなら上記コマンドでサードパーティーのkextをリストアップし、愛用しているアプリケーションのkextがある場合は公式サイトのチェックやデベロッパーへ確認を取った方がいいだろう。

まとめ

前述の通りkextが将来的に廃止となることは1年前からアナウンスされており、影響を受けるアプリケーションはそれほど多くないと思われる。

ただ、動作しなくなると困るといったアプリケーションがある場合は念のため前述の方法でkextをチェックしよう。