このページの本文へ

前へ 1 2 次へ

Apple Geeks 第167回

Appleとオープンソースのこれから

2015年09月04日 11時00分更新

文● 海上忍(@u_shinobu)、編集●ハイサイ比嘉/ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

なぜAppleは「discoveryd」を消したのか?

 順風満帆の感があるAppleのオープンソース戦略だが、目を凝らすといろいろな“あら”も見えてくる。特にネットワーク系の実装に関しては、AppleはSwiftやResearchKitとは異なる動きをしているようだ。

 「SMB」は、その事例のひとつ。Jaguar(v10.2)から採用されてきたSMB/CIFSサーバ「Samba」が、Lion(v10.8)のときAppleによる独自実装版に変更された。かつてOS Xに収録されていたSambaは、HFS Plusの仕様に沿うようAppleの手でUnicodeの正規化処理(NFD)を加えたカスタマイズ版だったが、LionからSambaのコードを使用しない独自版にリプレイスされた(SMB/CIFSクライアントは従来どおりFreeBSD由来の「smb」を使用)。

 独自版に変えた理由は、いち早くSMBの最新仕様(SMB 3)に準拠しかつOS Xに最適化させるための選択だったと推測されるが、一方ではスキャナーの共有に対応しないなどの不利益が生じた。独自実装のため、長年蓄積されたSambaの設定/運用ノウハウを生かしにくいという問題も指摘された。この点、ユーザーコミュニティレベルで情報交換しやすいSambaのメリットは大きいと思われる。

 失敗といっていい事例もある。Yosemite(v10.10)で導入された名前解決とサービス検出に利用されるデーモン「discoveryd」だ。Bonjourを構成する柱であり、mDNSResponderのリプレイスとして登場した。ソースコードが公開されたことはないが、同様の機能を持つmDNSResponderはオープンソースであり、同じ文脈で扱うことが適当なプロダクトといえる。

 そのdiscoveryd、Yosemiteのリリース直後から散発的に通信が途絶するなどネットワークの不調を訴える声が聞こえるようになり、海外の技術系サイトではMavericksからmDNSResponderをコピーすることが解決策として紹介された。

 そうこうするうちに、discoverydの問題は解決。なんと、問題点を見つけ出し修復するのではなく、Yosemiteをv10.10.4にアップデートするときdiscoverydをmDNSResponderに戻すという方法でだ。しかも、現在パブリックベータ版が公開中のOS X次期バージョン「El Capitan」にもdiscoverydの姿はなく、mDNSResponderが稼働している。

OS X 10.10.3までは確かに存在した「discoveryd」だが、10.10.4ではmDNSResponderが復帰。まだiOS 8では利用されているようだが……

 discoverydはAppleのオープンソースサイトで公開されていないため、今となっては原因を調べる術はないが、あれは何だったのか? 最新のYosemiteでは、何事もなかったかのようにmDNSResponderが動いているが、メリットがあるから当初のYosemiteに採用されたわけで、問題が生じたら引っ込めるのではなく原因を究明し修復することが本来あるべき形だろう。このままでは、mDNSResponderが「安直な置き換え品としてのオープンソースソフトウェア」に見えてしまうのだが。

Appleのオープンソースサイト(http://www.opensource.apple.com)では、OS XやiOSなどApple製品に採用されているOSSプロダクトが公開されている


前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中