Avahi (アバヒ)とは
Avahiは、ローカルネットワーク上で、特別な設定を必要とせずに、サービスの提供と発見を可能にするZeroconfの自由
ソフトウェア実装です。具体的には、マルチキャストDNS (mDNS) や DNSサービスディスカバリー (DNS-SD) といった技術を用いて、ネットワークに接続されたデバイスやサービスを自動的に検出することができます。
Avahiの概要
Avahiは、ネットワークに接続された際に、プリンターやファイルサーバーなどのサービスを自動的に検出し、すぐに利用できるようにします。これにより、ユーザーは複雑なネットワーク設定を行う必要がなくなり、より簡単にネットワークリソースにアクセスできるようになります。
GNU Lesser General Public License (LGPL) の下で
ライセンスされており、オープンソースとして利用できます。これは、Avahiが広く普及している理由の一つです。様々なプログラミング言語(
PythonやMonoなど)に対応しており、多くの
LinuxやBSD系ディストリビューションに標準で含まれています。また、モジュール化された設計により、GNOMEのGNOME VFSや
KDEの
KIOなどのデスクトップ環境にも組み込まれています。
Avahiの歴史
Avahiプロジェクトは、当初
Bonjourの
ライセンスに関する議論から始まりました。
Bonjourは
Appleが開発したZeroconfの実装ですが、当初の
ライセンスが問題視されていました。その後、
Bonjourの
ライセンスは
Apache Licenseに変更されましたが、Avahiは既にGNU/
Linuxなどのフリーな
オペレーティングシステムで事実上の標準として広く利用されるようになっていました。Avahiの状況について、
AppleでZeroconf技術開発に関わったStuart Cheshireは、「アップルの実装に取って代わる」ほどの勢いであると評しました。
Avahiの開発は、Lennart PoetteringとTrent Lloydによって開始されました。Lennart Poetteringは、2004年後半からFlexMDNSという名称でZeroconfの実装を開発していました。一方、Trent Lloydは2004年前半からAvahiという名称で同様のプロジェクトを開始していました。両者のプロジェクトは2005年に統合され、名称はAvahiとして存続しましたが、コードベースの多くはFlexMDNSのものが採用されました。
当初、Avahiはfreedesktop.org傘下のプロジェクトとして開発されていましたが、2006年1月にリリースされたバージョン0.6.2からは、The Avahi Projectとして独立しました。ただし、Avahiはfreedesktop.orgの
D-Busを利用しており、freedesktop.orgとの関係が完全に断たれたわけではありません。
Avahiの名称について
Avahiという名前は、マダガスカルに生息する霊長類であるウーリーキツネザル(アバヒ属)に由来します。Trent Lloydがこの名前を気に入り、プロジェクト名として採用しました。ロゴにも、このキツネザルの顔が使用されています。
Avahiの技術詳細
Avahiは、以下の主要な技術を実装しています。
- - マルチキャストDNS (mDNS): ローカルネットワーク上でDNSクエリをマルチキャストすることにより、DNSサーバーなしで名前解決を実現します。これにより、ネットワーク上のデバイスを名前で識別できるようになります。
- - DNSサービスディスカバリー (DNS-SD): mDNSを利用して、ローカルネットワーク上のサービスを検出するためのプロトコルです。これにより、プリンターやファイル共有サービスなどを自動的に検出できます。
- - RFC 3927/IPv4LL: ローカルネットワークでIPアドレスが自動的に割り当てられるための仕組みです。これにより、DHCPサーバーがない環境でもネットワーク接続が容易になります。
Avahiの活用例
- - プリンターの自動検出: ネットワークに接続されたプリンターを自動的に検出し、すぐに印刷できるようになります。
- - ファイル共有: ローカルネットワーク上のファイル共有サービスを検出し、簡単にファイルにアクセスできます。
- - メディアストリーミング: ローカルネットワーク上のメディアサーバーを検出し、コンテンツをストリーミング再生できます。
- - チャットアプリケーション: ローカルネットワーク上の他のユーザーを自動的に検出し、チャットを開始できます。
まとめ
Avahiは、設定不要でネットワークサービスを検出・提供できる強力なツールであり、多くのオープンソース環境で標準的に利用されています。その利便性と普及度から、今後もZeroconf技術の中核を担っていくと考えられます。
関連項目
外部リンク