Netatalk
| 開発元 | Netatalk Team |
|---|---|
| 最新版 | 2.2.2(2012年1月16日) |
| 対応OS | POSIX準拠 *NIX/*BSDシステム FreeBSD NetBSD OpenBSD Linux Solaris OpenSolaris Tru64 UNIX |
| 種別 | リモートアクセス |
| ライセンス | GPL |
| 公式サイト | http://netatalk.sourceforge.net/ |
netatalkはUnix系OS上でMac OSやMac OS Xに対してAFPによるファイルサーバの機能を提供するオープンソースのソフトウェアである。
また、AppleTalkも実装し、これによるファイルサーバ、プリンタサーバ等の機能も提供する。
目次 |
[編集] 概要
MacのローカルファイルシステムであるHFSやHFS+は、リソースフォークやFinder情報といったメタデータをもつ。更に最近のMac OS Xでは拡張属性 (EA)も扱う。netatalkは、こうしたApple独自のメタデータを完全に保存することを目的として設計されたファイルサーバソフトウェアである。
リソースフォークやFinder情報等はAppleDoubleフォーマットで保存する。拡張属性はサーバ側のファイルシステムにそのまま拡張属性として保存するか、別ファイルで保存する。
また、バックアップソフトウェアであるTime Machineの保存先として利用することもできる。
[編集] AppleTalk機能
かつてのMac OSとバージョン10.5迄のMac OS Xは、AppleTalkと呼ばれる独自のネットワークプロトコルを実装していた。netatalkはこのAppleTalkも扱うことができる。
AppleTalkの最も基本的なプロトコルであるDDPとAARPはカーネルが受け持ち、それより上のプロトコルをnetatalkが扱う仕組みである。従ってカーネルがDDPとAARPをサポートしない場合はAppleTalkが使えない。
AppleTalkの基本的な機能を有効にするためには、まずatalkdを起動する。
afpdはファイル共有プロトコルAFPのためのデーモンであり、単体でAFP over TCPを実現するが、上記atalkdを起動しておけばAFP over AppleTalkも実現できる。これは極めて古いMacに対してファイル共有できることを意味する。
印刷用のプロトコルPAPを実装するデーモンとしてpapdが付属する。これはCommon Unix Printing System (CUPS)もサポートしており、クライアントからAppleTalkプリンタとしてnetatalkを選べば、様々なプリンタに印刷することができる。
時間合わせのためのtimelordデーモンは、Columbia AppleTalk Package (CAP)のソースからのリバースエンジニアリングによって作られたものである。ただし現在のMacはNTPが利用出来るのでtimelordは使われない。
Apple IIブートサーバの機能ももつが、Mac OSやMac OS Xのブートサーバになるわけではない。
Mac OS XはAppleTalkの機能を徐々に縮小しTCP/IPに移行した。Mac OS X v10.6にはAppleTalkサポートがなくなった。こうした経緯からファイル共有のためのAFP over TCPの機能のみが広く使われている。つまりカーネルがAppleTalk非サポートでも何ら不都合がない。
[編集] netatalkの発音
netatalkがミシガン大学にて開発されていた頃に書かれたFAQには発音の記述があった[1]。これによると「'ned-*-to.k」と発音する。すなわち、最初のtは弱くdのように発音し、最初のaは曖昧母音である。「ta」が弱い「ドゥ」となり聞こえなくなることから、カタカナ表記を「ネットーク」とするページが多い。
しかしながら実際には、英語でも日本語でも様々な読み方がある。開発がSourceForgeに移行してからは、発音に関する記述は全くない。
[編集] 利用例
Unix系OS、すなわちLinuxディストリビューションやBSD系OS等の多くは、netatalkのパッケージを提供している。
NAS製品はUnix系OSを採用してるものが多く、NFS、SMB (CIFS)、AFP等をサポートするが、このうちAFPに関してはnetatalkを利用するケースが多い[2]。
iPod touch、iPhone、iPad、Apple TVといったiOSを用いた製品では、Apple社の認可を受けていないアプリケーションをインストールするjailbreakと呼ばれる行為が行なわれており、これのひとつとしてnetatalkが配布されている。
[編集] 歴史
netatalkは元々ミシガン大学のResearch Systems Unix Groupによって開発された。 かつてのMac OSは、TCP/IPとは異なるAppleTalkと呼ばれる独自のネットワークプロトコル群を用いていた。このAppleTalkをUNIXで実装し、Mac OSのサーバとして機能させるソフトウェアとして誕生した。
同様の機能を持つソフトウェアとして、かつてはCAPがあったが、開発停止となったためnetatalkが広く利用されるようになった。
その後、Adrian SunのパッチによってAFP over TCPが実装され、2000年にSourceForgeに移行した。
netatalk 1.6では、Mac OS Xからのアクセス時にデータが破壊される問題を克服した。
2004年10月リリースのnetatalk 2.0はAFP 3.1をサポートし、Unicodeファイル名(俗にいう長いファイル名)、2GiB以上のファイルサイズ、CUPSの統合、シングルサインオン、Kerberos V等を実装した。バージョン2.0.4では旧Mac OSからのアクセス時のCJKファイル名に対応した。2.0.5ではTime Machineに対応した。
2010年4月リリースのnetatalk 2.1はAFP 3.2をサポートし、拡張属性サポート、Solaris及びOpenSolaris上のZFSでのACLサポート等を追加した。また、IPv6にも対応した。
2011年7月リリースのnetatalk 2.2はAFP 3.3をサポートし、OS X LionからTime Machineによるバックアップができない問題を克服した。また、Avahiを用いることでBonjourに対応した。Solaris以外でのACLにも対応した。
[編集] 国際化対応
AFPではサーバ名、ボリューム名、ファイル名の国際化対応が必要である。
netatalk 1.xはNLSかCAPエンコーディングを用いる事で非ASCII文字を扱う事が出来る。CJKの場合はNLSが利用出来ず、結果的にCAPエンコーディングを用いる事になる。日本語環境ではEUC-JPやShift JISを利用可能にするEUCパッチが存在した[3]。中国語環境ではNLSを拡張するパッチが存在したが、現在はダウンロード出来ない[4][5]。
netatalk 2.xはファイル名の扱いをUnicodeベースにした事でMac OS Xに対応した。Mac OS 9以前はUnicodeベースではないため、netatalk内に変換テーブルを用意することで対応している。netatalk 2.0.3迄が対応しているテーブルは、MacCentralEurope、MacCyrillic、MacHebrew、MacRoman、MacTurkishであり、MacJapaneseのテーブルは含んでおらず、代替策としてiconvを呼び出してShift JISとの変換を行なっていた。したがってShift_JISには含まれないMacJapanese特有の文字を扱うことが出来なかった。netatalk 2.0.4では、MacChineseSimple、MacChineseTraditional、MacJapanese、MacKoreanのテーブルが追加されている。
[編集] 参照
- ^ web.archive.orgに保存されている旧FAQのページ
- ^ Status of Netatalk and AFP support by NAS vendor
- ^ EUC-JP and Shift-JIS afpd patch
- ^ 让Netatalk支持双字节和多字节字符集
- ^ Update: maccode.asian -- can support CJK encoded characters