新しくなったこと 〜開発者向け〜
GNOME 2.22 の開発者向けプラットフォームは、独立系ソフトベンダー (ISV) の開発者がサード・パーティのアプリケーションを作成できるようにするための安定した基本 API 集を提供します。GNOME とそのプラットフォームは、GNOME の上で動作するフリーまたは商用のソフトウェアを開発できるようなライセンスで配布されています。
GNOME プラットフォームに含まれるライブラリは他の GNOME 2.x シリーズとの間で API 並びに ABI の互換性を保証しています。GNOME デスクトップに含まれるライブラリではこのような保証はありませんが、ほとんどのリリースで一貫性が保たれるような設計になっています。
- 6.1. GVFS と GIO
- 6.2. Anjuta 統合開発環境
6.1. GVFS と GIO
GVFS とはユーザ空間の仮想ファイルシステムであり、SFTP や FTP、DAV、SMB、ObexFTP といった各種プロトコルのバックエンドを持ちます。GVFS は従来の GNOME-VFS に置き換わるものです。現在のところ GNOME-VFS は廃止する方向で検討されており、GNOME アプリケーションの開発者は今後このフレームワークを利用しないようにして下さい。
GVFS は GIO と GVFS という二つの部分から構成されています:
- GLib の共有ライブラリの一部として提供されている GIO は GVFS 用の API を提供します
- GVFS 自身はいろいろな種類のファイルシステムや SFTP、FTP、DAV、SMB、ObexFTP といった各種プロトコルのバックエンドを持つ新しいパッケージです
GVFS と GIO の目標は現代的で使いやすい仮想ファイルシステムを提供することにあります。すなわち POSIX IO を直接呼び出すよりも API の呼び出しを好む開発者向けにそのようなインタフェースを提供することです。また、POSIX IO の API をそっくりまねるのではなく、上位の API として通用するドキュメント中心 (document-centric) のインタフェースを提供しています。GIO は単にファイルを読み込んだり書き込むだけではなく、ファイルの状態を監視したり、非同期 IO やファイル名の補完といった機能も提供しています。
GVFS はまず単一のマスター・デーモン (gvfsd) を起動し、コンピュータに現在マウントされているいろいろな GVFS の仮想ボリュームを監視します。それから仮想ボリューム毎にそれぞれ専用のデーモンを起動します (実際には専用のデーモンを共有するボリュームもありますが、ほとんどはそうではありません)。アプリケーションであるクライアント側は D-Bus 経由で (セッション単位のバスでピア・ツー・ピアの D-Bus を利用して) ボリュームやファイルの内容に応じた独自のプロトコルとやりとりします。バックエンド部分をデーモン・プロセスの外に出すことにより、アプリケーションに依存する部分を最小限にし、システム全体の安定性をより強固なものにしています。
さらに GVFS では FUSE 用のマウントポイントを ~/.gvfs/ として提供しているので、標準的な POSIX IO を使う従来の古いアプリケーションに対しても GVFS のボリュームを公開できるようになっています。
GVFS は GNOME-VFS とは異なり、自分経由の接続状況をきちんと把握するようにしています。すなわち、ユーザは何度も要求される接続の認証に対して毎回同じパスワードを入力するのではなく一回だけ入力するだけでよいということです。
GVFS への切り替えに伴い、自動マウントや自動起動といった機能が従来の gnome-volume-manager ではなく Nautilus から直接扱えるようになりました。
GIO の API ドキュメントは、POSIX IO と GNOME-VFS から GIO への移植方法も含め、オンラインからの参照が可能になっています。
- 6.1.1. 一部未完の機能
6.1.1. 一部未完の機能
GNOME-VFS を使うことで発生していた問題点の多くは GVFS の採用で解決はされていますが、未だ機能が一部不完全なものがいくつか残っています。一番目のつく機能としては、fonts:// とか themes:// という従来からあるプロトコルを利用する機能です。
これらの問題点については可能限り早めに修正される予定です。さらに、GVFS への移植が必要なアプリケーションもいくつか存在しています。この移植作業の進捗はオンラインから参照が可能です。