ガイド
FSKit:アプリがmacOSにファイルシステムを追加する仕組み
何十年ものあいだ、Macに新しい種類のドライブを加えるには、カーネルの中で動くコードが必要でした。FSKitなら普通のアプリがその役を担えます。そしてmacOS 26で、アプリがマウントできるものの幅が広がりました。
FSKitは、アプリが作るファイルシステムのためのAppleのフレームワークです。アプリは小さな機能拡張を同梱し、その機能拡張はほかのプロセスと同じようにユーザー空間で動きます。macOSは、機能拡張が提供するものをボリュームとしてFinderにマウントします。FSKit以前は、他社製のファイルシステムといえばカーネル機能拡張のことで、Appleシリコン搭載のMacでは、復旧からMacのセキュリティ設定を下げる必要もありました。
FSKitが登場したのは2025年3月のmacOS Sequoia 15.4で、対象はディスク上にあるファイルシステムでした。macOS 26では、パスとURLという2種類の新しいソースが加わり、フォルダ、サーバー、ケーブルの先のデバイスからもファイルシステムを作れるようになりました。使う側に必要なのは、システム設定のスイッチ1つだけです。場所は一般 > ログイン項目と機能拡張 > ファイルシステム機能拡張です。
ファイルシステムの役割
Macのボリュームには、どれも背後にファイルシステムがあります。Finderがフォルダの中身を表示するとき、あるいはアプリがファイルを開くとき、macOSはそのファイルシステムに名前、サイズ、日付、そしてデータそのものを尋ねます。ファイルシステムは、データが実際にある場所から答えます。APFSならSSDのパーティション、exFATならメモリカード、SMBならサーバーです。
FSKitモジュールは、この答える部分を、アプリに含まれる機能拡張としてパッケージにしたものです。AppleのドキュメントはこれをFSModuleと呼び、3つの概念で説明しています。データの出どころであるリソース、リソースをボリュームに変えるコンテナ、そして目に見えるフォルダとファイルであるボリュームそのものです。FSKitは、Disk Arbitrationやmountコマンドなど、ディスクとマウントをすでに扱っているmacOSの部分にモジュールをつなぎます。今のところFSKitがサポートするのは、1つのリソースが1つのボリュームになる単純な形だけです。Appleは、Mac自身のファイルシステムの多くがこの形だと述べています。
FSKit以前:カーネル機能拡張とmacFUSE
カーネル機能拡張は、macOSの中核であるカーネルの中で、マシン全体にアクセスできる状態で動きます。1つのバグでMac全体が止まることもあります。Appleはもうカーネル機能拡張を推奨しておらず、Appleシリコン搭載のMacでは、他社製のカーネル機能拡張はすべて初期設定でブロックされます。許可するには、Macをシステム終了してmacOS復旧で起動し、起動セキュリティユーティリティを開いて低セキュリティを選び、確認済みの開発元から提供されたカーネル機能拡張のユーザ管理を許可にチェックを入れます。そのうえで機能拡張を承認し、もう一度再起動します。
macFUSEは、こうした事情の中で育ちました。1つのカーネル機能拡張の上で、多くのファイルシステムを普通のプログラムとして動かせるようにするもので、長年、他社製のファイルシステムの多くはこれを通じてMacにやってきました。今もカーネル機能拡張が初期設定です。バージョン5からは、カーネル機能拡張も復旧での変更も要らないFSKitバックエンドも用意されています。ただし、そのバックエンドにまだできないこと(/Volumes以外の場所へのマウントなど)が公式ドキュメントに挙げられていて、FSKitのボリュームはカーネル版ほどの性能が出ないとも書かれています。
Appleも自社のファイルシステムを同じ方向に移してきました。macOS Sonomaでは、exFATとFATをカーネルから出し、ユーザー空間で動くサービスに移しています。
| カーネル機能拡張 | FSKitモジュール | |
|---|---|---|
| コードが動く場所 | カーネルの中 | ユーザー空間(アプリの機能拡張として) |
| 1つのバグでMac全体が止まる | はい | いいえ。ただし、止まったモジュールのせいで再起動までマウントできなくなることがある |
| Appleシリコンでの復旧と低セキュリティ | 必要 | 不要 |
| Mac App Storeでの販売 | 不可 | 可能 |
| オンにする場所 | Appleシリコンでは復旧、次にシステム設定、そして再起動 | システム設定(ユーザーアカウントごとに1回) |
| 提供開始 | 最初のMac OS X | macOS 15.4(パスとURLはmacOS 26から) |
macOS 26で増えたこと
macOS 15.4でFSKitがモジュールに渡すリソースは、ディスクのパーティション、FSBlockDeviceResourceでした。これはUSBディスク上のext4やNTFSのような、ドライブのフォーマットを読むためのファイルシステムに向いていて、当初の狙いもそこにありました。
macOS 26では、リソースの種類が2つ増えました。FSPathURLResourceはMac上のパス(フォルダやファイル)を表し、FSKitは、マウントを求めるアプリからモジュールまで、セキュリティスコープ付きのURLをそのまま受け渡します。FSGenericURLResourceは、どんなURLでも表せます。モジュールは理解できるURLスキームをInfo.plistで宣言し、URLが何を意味するかは、すべてモジュールに任されます。Apple自身が挙げる例は、ハードウェアの場所を示すものと、リモートファイルシステムのネットワークアドレスです。
スマホを扱えるのは、この2つ目の種類のおかげです。SideMountのモジュールは、スマホを指すadb://のURLからマウントされ、Androidの開発者ツールが使うadbプロトコルで、ケーブル越しにスマホとやり取りします。この流れのどこにもディスクはありません。SideMountがmacOS 26以降を必要とするのはそのためです。
FSKitの機能拡張をオンにする
macOSは、許可されるまでファイルシステム機能拡張を動かしません。FSKitアプリはどれも、最初に1回だけこれを求めます。
- システム設定 > 一般 > ログイン項目と機能拡張を開きます。
- 機能拡張までスクロールし、一覧をカテゴリ別に切り替えます。アプリ別の表示にはファイルシステム機能拡張の行がなく、多くの人がここでつまずきます。
- ファイルシステム機能拡張を開き、そのアプリの機能拡張をオンにします。
このスイッチはユーザーアカウントごとのものです。Appleのエンジニアの説明によると、FSKitはアプリの機能拡張の仕組みの上に作られていて、アプリの機能拡張はユーザー単位で扱われます。そのため、共有のMacではアカウントごとにオンにします。オフに戻すのも同じスイッチです。SideMountのセットアップガイドでは、この手順を画像つきで説明しています。
使う側から見たFSKit
FSKitのボリュームは、ほかのドライブと同じようにふるまいます。Finderに表示され、ターミナルやスクリプトから使えるパスがあり、どのアプリからもファイルを開き、保存し、コピーできます。ほとんどのMTPアプリのように、専用のウインドウにファイルを表示するアプリとはここが違います。この方法でマウントしたスマホがrsyncやPhotoshop、VLCで使えるのも、そのためです。実際にどう見えるかはAndroidスマホを外付けドライブとして使うで紹介しています。
1つだけ、習慣にしたいことがあります。FSKitのボリュームは、強制せずに、Finderやアプリから普通に取り出してください。macOSのFSKitデーモンfskitdは、強制的なアンマウントのあとで動かなくなることがあり、そうなるとMacを再起動するしかありません。また、FSKitはまだ新しい技術です。カーネルのファイルシステムにできることの一部は、まだフレームワークにありません。各アプリの説明に目を通しておく価値があります。
よくある質問
FSKitにはどのバージョンのmacOSが必要ですか?
フレームワーク自体はmacOS Sequoia 15.4からあります。スマホやサーバーにつながるものなど、ディスクではなくパスやURLから読むファイルシステムには、macOS 26が必要です。そうしたリソースの種類が加わったのがmacOS 26だからです。最低バージョンは、アプリごとに示されています。
システム設定でファイルシステム機能拡張が見つからないのはなぜですか?
「一般」>「ログイン項目と機能拡張」の「機能拡張」の一覧には、2つの表示方法があります。ファイルシステム機能拡張は「カテゴリ別」の表示にしか現れないので、そちらに切り替えれば行が見つかります。
FSKitはFile Providerと同じものですか?
いいえ。File Providerは、クラウドストレージのアプリが、リモートのファイルをFinderに表示し、必要なときにダウンロードするためのフレームワークです。FSKitは本物のボリュームをマウントし、どのアプリからもターミナルからも使えるパスを持たせます。
ファイルシステム機能拡張をオンにしても安全ですか?
FSKitの機能拡張は、署名されたアプリの一部としてユーザー空間で動き、カーネル機能拡張のようなカーネルへのアクセスは持ちません。Macの起動セキュリティを変える必要もありません。オンにするのは、信頼できるアプリのものだけにしてください。システム設定の同じスイッチで、それぞれをオフに戻せます。