このページの本文へ

前へ 1 2 3 次へ

Apple TV OS 詳細解析 第3回

どうやってOSを起動している?

2007年05月18日 10時30分更新

文● 白屋麻

  • この記事をはてなブックマークに追加
  • 本文印刷

最後に“frontrow”ユーザーで自動ログイン


さて、起動プロセスの最後は、ユーザーのログインになる。通常のMac OS Xでは“rc”スクリプトの実行後、“etc”→“ttys”の指定に従い、ユーザーのログインを待つ。コンソールに対しては『loginwindow.app』がログインパネルを表示し、Xserveのようにシリアルポートがあれば“getty”がユーザのログインを待ち受ける。

しかし、Apple TVではログイン画面は表示されない。というのもloginwindowの持つ自動ログイン機能を使って、“frontrow”というユーザーがログインされるためだ。その後、先のプロセス情報でも分かるように、Apple TVでもfrontrowユーザーの権限でFinderが起動する。

自動ログイン

Apple TVのloginwindowの初期設定ファイルを見ると、“frontrow”というユーザーで自動ログインするように指定されていることが分かる

なお、このFinderの実態はFront Rowである。その証拠として、Finder.appの下にある“Info.plist”があげられる。アプリケーションのファイル名こそFinder だが、識別子はすべてFront Rowのものだ。

Finder.appの下にある“Info.plist”

Finder.appの下にある“Info.plist”を開いたところ

さて、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を再生できるか』を掲載


前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中