跪拜 Guibai
← Back to the summary

Chromium Is Not a Kernel: Untangling Chrome's Open-Source Base


theme: awesome-green

When I first started learning front-end development, I often heard statements like:

Chrome uses the Chromium kernel.

Edge also uses the Chromium kernel.

Taken individually, these statements don't seem problematic. But put together, they easily cause confusion.

Is Chromium actually a kernel?

What is the relationship between Chromium and Chrome?

This article is dedicated to clarifying these concepts.

1. First, remember one sentence

If you only want to remember one conclusion, remember this:

Chromium is an open-source browser project, and Chrome is a browser product Google built based on Chromium.

Even simpler:

Chromium = the base

Chrome = Chromium + Google's own features

Similar to:

Android AOSP
    ↓
Xiaomi HyperOS
Samsung One UI

Chromium is much the same. Many browsers today are built on top of Chromium. For example:

                 Chromium
                     │
          ┌──────────┼──────────┐
          ↓          ↓          ↓
       Chrome       Edge       Brave
       Google     Microsoft

So, Chrome and Chromium are not the same thing.

2. Who developed Chromium?

Chromium was originally an open-source browser project initiated by Google in 2008.

At that time, Google launched the Chrome browser and simultaneously open-sourced a large portion of its core code; this open-source project is Chromium. So their relationship was very close from the start. It can be simply understood as:

Google
  │
  ├── Chromium
  │      Open-source browser project
  │
  └── Chrome
         Google's browser product

However, today's Chromium is no longer developed solely by Google engineers. Companies like Microsoft, Intel, Samsung, Opera, and many individual developers have also contributed code to Chromium. Especially after Microsoft Edge switched to using Chromium, Microsoft became one of the important contributors to Chromium.

But overall, Google remains the most important driving force behind Chromium.

So if someone asks:

Is Chromium owned by Google?

A more accurate answer is:

Chromium is an open-source project initiated and long-dominated by Google, but it is not a private project belonging only to Google.

3. Why is the term "Chromium kernel" not very accurate?

A common saying in China is:

This browser uses the Chromium kernel.

In daily communication, saying this is mostly fine. But technically, it's not very rigorous. The reason is simple:

Chromium is too large.

It is not just a single module responsible for "displaying web pages." Chromium includes many things. It can be roughly drawn like this:

Chromium
│
├── Browser window
├── Tabs
├── Multi-process architecture
├── Network module
├── GPU
├── Storage
├── Cookie
├── IndexedDB
├── Service Worker
├── DevTools
├── Extension system
├── Security sandbox
├── Blink
├── V8
└── A large number of base modules

Seeing this, you should understand: Chromium itself is already a complete browser project.

So directly calling Chromium a "browser kernel" is a bit like calling "a whole car" an "engine."

People roughly know what you mean. But strictly speaking, they are not the same thing.

4. So what is the real "browser kernel"?

This is where two very important names come in:

Blink
V8

Front-end developers would do well to remember them.

5. What is Blink?

Blink is the web rendering engine used by Chrome and Chromium.

What does it mainly handle? Simply put:

It is primarily responsible for HTML and CSS.

For example, when a browser gets the following code:

<div class="box">
  Hello World
</div>

And the CSS is:

.box {
  width: 200px;
  height: 100px;
}

The browser ultimately needs to know many things. For example:

This is a div

It is 200px wide

100px high

Where it should appear on the page

How the text should be drawn

How elements should be laid out relative to each other

A large part of these tasks is handled by Blink. The process can be roughly understood as:

HTML
 ↓
DOM

CSS
 ↓
CSSOM

DOM + CSSOM
 ↓
Layout
 ↓
Paint
 ↓
Composite
 ↓
Finally displayed on the screen

So if someone asks:

What is Chrome's rendering engine?

The answer is:

Blink.

6. What is V8?

V8 is the JavaScript engine.

It is mainly responsible for:

Executing JavaScript.

For example:

const a = 1
const b = 2

console.log(a + b)

This code is not executed by Blink.

It is mainly handled by V8.

So you can first establish a simple model:

HTML / CSS
    ↓
  Blink

JavaScript
    ↓
   V8

Of course, the inside of a real browser is much more complex than this. There is also a lot of interaction between Blink and V8. But for beginners, this understanding is perfectly sufficient.

7. So what is the relationship between Chromium, Blink, and V8?

Now we can draw the relationship.

              Chromium
                  │
        ┌─────────┴─────────┐
        │                   │
      Blink                V8
        │                   │
 HTML / CSS / DOM       JavaScript

Note the hierarchical relationship here. It is not:

Chromium = Blink

Nor is it:

Chromium = V8

Rather:

Chromium uses Blink and V8 inside it

Chromium is much larger than either of these two things.

8. Where does Chrome fit in this layer?

Add one more layer on top.

               Chrome
                  │
        Google products and services
                  │
              Chromium
                  │
         ┌────────┴────────┐
         │                 │
       Blink               V8

This is closer to the real relationship: Chrome is based on Chromium. But Chrome is not equal to Chromium.

Google adds many of its own product capabilities on top of Chromium.

For example:

Google Account

Chrome Sync

Google Password Manager

Automatic updates

Safe Browsing

Enterprise management features

Some Google services

Google's own product features

So, if you download the Chromium source code and compile a browser yourself, it will not be exactly the same as the Chrome you download and install from the Chrome official website.

9. Why does Edge also look so similar to Chrome?

