最後に“frontrow”ユーザーで自動ログイン
さて、起動プロセスの最後は、ユーザーのログインになる。通常のMac OS Xでは“rc”スクリプトの実行後、“etc”→“ttys”の指定に従い、ユーザーのログインを待つ。コンソールに対しては『loginwindow.app』がログインパネルを表示し、Xserveのようにシリアルポートがあれば“getty”がユーザのログインを待ち受ける。
しかし、Apple TVではログイン画面は表示されない。というのもloginwindowの持つ自動ログイン機能を使って、“frontrow”というユーザーがログインされるためだ。その後、先のプロセス情報でも分かるように、Apple TVでもfrontrowユーザーの権限でFinderが起動する。
なお、このFinderの実態はFront Rowである。その証拠として、Finder.appの下にある“Info.plist”があげられる。アプリケーションのファイル名こそFinder だが、識別子はすべてFront Rowのものだ。
さて、Apple TVのFront Rowでひとつ興味深いことがある。Mac OS X付属のFront Rowのバージョンが1.3など1.x系統なのに対し、Apple TVのFinder(Front Row)はバージョン2.0となっている。また、ディレクトリ構成などもかなり異なっていて、どうもMac OS Xのものをそのまま使用しているわけではないようだ。
次期Mac OS Xである“Leopard(レパード)”では、このApple TVに搭載されたFront Rowをベースとしているのか、それとも 2.0はApple TV専用バージョンなのか。それは10月までのお楽しみであろう。
以上、Apple TVのOSとMac OS Xで起動プロセスの違いを見てきたわけだが、両者が異なるlaunchd以降の挙動を以下にまとめておこう。
【Mac OS Xの場合】
Mac OS Xの場合、launchdを立ち上げるとまずシェルを起動し、“etc”内の“rc”スクリプトを実行する。rcスクリプトの中ではOSの設定コマンドなどを実行して、最後に“SystemStarter”を起動する。
SystemStarterは、“System”→“Library”→“StartupItems”などにある起動項目を読み込んで実行する。この実行が終わるとrcスクリプトが終了し、“etc”→“tty”の記述に従って“loginwindow”を起動して、ユーザーのログインを待つ。
【Apple TV OSの場合】
Apple TVの場合、まずOSBootパーティションにあるrcスクリプトを実行する。ここでMediaパーティションの用意やマウントなどを行ない、その後、Media 側にあるrcを実行する。
Media側にあるrcの実行内容は、Mac OS Xのものと同じだ。rcの記述に従ってloginwindowを起動し、自動ログインを済ませてFinderを起動する。このFinderの実態はFront Rowとなる。
*次回はApple TVで再生できるファイル形式を増やす『DivXを再生できるか』を掲載
この連載の記事
-
第4回
iPhone
DivXは再生できる? -
第2回
iPhone
sshdをインストールする -
第1回
iPhone
なぜHDDは3パーティション構成なのか - この連載の一覧へ