米国で普及するデジタルビデオレコーダー『Tivo』など、セットトップボックスやNASのようなアプライアンスは、NetBSDやLinuxといったフリーのOSを使用しているものが主流だ。
『AppleTV』も、既報のとおりハードウェアとしてはインテル製CPUを搭載したPCのサブセットであり、内部的にはPC向けのOSを採用している。
ここで「さすがアップル」と思わせるのは、OSとしてMac OS Xそのものを採用したということ。
Mac OS Xは、“Darwin”という名称でその基盤OS部分をオープンソースで公開しているが、AppleTVにはDarwinで公開されている部分を越えて、QuickTimeやSpotLightをはじめとするプロプライエタリ(専属的)な部分も含まれている。
考えてみれば、これは当然のことだ。ご存じのとおり Mac OS Xはマルチメディア処理に秀でたOSであり、 QuickTimeにはMP3やAAC、H.264などのコーデックがすでに用意されている。
LinuxなどのフリーOSを使う大きな理由はライセンスフリーで安価に優れたコードが利用できることだ。その一方でマルチメディア系のコーデックのサポートはあまり強くない。
自らOSを開発しているAppleにとってそうしたフリーのOSを採用するメリットはないに等しい。むしろ、AppleTVをAppleTVたらしめているiTunesの連携や、マルチメディア処理のプログラムを移植しなければならないぶん、デメリットがあると言える。
起動後に“読み取り専用”となるOSBoot領域
このAppleTVの中のMac OSXは通常、ユーザーがアクセスすることができない。しかし、ケースを空けて HDDを取り出しさえすれば、その限りではない。
AppleTV のパーティション構成は大きく3つに分けられる。先頭にあるのが“Media”というラベルのつけられたHFS+のパーティションで、コンテンツをはじめとする読み書きされるデータはここに格納される。
その後ろには“OSBoot”という約1Gバイトのパーティションが用意され、Mac OS Xの大部分が格納されている。このOSBootからシステムがブートする。
ブート後、このファイルシステムは読み取り専用でマウントされる仕様だ。Apple TVのHDDを取り出し、Macに接続してみると、OSBoot領域のあちこちでシンボリックリンクが散見される。
これらのリンクはMediaパーティションの該当箇所を参照するようになっており、こうすることでOSBoot領域はあくまで読み取り専用に保っている。
Apple TVには電源ボタンが用意されておらず、電源のオン/オフにはケーブルを抜くしかない。ファイルシステムとコンテンツを別パーティションとし、起動後にファイルシステムを読み取り専用にすることで、その電源断によるダメージを与えないようにしているというわけだ。
最後に復旧用と思われるデータが格納されている(参考記事)。
アクセス頻度の高いMedia領域を先頭に
ブート用のパーティションが後ろに用意されているのも理由がある。一般的なHDDは外周ほど高速にアクセスでき、外周から内周に向かって読み書きされる。OSのブート部分は、起動時こそ激しくアクセスされるが、その後の利用頻度はそう多くない。
一方、コンテンツ領域は、再生やデータ転送の度にアクセスされる。つまり、コンテンツ領域を前に持って行くことで、HDDのアクセス性能を最大限に引き出そうとしているのだ。
*次回は、稼働中のAppleTVの動作を分析する。
この連載の記事
-
第4回
iPhone
DivXは再生できる? -
第3回
iPhone
どうやってOSを起動している? -
第2回
iPhone
sshdをインストールする - この連載の一覧へ