白のiPhone 4Sを購入した私ですが、不意の落下に備え同じく白いバンパーを装着しています。見栄えはイイのですが、1ヶ月経った現在、バンパーが気持ち黄ばんできたような……ちょっとイヤな感じ。消耗品と諦めて、買い換えろということなのですかね? 月イチの買い替えは痛いなあ。
さて、今回は「LionとiCloudの関係」について。Mission ControlやLaunchPadなど、わかりやすいフィーチャーに目を奪われがちな我々だが、もっとも注視されるべきLionにおけるOS Xの変化は「iCloudとの関係」にあると思われる。それをlaunchctlコマンドを使うなどして、解き明かしていこう。
「launchd」を知る
OS Xにかぎらず、モダンなOSのほとんどはバックグラウンドに多数のサービス(デーモン)を稼働させ、さまざまな処理を行う。UNIX系OSの場合、システムがブートして最初にinitを起動したあと、初期化ファイル(rcスクリプト)を実行して必要なサービスを起動する、という方法が伝統的なスタイルだ。
OS Xもかつてはこの方法に従っていたが、OS X 10.4(Tiger)のとき新しい方法に移行した。それが現在の「launchd」を使用する方法だ。launchdはinitに代わりブート後最初に起動され、rcスクリプトに代わりプロパティリストファイル(*.plist)を参照してサービスを起動する。/System/Libraryディレクトリ以下の「LaunchDaemons」および「LaunchAgents」に多数あるプロパティリストファイルは、launchdによって起動されるサービスの定義ファイルだ。
前置きが長くなったが、Lionではそのプロパティリストファイルの顔ぶれに変化が生じた。ざっと調べただけでも、iCloudとの関係が濃厚と思われるファイルが複数存在するのだ。
iCloud関連サービスの役割
現在どのようなサービスが稼働しているか調べるときには、Terminalから「launchctl」コマンドを利用する。引数に「list」を与えて実行すれば、所定のディレクトリにプロパティリストファイルが存在するサービスが一覧され、そのうち稼働中のものがPID付きで表示される。
本稿で注目するのは、そのうち「com.apple.mdmclient.agent」と「com.apple.findmymacmessenger」、そして「com.apple.ubd」だ。結論から言えば、いずれもOS XがiCloud端末なのだ、ということを再確認させてくれる。
最初の「com.apple.mdmclient.agent」は、OS XをMDM(Mobile Device Management)クライアントとして稼働させるためのサービスで、Lionから追加されたもの。MCX(Managed Client for Mac OS X)の一部だが、OS X ServerがOS Xクライアントのデスクトップ環境を制御する目的で利用されてきた従来のMCXとは性格が異なり、プロファイルを"プッシュして食わせる"ことが可能になる。Lion Serverで追加された「プロファイルマネージャ」に対応する機構だ。なお、どのようなプロファイルが適用されているかは、同じくLionで新設された「profiles」コマンドで確認できる。
次の「com.apple.findmymacmessenger」は、その名が示すとおりiCloudに含まれる機能「Macを探す」に使われるものだ。内容を見ると、プライベートフレームワーク「FindMyMac.framework」との機能を呼び出していることがわかる。iCloudから通知があり次第、メッセージの表示やリモートワイプを行うためのサービスなのだ。
最後の「com.apple.ubd」は、同じくプライベートフレームワークの「Ubiquity.framework」を利用する、iCloud Storage APIに関係したものだ。このAPIは、Appleが一般向けに公開している開発関連資料「What's New In Mac OS X」で筆頭に挙げていることから、Lionにとって重要な位置付けであることがわかるはず。
このように、Lionではシステムの深いレベルでiCloudとの連携が始まっている。そしてこれは推測だが、「iPhoneを探す」や「Document in the Cloud」という同等の機能が用意されていることから判断すると、iOS 5にもよく似た機構が実装されているのだろう。iCloudとの連携はまだ始まったばかりであり、今後もOS XとiCloudをつなぐためのサービスは増えると考えるが、どうだろうか。