GVfs
安定版リリース
1.58.0 [ 1 ] ウィキデータで編集する / 2025年9月9日
リポジトリ
オペレーティング·システムリナックス
プラットフォームGNOME
タイプファイルシステムの抽象化レイヤー
ライセンスLGPL-2.0以降
Webサイトgitlab .gnome .org /GNOME /gvfs ウィキデータで編集する

GVfs ( GNOME仮想ファイルシステムの略称)は、GNOMEのユーザー空間仮想ファイルシステムであり、 GLibバージョン2.15.1以降で利用可能なライブラリであるGIOのI/O抽象化と連携して動作するように設計されています。libgioのAPIを使用するアプリケーションによって自動的に使用される複数のモジュールをインストールします。また、GIOを使用しないアプリケーションがGVfsファイルシステムにアクセスできるようにするFUSEサポートもあります。

Linuxカーネルが使用するファイルシステムの抽象化が仮想ファイルシステム(VFS)層とも呼ばれていることが、混乱の原因となっています。ただし、これはより下位レベルのものです。

GVfsモデルは、例えばGnomeVFS(GnomeVFSに代わるモデル)とは異なり、ファイルシステムは使用前にマウントする必要があります。gvfsdマウントの調整を行うマスターデーモン()があり、各マウントは(通常)独自のデーモンプロセスで実行されます(ただし、複数のマウントでデーモンプロセスを共有することもできます)。

GVfsには、ゴミ箱サポート、 SFTPFTPWebDAVSMBUdev統合によるローカルデータ、OBEXMTPなどを含む一連のバックエンドが付属しています。 [ 2 ] GVfsはシェルプロトコル(FISH)を介して転送されるファイルをサポートしていないようです

GVfs には、ボリューム モニターと GNOME URI スキーム ハンドラーの構成を実装するGIO用のモジュールも含まれています。

コマンドライン プログラム「gio」には、GVfs マウント内のファイルに対してコマンド (cat、ls、stat、mount など) を実行できる一連の引数があります。

