画面1●米Googleの「Chromium OS」。Chromium OSは「Chrome OS」の開発版。
画面1●米Googleの「Chromium OS」
Chromium OSは「Chrome OS」のオープンソース開発版。
[画像のクリックで拡大表示]

 米Googleは2009年11月19日(米国時間),Webアプリケーションの利用に特化した「Google Chrome OS」の詳細を発表。オープンソース・プロジェクト「Chromium OS」を開始した(画面1)。同年7月に明らかにした設計思想に忠実なOSという印象を受ける一方で,パソコン世代の記者にとっては驚きでもあった。実装があまりに“不自由”だからだ。

 一体何が不自由なのか。Chrome OSは,GoogleのWebブラウザ「Chrome」を動かす最小限の環境をセキュアに構築することに注力する。プリインストール機の購入が前提である。カーネル部分に手は入れられない。メイン・ストレージはクラウドだ。ローカル・データはキャッシュに過ぎない。プリインストール機前提なのはMac OS Xとそのファームウエアも同様だが,比較的簡単にroot権限を取得できる。

 その代わり,ユーザーはWebアプリケーションの利用に専念できる。PC管理に費やす時間があったら,使いたいときすぐWebを利用してほしい。それがGoogleのメッセージだ。

セキュアなChrome実行環境に注力

図●米Googleの「Chrome OS」の構成。Chrome OSでは要素技術が変わる可能性がある。
図●米Googleの「Chromium OS」の構成
Chrome OSでは要素技術が変わる可能性がある。
[画像のクリックで拡大表示]

 2009年7月の発表時にGoogleが提示したコンセプトは「速く,シンプルで,セキュアで,ほとんどの時間をWebで過ごすユーザーに向けた軽量OS」というもの(関連記事)。11月に公開したセキュリティ設計思想では,「(ソファを指す)カウチ・コンピューティング」「ちょっとした仕事をこなす2台目マシン」「喫茶店や図書館での貸し出し機」「家族で共有する2台目マシン」と,もう少し具体的なユーザー像を挙げている。メインマシンとしての汎用性は初めから見切っている。

 ユーザー層を限定することで,汎用OSでは互換性や利便性とのトレードオフから採用が難しかった手法をふんだんに取り入れた()。Chromeブラウザが動作する組み込みOSとして機能をスリム化。ネットブック出荷後に加わる実行ファイルは,原則として不正なプログラムとして扱う。いわゆるホワイトリスト型のアプローチである。セキュリティ以外の側面から見れば,起動が高速で,無駄なシステム・サービスがメモリーを圧迫しない軽量なOSと言える。

 セキュリティ実装を軸にChrome OSのアーキテクチャを把握するために,(1)ファームウエアとカーネルの起動プロセス,(2)リソースの隔離機構,(3)デスクトップ環境という三つのレイヤーを見ていこう。

 (1)のファームウエアとカーネルの起動プロセスは,ファームウエアとカーネルの各プログラムに施した電子署名をチェックし,改変があれば復元する,というもの。この検証と復元動作に対する不正アクセスからの防護を,Chromeブラウザへの特化とプリインストールによって確保している。

 難点は,すべてのプログラムに署名を施す手間がかかることだ。ただChrome OSは,Chromeブラウザの利用に特化しているためプログラムの数が少ない。

 まずファームウエアの部分は,PC-AT互換機としてのレガシー・サポートなどを省いてブートに必要なプログラムのみに絞る。例えばフロッピー・ドライブは初期化しない。

 カーネルについては,ごく少数のパッチを除いて,動的に追加可能なカーネル・モジュールを利用しない。「Upstart」という並列処理が可能な初期化プログラムを使うなど初期化の時間を節約するのが主な目的である。当然,セキュリティ・ホールが存在する可能性も低くなる。

 カーネル以外のシステム・プログラムも最小限に抑える。バッテリ管理やネットワーク・ドライバの制御に使う「D-Bus」デーモン,ネットワーク周りの設定管理プログラム「Connection Manager」,無線LAN接続用のWPAサプリカント,自動更新,電源管理,スクリーン・セーバー,時刻同期のNTP,ログ管理のsyslog,タスク・スケジューラのcron。Chrome OSの主な起動プロセスはたったこれだけだ。