Netatalk
| 作者 | Netatalk Team |
|---|---|
| 最新版 | 3.0.4 / 2013年5月24日 |
| 最新評価版 | stp4 (Spotlight Technology Preview 4) / 2013年2月26日 |
| プログラミング言語 | C言語 |
| 対応OS | *NIX/*BSDシステム FreeBSD NetBSD OpenBSD Linux Solarisおよびその派生 |
| 種別 | リモートアクセス |
| ライセンス | GPL v2 |
| 公式サイト | http://netatalk.sourceforge.net/ |
netatalkはUnix系OS上でMac OSやOS Xに対してAFPによるファイルサーバの機能を提供するオープンソースのソフトウェアである。
かつてはAppleTalkも実装したが、この機能は削除された。
目次 |
概要[編集]
MacのローカルファイルシステムであるHFSやHFS+は、リソースフォークやFinder情報といったメタデータをもつ。更に最近のOS Xでは拡張属性 (EA)も扱う。netatalkは、こうしたApple独自のメタデータを完全に保存することを目的として設計されたファイルサーバソフトウェアである。
メタデータは可能な限りサーバ側のファイルシステムの拡張属性に保存する。これが出来ない場合は隠しファイルを作って保存する。
また、バックアップソフトウェアであるTime Machineの保存先として利用することもできる。
旧AppleTalk機能[編集]
かつてのMac OSは、AppleTalkと呼ばれる独自のネットワークプロトコルを実装していた。netatalk 2.x迄はこの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サポートがなくなった。こうした経緯からnetatalk 3.xではファイル共有のための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にも対応した。
2012年7月リリースのnetatalk 3.0はAppleTalk機能を削除し、AFP over TCP専用となった。様々なメタデータは可能な限り拡張属性に保存するようになった。今までの設定ファイルを廃止し、Sambaを模倣したINIフォーマットの設定ファイルを採用した。
国際化対応[編集]
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のテーブルが追加されている。
netatalk 3.0ではCAPエンコーディングが削除された。
参照[編集]
- ^ 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