BlinkとChromiumの違い

主要ポイント

  • Chromium はオープンソースのウェブブラウザプロジェクトで、Blink を含む多くのコンポーネントから成り立っています。
  • Blink は Chromium の一部であり、ウェブページをレンダリングするエンジンです。
  • 研究は、Chromium が全体的なブラウザフレームワークであり、Blink がそのレンダリング部分であることを示唆しています。

Chromium の概要
Chromium は Google が開発したオープンソースプロジェクトで、Google Chrome や Microsoft Edge などのブラウザの基盤です。
それはレンダリングエンジン(Blink)、JavaScript エンジン(V8)、グラフィックスライブラリ(Skia)、ネットワーキング、UI など、多くのコンポーネントを含んでいます。
これらのコンポーネントが統合されて、完全なウェブブラウザが実現されます。

Blink の概要
Blink は Chromium ベースのブラウザで使用されるレンダリングエンジンで、HTML、CSS、JavaScript を解析し、ウェブページを表示します。
2013 年に WebKit からフォークされ、Chromium の多プロセスアーキテクチャに最適化されました。

違いのポイント

  • Chromium はブラウザ全体のフレームワークで、Blink はその一部(レンダリングエンジン)です。
  • Blink は Chromium ベースのすべてのブラウザで共通して使用されますが、単体ではブラウザとして機能しません。

詳細な調査

Chromium と Blink の違いを理解するためには、それぞれの役割、歴史、技術的詳細、そしてウェブエコシステムへの影響を深く掘り下げる必要があります。以下では、専門家としての視点から、これらの概念を詳細に解説します。

1. Chromium の詳細な定義と構成

Chromium は、2008 年に Google によって開始されたオープンソースのウェブブラウザプロジェクトです。このプロジェクトは、Google Chrome や Microsoft Edge、Opera、Brave、Vivaldi などの多くの人気ブラウザの基盤を提供しています。Chromium の目的は、安定性、セキュリティ、パフォーマンスを兼ね備えたブラウザの基盤を提供することです。

その構成要素は以下の通りです:

  • Blink: レンダリングエンジンで、HTML、CSS、JavaScript を解析し、ウェブページを描画します。
  • V8: JavaScript エンジンで、ウェブページの動的コンテンツやユーザーインタラクションを処理します。
  • Skia: 2D グラフィックスライブラリで、テキストや画像の描画を担当します。
  • Networking: HTTP、HTTPS などのネットワークプロトコルを扱うコンポーネント。
  • User Interface (UI): タブ、検索バー、メニューなどのブラウザのユーザーインターフェース。
  • Storage: クッキー、ローカルストレージなどのデータ保存機能。
  • Security: サンドボックス化、安全なブラウジング、SSL/TLS などのセキュリティ機能。

これらのコンポーネントは、Chromium を完全なウェブブラウザとして機能させるために統合されています。Chromium は BSD ライセンスの下で公開されており、誰でも自由に使用・変更・配布することができます。このオープンソースの性質により、多くのブラウザが Chromium をベースに独自のブラウザを開発しています。例えば、Microsoft Edge は Chromium を基盤にしつつ、独自の機能やデザインを追加しています。

2. Blink の詳細な定義と役割

Blink は、Chromium ベースのブラウザで使用されるレンダリングエンジンです。レンダリングエンジンは、ウェブページを表示するための重要な役割を果たし、具体的には以下のような機能を提供します:

  • HTML と CSS の解析: ウェブページの構造とスタイルを解釈します。例えば、HTML タグをツリー構造(DOM)に変換し、CSS ルールを適用します。
  • JavaScript の処理: V8 エンジンと連携して、動的なコンテンツやユーザーインタラクションを扱います。例えば、ボタンのクリックイベントや AJAX 呼び出しを処理します。
  • ページの描画: テキスト、画像、動画などの要素を画面に表示します。これには、レイアウト計算(フローや位置の決定)やグラフィックスのレンダリングが含まれます。

Blink は、2013 年 4 月 3 日に Google によって発表されました。これは、WebKit(Apple の Safari で使用されているレンダリングエンジン)からフォークされたもので、Chromium の多プロセスアーキテクチャに最適化されたエンジンとして開発されました。フォークの理由は、WebKit がシングルプロセスアーキテクチャを前提として設計されており、Chromium の多プロセスモデルとの相性が悪く、複雑さを増していたためです。

Blink の名前は、「速さ」を示す「blink(瞬き)」と、かつて存在した非標準の HTML 要素「blink」に由来しています。Blink の開発では、以下のような方針が採用されています:

  • CSS ベンダープレフィックスの廃止: WebKit の -webkit- プレフィックスを廃止し、標準化を推進。
  • 実験的機能のオプトイン: 新機能はデフォルトで有効にならず、ユーザーが明示的に有効化する必要がある。
  • 標準化の推進: HTML5、CSS3、ECMAScript などのウェブ標準の遵守を重視。

3. Chromium と Blink の関係と違い

Chromium と Blink の関係を理解するために、以下の表で比較します:

