なぜ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が稼働している。
discoverydはAppleのオープンソースサイトで公開されていないため、今となっては原因を調べる術はないが、あれは何だったのか? 最新のYosemiteでは、何事もなかったかのようにmDNSResponderが動いているが、メリットがあるから当初のYosemiteに採用されたわけで、問題が生じたら引っ込めるのではなく原因を究明し修復することが本来あるべき形だろう。このままでは、mDNSResponderが「安直な置き換え品としてのオープンソースソフトウェア」に見えてしまうのだが。
この連載の記事
-
第187回
iPhone
NFCの世界を一変させる!? iOS 11「Core NFC」の提供開始が意味するもの -
第186回
iPhone
Appleと「4K HDR」 - iOS 11で写真/動画を変える「HEIF」と「HEVC」 -
第185回
iPhone
iPhone 7搭載の「A10 Fusion」「W1」は何を変えるか -
第184回
iPhone
オープンソース化された「PowerShell」をMacで使う -
第183回
iPhone
アップル製デバイス連携の鍵、「Continuity」とは? -
第182回
iPhone
DCI-P3準拠へと歩むiPhone/iPad - WWDC基調講演で秘められた新技術は、ここにある(2) -
第181回
iPhone
WWDC基調講演で秘められた新技術は、ここにある(1) -
第180回
iPhone
WWDC直前、買い替え前にマイMacのココをチェック -
第179回
iPhone
私がiTunesを使わなくなった5つの理由 -
第178回
iPhone
今あえてiPhone「Live Photos」を知る -
第177回
iPhone
「Windows Subsystem for Linux」はOS Xのライバルとなるか? - この連載の一覧へ