Because the new version of Edge is also developed based on Chromium. It can be roughly understood as:

                 Chromium
                     │
        ┌────────────┴────────────┐
        │                         │
      Chrome                    Edge
        │                         │
     Google                   Microsoft
        │                         │
 Google services          Microsoft services

Many things at the bottom layer are the same. For example:

Blink

V8

Network module

Multi-process architecture

Many Web APIs

A large amount of DevTools base capabilities

So during front-end development, you often find:

If a webpage works normally on Chrome, it usually won't have major issues on Edge either.

Because they share a large amount of Chromium code at the bottom layer. Of course, this doesn't mean Chrome and Edge are completely identical. Microsoft still adds its own:

Account system

UI

Copilot

Favorites capabilities

Enterprise management

Privacy policy

Browser features

So a more accurate statement is:

Chrome and Edge use the same Chromium base, but the upper-layer products are different.

10. What about Safari and Firefox?

Safari and Firefox are not part of this Chromium set.

Current mainstream browsers can roughly be viewed like this:

Browser Browser Base Rendering Engine JavaScript Engine
Chrome Chromium Blink V8
Edge Chromium Blink V8
Brave Chromium Blink V8
Opera Chromium Blink V8
Safari WebKit WebKit JavaScriptCore
Firefox Gecko Gecko SpiderMonkey

So mainstream browsers today can be broadly seen as a few camps.

Browsers
 │
 ├── Chromium / Blink
 │      ├── Chrome
 │      ├── Edge
 │      ├── Brave
 │      └── Opera
 │
 ├── WebKit
 │      └── Safari
 │
 └── Gecko
        └── Firefox

This is also why, when front-end developers do browser compatibility testing, they usually cannot just test on Chrome. It's best to at least pay attention to:

Chrome / Edge

Safari

Firefox

Because they do not all use the exact same browser implementation.

11. Why does Chrome still have a bunch of webkit?

Front-end developers have surely seen code like this:

-webkit-transform: translateX(10px);

Or:

::-webkit-scrollbar {
}

Seeing this, many people wonder: Doesn't Chrome use Blink? Why does the name still contain webkit?

This is a historical legacy issue; Blink and WebKit are inherently related by lineage. The history can be very roughly drawn as:

KHTML
  ↓
WebKit
  ↓
Blink

Chrome used WebKit in its early days. Later, in 2013, Google forked Blink from WebKit. Since then:

Safari
  ↓
WebKit

Chrome
  ↓
Blink

But a lot of historical compatibility code did not disappear immediately. So today's Chrome still contains a large number of names with webkit.

This is not because Chrome still directly uses WebKit today. It's more of a historical compatibility issue.

12. Chrome is actually not "one program"

Let's go one step deeper into the bottom layer here. Many people subconsciously assume:

Chrome.exe
    ↓
Runs web pages

In reality, modern Chrome is a typical multi-process browser. If you open Chrome's task manager, you will see many processes. It looks roughly like this:

Browser Process
      │
      ├── Renderer Process
      ├── Renderer Process
      ├── GPU Process
      ├── Network Service
      ├── Extension Process
      └── Utility Process

That is to say, Chrome does not cram everything into a single process. For example, web page rendering usually runs inside a Renderer Process. The network has its own service, the GPU has its own process, and extensions may also run in independent processes.

This design has many benefits. The most intuitive one is:

If one web page crashes, it doesn't necessarily bring down the entire browser with it.

For example:

Renderer A  💥

Renderer B  Normal

Renderer C  Normal

Browser     Normal

Modern browsers can achieve relatively good stability and security, and the multi-process architecture is a very important reason for this.

13. Looking back at Chrome DevTools

The Chrome DevTools we usually open by pressing F12 are essentially a window for observing various capabilities of Chromium.

For example:

Elements

Behind this involves DOM, CSS, and Blink.

Console

A large amount of capability is related to JavaScript and V8.

Network

Corresponds to Chromium's network module.

Performance

Will involve:

Blink

V8

Renderer

GPU

Page layout

Painting
Application

Inside, you will see:

Cookie

LocalStorage

IndexedDB

Cache Storage

Service Worker

So front-end developers interact with Chromium every day; they just usually don't specifically think about what these things are called.

14. A final summary

If the previous content felt like a lot, you only need to remember the following four sentences at the end.

First, Chromium

Chromium is:

An open-source browser project initiated and long-dominated by Google.

It is not a simple "rendering kernel," but contains a large amount of infrastructure needed to build a modern browser.

Second, Chrome

Chrome is:

A browser product built by Google based on Chromium.

It can be simply understood as:

Chrome
=
Chromium
+
Google's product capabilities

Third, Blink

Blink is:

The web rendering engine used by Chromium.

Mainly responsible for:

HTML

CSS

DOM

Layout

Painting

Fourth, V8

V8 is:

The JavaScript engine used by Chromium.

Mainly responsible for executing:

JavaScript

WebAssembly

Finally, the relationship can be drawn like this:

                         Chrome
                           │
                     Google product layer
                           │
                       Chromium
                           │
          ┌────────────────┼────────────────┐
          │                │                │
        Blink              V8           Other modules
          │                │                │
   HTML / CSS / DOM    JavaScript       Network
                                       GPU
                                       Storage
                                       Sandbox
                                       DevTools
                                       Multi-process architecture
                                       ...

Next time you hear terms like "Chrome kernel" or "Chromium kernel," you can first ask yourself:

Is the other party talking about Chromium, Blink, or V8?

Once you separate these concepts, many browser-related questions will suddenly become much clearer.