観点ChromiumBlink
定義オープンソースのウェブブラウザプロジェクト。Chromium ベースのブラウザで使用されるレンダリングエンジン。
範囲ブラウザ全体(レンダリング、JavaScript、UI、ネットワーキングなど)。レンダリングエンジンに限定。
役割完全なウェブブラウザを提供。ウェブページを解析し、描画する。
開発の目的安定性、セキュリティ、パフォーマンスを兼ね備えたブラウザの基盤を提供。Chromium の多プロセスアーキテクチャに最適化されたレンダリングエンジンを提供。
使用例Google Chrome、Microsoft Edge、Opera、Brave などのブラウザの基盤。Chromium ベースのすべてのブラウザで使用。
オープンソースBSD ライセンスで公開。Chromium プロジェクトの一部として公開。

この表から明らかなように、Chromium は Blink を含む広範なフレームワークであり、Blink はその一部に過ぎません。Blink は Chromium ベースのすべてのブラウザで共通して使用されますが、単体ではブラウザとして機能しません。例えば、Blink 単体では UI やネットワーキング機能が欠けているため、ウェブページを表示するエンジンとしては機能しますが、完全なブラウザとしては動作しません。

4. Blink の歴史的背景とフォークの理由

Blink の歴史を詳しく見ると、以下のポイントが重要です:

  • WebKit の使用: Chromium の初期段階では、WebKit をレンダリングエンジンとして使用していました。WebKit は、2001 年に KHTML から派生した軽量かつパワフルなエンジンで、その柔軟性とパフォーマンスが評価されていました(WebKit の歴史)。
  • 多プロセスアーキテクチャの必要性: Chromium は、セキュリティとパフォーマンスを向上させるために、多プロセスアーキテクチャを採用しました。これは、各タブや機能を別々のプロセスで実行することで、ブラウザ全体がクラッシュしないようにする設計です(Chromium の多プロセスアーキテクチャ)。
  • 複雑さの増大: WebKit はシングルプロセスアーキテクチャを前提として設計されており、Chromium の多プロセスモデルとの相性が悪く、両者のコミュニティで複雑さを増していました。これにより、イノベーションのペースが遅れる問題が発生しました。
  • フォークの決定: 2013 年、Google は WebKit をフォークし、Blink を作成しました。この決定は、Chromium のアーキテクチャに最適化されたレンダリングエンジンを開発する必要性から生まれました(Blink の発表)。

フォーク後、Blink の初期作業は内部的なアーキテクチャの改善とコードベースの簡略化に焦点を当てました。例えば、7 つのビルドシステムを削除し、450 万行以上のコード(7,000 ファイル以上)を削除しました。これにより、長期的な安定性とバグの削減が期待されました。

5. Blink の開発とウェブへの影響

Blink の開発は、ウェブの進化に大きな影響を与えました:

  • ウェブ標準の推進: Blink は、Web 標準の遵守を重視しており、HTML5、CSS3、ECMAScript などの新しいウェブ技術の実装に積極的に取り組んでいます。これにより、ウェブ開発者は、標準に準拠したコードを書くことで、異なるブラウザ間での互換性を高めることができます。
  • ブラウザ間の競争: Blink の登場は、WebKit と並ぶ主要なレンダリングエンジンとして位置づけられ、ブラウザ間の競争を活性化させました。例えば、Microsoft Edge が Chromium(そして Blink)に移行したことで(Edge の Chromium 移行)、レンダリングエンジンのパフォーマンスやセキュリティが向上しました。
  • オープンソースコミュニティへの貢献: Blink は、Google だけでなく、Microsoft、Igalia、Yandex、Intel、Samsung、LG、Opera、Vivaldi などの企業や個人からの貢献を受けています(Chromium の貢献者)。このような共同開発は、Blink の品質と安定性を高めるだけでなく、ウェブ全体のエコシステムを向上させています。

6. Chromium と Blink の実際の使用例

  • Chromium: Chromium は、直接インストールして使用することもできますが、通常は Google Chrome や Microsoft Edge などのブラウザの基盤として使用されます。Chromium 単体は、Chrome に比べて安定性が低く、自動更新機能が欠けているため、一般ユーザーにはあまり推奨されません(Chromium の使用)。
  • Blink: Blink は、Chromium ベースのすべてのブラウザで使用されています。例えば:
    • Google Chrome
    • Microsoft Edge
    • Opera
    • Brave
    • Vivaldi

これらのブラウザは、Chromium のコードをベースにしつつ、独自の機能やデザインを追加していますが、レンダリングエンジンとして Blink を共有しています。例えば、Opera は Chromium を基盤にしつつ、独自のオペラターボ機能を提供しますが、ウェブページのレンダリングには Blink を使用します。

7. 結論

Chromium と Blink は、ウェブブラウザの世界において重要な役割を果たしていますが、その役割は異なります。Chromium は、完全なウェブブラウザを構築するための包括的なプロジェクトであり、Blink を含む多くのコンポーネント(V8、Skia、ネットワーキング、UI など)を提供します。一方、Blink は、Chromium ベースのブラウザで使用されるレンダリングエンジンであり、ウェブページの解析と描画を担当します。

Blink の開発は、Chromium の多プロセスアーキテクチャに最適化されたレンダリングエンジンを実現するために行われました。このフォークは、ウェブの進化に大きく寄与し、標準化の推進やブラウザ間の競争を活性化させました。研究は、Chromium が全体的なブラウザフレームワークであり、Blink がそのレンダリング部分であることを示唆しています。


主要引用文献