このページの本文へ

前へ 1 2 3 次へ

Apple TV OS 詳細解析 第3回

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

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

文● 白屋麻

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

Apple TV

今回はApple TVの起動プロセスを明らかにしていこう。結論から言うと、Apple TVのOSと普通のMac OS Xでは、起動プロセスが似ているようで異なる。キーワードとなるのは、シンボリックリンクだ。

sshでApple TVにリモートログインし、“ps”コマンドで稼働中のプロセスを確認すると、通常のMac OS Xにリモートログインした場合とほとんど同じ構成なのがわかる。では、Apple TVはどうやってこれらのソフトをどういう手順で起動しているのだろうか。

psコマンド

ターミナルのpsコマンドでApple TVで稼働中のプロセスを確認したところ。画面描画を担当する『WindowServer』、フォントを管理する『ATSserver』、ファイルブラウザーの『Finder』といったソフトの起動を“COMMAND”行で確認できる



“rc”スクリプトから変わる起動プロセス


Apple TVのハード自体はインテルCPUを用いたMacそのものであるから、OSの起動部分についてもMac OS Xとほぼ同じであると推測できる。

つまり、EFIのファームウェアがHDD上のブートローダー『boot.efi』を読み出し、続けてboot.efiがOSの中核部分である『mach_kernel』と必要なデバイスドライバーをメモリー上にロード/実行する──といった具合なのだろう。

【まめ知識】Mac OS Xの起動プロセス

Mac OS Xは、起動時に上のような順番でデータを読み込んでいる。ちなみに起動プロセスは、実はPowerPC MacとインテルMacで若干異なる。


PowerPC Macが採用するOpenFirmwareでは、ハードウェアに接続されているデバイス全体の確認を行ない、デバイスツリーを作成する。これに対して、インテルMacのEFIでは、起動に必要な最低限のハードウェアの確認しか行なわない。このためROM内のプログラムの処理が短く、高速な起動の助けになっているのだ。


Apple TVが普通のMac OS Xとひと味違うのは、最初のプロセスである『launchd』が起動した後の、“rc”スクリプトからだ。rcはrun commandの略で、OSの起動直後に初期化を行なうシェルスクリプトである。

Apple TVでは、このrc以前は“OSBoot”パーティションよりファイルを読み出しているが、rc以降はシンボリックリンクを利用して“Media”パーティションからもファイルを引っ張ってくるようになる。


(次ページに続く)

前へ 1 2 3 次へ

カテゴリートップへ

この連載の記事

ASCII.jp RSS2.0 配信中