【コラム】

OS X ハッキング!

249 小さなOS X「iPod touch」をあれこれイジる(4) ~調査編~

    海上忍  [2007/10/26]

    待ちに待ったこの日がきました。本日26日の午後6時、いよいよLeopardが発売になります。Apple Storeでポチッとした人、店頭まで足を運ぶ人、相当数のMacユーザが本日中にはLeopardを使い始めることと思います。当コラムも当面はLeopardネタで行きますので、ご照覧のほどよろしくお願いします。

    さて、今回も小さなOS X「iPod touch」について。前回はアプリケーションのインストールで終わってしまったため、今回はシステム内部を中心に調査してみよう。なお、SSHサーバの設定とBSD Subsystemパッケージのインストールを前提にしているので、今回が初アクセスという読者は、第246回第247回第248回を参照してほしい。

    まずはプロセスをチェック

    繰り返しになるが、iPod touchのシステムはOS Xのサブセット版的構成となっている。sshでリモートログインすればそこにはDarwinな世界が待っているが、よく調べてみるとMac OS Xとはいろいろな点で違いがあることがわかる。

    ps ax」を実行し処理中の全プロセスを確認すると、PIDが1番のプロセスこそMac OS Xと同じ「/sbin/launchd」だが、それ以外のプロセスはだいぶ異なることが分かる。たとえば、Mac OS Xには仮想記憶領域を管理するプロセス(dynamic_pager)が必ず存在するが、iPod touchにはない。ディレクトリサービスを司るDirectoryServiceやnetinfod / lookupdもない。ディスクのマウント / アンマウントを自動処理するdiskarbitrationdがないことは、いうまでもないだろう。

    iPod touchで実行中の全プロセスを表示したところ。Mac OS Xと比べて格段に少ない

    KEXTの管理方法も異なるようで、必要なKEXTを自動的にロードするためのデーモン「kextd」が存在しない。システムコンフィグレーションを司るconfigd、キャッシュバッファに蓄えたデータをファイルシステムに書き込むupdateといった例外を除けば、Mac OS Xで動作しているデーモンの大半がiPod touchには見当たらない。逆にいえば、必要最低限のリソースで動作する省エネ指向のシステムということになる。

    ディレクトリ構造とシステムフォルダを調べる

    iPod touchのファイルシステムは、マルチユーザ環境は想定されていないことからUsersディレクトリがないことを除けば、基本的にはMac OS Xと同じ。「/」を基点としてツリー状に展開されたディレクトリ構造を持ち、「/」直下にはApplicationsLibrarySystemのほか、UNIX系OSらしくetcusrbinsbinが置かれている。

    /System/Library以下はといえば、サブディレクトリにCoreServicesExtensionsがあるなど、基本構造はMac OS Xと同じ。ただし必要最低限のリソースしかなく、SpotlightQuickTimeといったサブディレクトリは見当たらない。

    iPod touchらしさを感じるのは、Frameworksサブディレクトリだ。CoreAudioやCoreGraphicsなどの見慣れた名のフレームワークはともかくとして、MultitouchSupport(おそらくマルチタッチ関連)やIOMobileFramebuffer(おそらくフレームバッファ描画関連)といった、iPhone / iPod touchならではのものが少なくない。

    名前からすると、明らかにiPhone用のフレームワークもある。大原雄介氏執筆の「【レポート】iPod touch分解レポート - 実はiPhoneと違う、完全再設計の製品」でも明らかにされているように、iPod touchはiPhoneとハードウェア設計にかなりの相違点があり、たとえば電話機能とカメラ、Bluetoothは搭載されていない。CameraやTelephonyUI、BluetoothManagerのフレームワークは、今後も確実にiPod touchでは必要とされないだろう。

    この事実から推測されるのは、AppleがiPhoneとiPod touchのソフトウェアの共有化を図ろうとしていること。ハードウェア構成から必要なコンポーネント数を推定すると、iPhone > iPod touchのはずなので、iPhone用の配布物さえ用意しておけばiPod touchでも使えるだろうからだ。その意味でも、iPod touchは"第6世代のiPod"ではなく、iPhoneグループに属す初代iPod touch、と理解すべき製品なのだといえる。

    必要ないはずのBluetoothデーモンもなぜか収録。当然起動に失敗する

    関連したタグ

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン