Windows Internet Explorer 8 |
ブラウザのアーキテクチャはいくつかの理由からマルチプロセスアーキテクチャへ移行しつつある。IEシリーズではIE8がマルチプロセスアーキテクチャになっており(Vistaで動作するIE7も近い仕組みが入っている)、Chromeははじめからマルチプロセスアーキテクチャで設計されている。Firefoxはシングルプロセスアーキテクチャだが、Electrolysisでマルチプロセスアーキテクチャを検証しその効果が確認されている。Firefox 3.7ではプラグインを別プロセスに分離する実装が取り込まれる。
マルチプロセスアーキテクチャの利点 |
---|
タブを別プロセスに分離することで、あるタブにおけるクラッシュがほかのタブやウィンドウに影響を与えなくなり、信頼性が向上する。 |
プロセスに分離することで脆弱性の影響範囲を絞り込むことが可能になったり、分離したプロセスごとに特権設定をすることでセキュリティを向上させることができる。 |
マルチコア/プロセスCPUにおいて性能を発揮しやすくなる。 |
マルチプロセスアーキテクチャにすることでいくつかの問題も出てくるが、それはケースバイケースである面も多く、少なくもと最近のPCで利用するブラウザという視点でみると、マルチプロセスアーキテクチャの方が得られる利益が大きいという状況にあるようだ。
マルチプロセスアーキテクチャにおける検討点 |
---|
シングルプロセスアーキテクチャよりもメモリの消費量が増える。ただしタブを閉じることで完全にメモリが解法されるなど、タブを閉じても思っているほどはメモリを解法できないFirefoxなどと比べて利点も大きい(なお、Firefoxのメモリ管理機能自身は改善されており、メモリ使用量の削減や解放の改善は実現されている)。 |
主要ブラウザにおいて最初にマルチプロセスアーキテクチャ版をリリースしたのはIE8のベータ版だとみられる。Chromeもそれから数ヶ月後にベータ版としてリリースされたため、2008年第2四半期から第3四半期がマルチプロセスアーキテクチャブラウザ登場の時期ということになる。このあたりの事情と、メジャーブラウザとしては最初にマルチプロセスアーキテクチャとして登場したIE8の仕組みがIEBlog : Tab Isolationで簡単に紹介されている。
IE8ではマルチプロセスアーキテクチャを「Tab Isolation (タブ分離)」と呼んでいる。IE8ではタイトルバーやナビゲーションボタン、アドレスバーなどを管轄するフレームプロセスと、タブプロセスの2種類のプロセスで構成されている。Windows 7またはVistaで動作するIE8の場合、タブプロセスはソフトウェアのインストールや設定変更、ファイル変更などが制限されたプロテクトモードで実行されるため、XPなどそれ以前のバージョンで動作するIE8よりも安全性が高い状態で動作しているという。
なお、タブの数とプロセスの数は比例しない。これはChromeでも同様だ。タブをストレートに別プロセスに分離するとリソース消費が大きくなることから、Chromeではドメインなどを基準にして新しいプロセスを作成するかどうかを判断している。IE8における基準はIEBlog : Tab Isolationでは紹介されていないが、何らかの基準を持って別プロセスへの分離を実施しているようだ。