Skip to content

浏览器多进程架构 ​

单进程架构的缺点 ​

  1. 稳定性

如果浏览器所有的任务(页面渲染、插件)都以线程的形式运行在同一个进程中, 那么任何一个线程的崩溃, 都将导致进程的崩溃, 也就是浏览器的崩溃。

  1. 安全性

单进程下, 进程中的所有任务都能随意访问计算机资源, 无法进行权限管理。

在多进程架构下, 浏览器可以沙盒化某些功能,让特定进程发挥特定功能。例如,Chrome 浏览器会限制处理任意用户输入的进程(例如渲染程序进程)对任意文件的访问权限。

多进程概览 ​

image

  1. 多进程架构保证了浏览器不会因为某一个任务崩溃而崩溃, 标签页之间不会互相影响
  2. 限制了渲染进程的访问权限。由于渲染任务运行在独立的进程中, 这使得可以限制渲染进程的访问权限如网络、文件系统等等。 渲染进程不能直接访问其他渲染进程或操作系统, 只能和主进程通过 浏览器IPC系统进行通信。

浏览器主要有哪些进程? ​

  1. 主进程. 主进程负责浏览器UI以及子进程的管理。
  2. 渲染进程。渲染进程负责web内容(html、css和javascript)的渲染和展示, 一般的每一个浏览器标签页就对应着一个渲染进程。
  3. 网络进程。
  4. GPU进程。
  5. 插件进程。
  6. 等等

参考 ​

Multi-process Architecture (chromium.org)

浏览器原理:多进程架构 · Issue #36 · campcc/blog (github.com)