アタッチされたリソースは、 URI構文(例:smb://server01/gamedataまたはftp://username:[email protected]/public_html)を介して公開されますが、標準のPOSIXコマンドとI/Oを使用するアプリケーションで使用できるように、従来の方法でまたはまたはディレクトリ[ 3 ] [ 4 ]の下にマウントされます。~/.gvfs//run/user/$UID/gvfs$XDG_RUNTIME_DIR/gvfs

技術的な詳細

[編集]
gvfs-udisks2-volume-monitorプロセスのオプションはx-gvfs-show、マウントされたデバイスをGNOME Filesに表示するかどうかを決定します[ 5 ] 。GNOMEディスクのスクリーンショット

GIOは、ネットワークやD-Busのサポートといった一般的に有用なAPIに加え、アプリケーション向けにVFS APIも提供しています。GVfsは、これらに加え、様々なプロトコルを用いてファイルやストレージにアクセスするための実装も提供しています。GVfsは、様々なネットワークファイルシステムの実装をロード可能なモジュールとして提供しています。さらに、ゴミ箱、ネットワーク、最近使用したフォルダ、CD書き込み、コンピュータ上の重要なデバイスやボリュームの監視といった機能もサポートしています。

GVfsの目標は、GnomeVFS [ 6 ]の欠点を克服し、開発者が生のPOSIX呼び出しよりも好むほど優れたAPIを提供することです。これは特にGObjectの使用を意味します。また、POSIX APIのクローンではなく、より高水準でドキュメント中心のインターフェースを提供することも意味します。GTKはこれを直接使用することができ、例えばファイル選択ツールで使用できます。

アプリケーションは、GIO拡張ポイントを実装したGVfsモジュールをGIOがロードすることで、間接的にGVfsを使用します。GVfsのメインデーモンであるgvfsdは、個々の接続ごとに追加のマウントデーモンを起動します。ボリューム監視のためのGVfsサポートは、別のロード可能なモジュールに含まれています。

実際の G​​Vfs 実装は、複数のプロセスに分散されます。

GVfsはFUSEを使ってVFSをファイルシステムに直接マウントすることができる。[ 7 ]これは2つの部分から構成されている。[ 8 ]

  1. GIOをサポートするアプリケーションによってロードされる共有ライブラリ
  2. GVfs 自体には、 D-Busを介して相互に通信し、GIO モジュールと通信するデーモンのコレクションが含まれています

コマンドラインユーティリティ(gvfs-mount、gvfs-lessなど)のコレクションはVFSリソースで動作します。[ 9 ]

デーモンタスク
主要
gvfsdgvfsd は GVfs のメインデーモンです。セッションバス上で"org.gtk.vfs.Daemon"という名前を提供します。gvfsd は、実行されていない場合、GIO クライアントによって自動的に起動されます。gvfsd の主な役割は、マウントトラッカー/マネージャーとして機能することです。要求に応じて新しいバックエンドを生成し、そのライフサイクルを追跡し、アクティブなマウントのリストを維持し、それらへの直接接続を作成します。gvfsd はまた、gvfsd-fuse(1) を起動し、fuse ファイルシステムをマウントするマウントポイントを提供します。
gvfsd-fusegvfsd-fuseは、POSIXアプリケーションでGVfsバックエンドを利用できるようにするために、FUSE(Filesystem in Userspace)マウントを管理します。fuseファイルシステムのマウントポイントは[PATH]引数で指定します。gvfsd-fuseは通常、gvfsdによって起動されます。
gvfsdメタデータgvfsd-metadata は、内部 gvfs メタデータストレージへの書き込みシリアライザーとして機能するデーモンです。GIO クライアントがメタデータを変更すると、自動的に起動されます読み取り操作はクライアント側の GIO コードによって直接実行されるため、デーモンの実行は必要ありません。gvfs メタデータ機能は、例えばGNOME Filesファイルマネージャーで使用されます。
ボリュームモニター
gvfs-goa-ボリュームモニターGNOME オンライン アカウントのサポート( GNOME wiki の GNOME オンライン アカウントを参照)
gvfs-gphoto2-ボリュームモニターgPhotoに実装されている画像転送プロトコルのサポート
gvfs-mtp-ボリュームモニターメディア転送プロトコルのサポート
gvfs-udisks2-ボリュームモニターgvfs-udisks2-volume-monitor プロセスは、デスクトップのユーザーインターフェースに表示されるディスク、メディア、マウント、およびfstabエントリを担当しています。特に、GNOME ShellGNOME Files、および GLib API を使用する他のアプリケーションは、このプロセスの情報を使用しています。[ 5 ] Debian では、gvfs-daemons パッケージの一部として配布されています。[ 10 ] udisks2 パッケージの一部である udisksd および udisksctl と混同しないでください。[ 11 ]
udisks : udisks デーモンは、 D-Busを介して実装されたシステムブロックデバイスへのインターフェースとして機能します。ハードディスクや USB サムドライブなどのストレージデバイスのクエリ、マウント、アンマウント、フォーマット、デタッチなどの操作を処理します。
gvfs-afc-ボリュームモニターApple File Conduitのサポート
バックエンドをマウントする
gvfsd-afciPhone/iPod touchのボリュームをマウントします
gvfsd-afpApple Filing Protocolボリュームをマウントします
gvfsd-afp-browseApple Filing Protocol ボリュームを参照します
gvfsdアーカイブさまざまな形式のアーカイブファイルをマウントします
gvfsd-バーンCD/光ディスクを書き込む場所を提供します
gvfsd-cddaオーディオCDをマウントします
gvfsd-コンピュータコンピュータを提供します://
gvfsd-davDAVファイルシステムをマウントする
gvfsd-dnssdDNS-SDを閲覧する
gvfsd-ftpFTP経由でマウント
gvfsd-gphoto2PTP経由でマウントされるため、GVfsはlibgphoto2を使用してカメラ内の写真をVFS経由でGNOMEアプリケーションに公開します。
gvfsd-httpHTTP経由でマウント
gvfsd-localtestテストバックエンド
gvfsd-mtpMTPの上にマウント
gvfsdネットワークネットワークを提供します://
gvfsd-nfsNFSプロトコル経由でマウント
gvfsd-最近最近の://を提供します
gvfsd-sftpsftp経由でマウント
gvfsd-smbSMB(Windows Shares Filesystem)ボリュームをマウントします
gvfsd-smb-browseWindows共有ファイルシステムのボリュームを参照します
gvfsd-ゴミ箱ゴミを提供します://

公式ドキュメントについては、 https://wiki.gnome.org/Projects/gvfs/backendsを参照してください。

ホットプラグ

[編集]

eSATAまたはUSB経由で接続されたデバイスは、物理的にホットプラグ可能である(はず)です。デバイスがコンピュータシステムに物理的に接続されたり、物理的に取り外されたりすると、Linuxカーネルはそれを検知し、ユーザー空間にイベントを送信します。Linuxカーネルsystemd-udevdはこれらのイベントを受信し、非常に包括的な設定に従って応答します。

  • にマウントされた特殊なファイルシステムdevfsを管理します/dev。そのため、systemd-udevdは/devからデバイスノードを動的に作成および削除し、起動時に必要に応じてドライバーをロードします。
  • ブロックデバイスの場合、systemd-udevdはudisksd、、およびgvfsdを通知しますgvfs-udisks2-volume-monitor[ 12 ]

udisks2デーモンはudisksd、D-Bus経由で実装されたシステムブロックデバイスへのインターフェースとして機能します。ハードディスクやUSBメモリなどのストレージデバイスのクエリ、マウント、アンマウント、フォーマット、デタッチといった操作を処理します。このパッケージには、これらの操作をコマンドラインから実行するためのユーティリティも含まれています( PolicyKitudisksctlで許可されている場合)。

パッケージ

[編集]

Debianでは、 GVfs はgvfsgvfs-daemonsgvfs-bingvfs-backendsの 4 つのパッケージにパッケージ化されています。

参照

[編集]

参考文献

[編集]
  1. ^ 「リリース 1.58.0」 2025年9月9日. 2025年9月13日閲覧
  2. ^ GNOME 2.22 リリースノート、 6.1: GVfs と GIO 2008年6月1日アーカイブ、 Wayback Machine
  3. ^ "gvfsd-fuse.1 - manned.org" . manned.org . 2018年4月18日閲覧
  4. ^ 「Nautilusのリモートフォルダのデフォルトのマウントポイント」 askubuntu.com 2018年4月18日閲覧
  5. ^ a b "udisks2/what-is-shown.txt" . 2012年12月5日.
  6. ^ 「gnome-vfsの代替計画」 . mail.gnome.org . 2018年4月18日閲覧
  7. ^ "gvfs status report" . mail.gnome.org . 2018年4月18日閲覧
  8. ^ 「GNOMEvfs を使ったファイル操作」 Linux.com
  9. ^ 「OpenSolaris 2009.06 - gvfs-mount のマニュアルページ(opensolaris セクション 1) - Unix および Linux コマンド」 www.unix.com 20184月18日閲覧
  10. ^ 「gvfs-daemons パッケージのファイルリスト」
  11. ^ 「udisks2 パッケージのファイルリスト」
  12. ^ David Zeuthen (2014年5月28日). 「Udisks2による最新のマウント」 . 2015年4月25日時点のオリジナルよりアーカイブ2015年12月13日閲覧。
[編集]