【レポート】
HTML5の記事に続き、Google Developer Dayのセッション参加レポートとして、坊野博典氏による「Google Chromeの内部構造」というセッションで学んだ内容を簡潔にまとめてみたい。
同セッションは、Google Chromeに関するあらゆる内容を凝縮したと言っても過言ではない、非常に濃密な45分であった。 内容も多岐にわたっていたため、大まかに以下のように分けて再構成し、お伝えしようと思う。
Chromeの基本的な設計思想として、以下の三つが大きな柱となる。
Webブラウザというソフトウェアにおいて、非常に重視されるのが安定性だ。どんなWebページを読み込んでもクラッシュする事なく、どんなJavaScriptコードを実行してもフリーズする事がない、というブラウザがあればまさに理想的である。
しかし、複雑を極める現代のWebサイト/Webアプリケーションを無数に処理しなくてはならないことを考えると、それは不可能というもの。それを踏まえてChromeには、「現代のブラウザは、(その上で無数のWebアプリを同時に動作させねばならないため)一昔前のマルチタスクOSのようなもの」という思想のもと、タブごとに別のプロセスを割り当てるアーキテクチャ、つまりマルチプロセスアーキテクチャが採用されている。
Chromeでは、以下のようなプロセスが連携してWebページの実行を行っている。
このように、Webページの実行・描画に際して、はっきりと役割を分けられた複数のプロセスが協調して動作するのがChromeのアーキテクチャだ。こうしたアーキテクチャにより、プラグインやWebページがクラッシュしても、ブラウザプロセスや他の描画プロセスには影響を及ぼさず、ブラウジングを継続できる、というのがChromeの利点である。
また、今まで語られる事はほとんどなかったが、Chromeが1.0から2.0に上がる際、HTTPやFTPでネットワークアクセスを行うためのコードは完全に書き直された(それぞれ「New HTTP」「Portable FTP」と呼ばれているそうだ)。これにより、さらに移植性や安定性が高まったとの事である。
Chromeに搭載されたJavaScriptエンジンは「V8」と呼ばれている。JavaScriptの重要性はこれからも高まる一方で、それに対応するために全くのゼロからGoogleが開発したものだ。
オープンソース(BSDライセンス)として公開されているため、V8単体でも利用可能。特徴は、とにかく、とにかく高速なことだ。今後のロードマップ上でもさらなる高速化が計られている。
V8が開発された目的の一つとして、「JavaScriptのパフォーマンスに対する、最低要求レベルを向上させる」というものがあったと言う。確かに昨年Chromeがβ公開されてから、WebブラウザはそれぞれChromeに負けじと、JavaScriptの実行速度向上にしのぎを削っている。この状況こそ、まさにGoogleが望んだ事なのだろう。
Chromeはマルチプロセスアーキテクチャであり、メインのブラウザプロセスと、Webページを描画するためのプロセスが分かれている事は先程述べた通りだ。
そして、描画プロセスはいわゆる「サンドボックス」内で実行され、ローカルリソースに対して一切アクセスすることができない。ここで言うローカルリソースとは、ファイルの読み書きなどはもちろんの事、ネットワークアクセスやマウスやキーボードからの入力イベントなども含む。こうした処理は、全てメインのブラウザプロセスを通じて行うことになっている。
Webページの描画がサンドボックス内で行われることで、どれほど悪質なマルウェアでも出来る事が相当限られてくる。これにより、安全なブラウジングが保証されるというわけだ。
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
[西部警察]大門のサングラスは照れ隠し? 制作担当者が語る舞台裏 [09:00 2/11] エンタメ |
|
9ストーリーズ ~バレンタインのエピソード~ [08:05 2/11] キャリア |
|
RX-7改フェラーリ登場!/マジックRX-7XX 【大阪オートメッセ2012】 [08:04 2/11] キャリア |
|
【連載】鉄道トリビア 第137回 山手線と京浜東北線から●●●が消えた!? [08:00 2/11] ライフ |
|
JRグループ、「周遊きっぷ」を見直し - 19の周遊ゾーンが3/31で販売終了に [07:30 2/11] ライフ |