深入理解现代浏览器 (1)| 青训营笔记

78 阅读2分钟

这是我参与「第四届青训营 」笔记创作活动的第5天

web浏览器架构

概念

Web浏览器的架构,可以实现为一个进程包含多个线程,也可以实现为很多进程包含少数线程通过IPC通信。

Chrome最新的架构:最上层是浏览器进程,负责协调承担各项工作的其他进程,比如实用程序进程、渲染器进程、GPU进程、插件进程等。

  • 浏览器进程:控制浏览器的主框架部分,包括地址栏,前进,后退按钮等。也可以发送网络请求或者访问文件
  • 渲染器进程:主要是负责显示网页,以及处理事件。
  • 插件进程:主要是控制网站的所有插件
  • GPU进程:在独立的进程中处理GPU任务。之所以要放到独立的进程当中,是因为GPU要处理多个应用的请求,并在同一个界面上显示图形。

更多的进程可以根据浏览器中的任务管理器查询:

image.png

多进程架构的好处

进程和线程的理解

  • 启动一个程序的时候,操作系统会为该程序创建一块内存,用来存放代码、运行中的数据和一个执行任务的主线程,我们把这样的一个运行环境叫进程。就是说一个进程就是就是一个程序的运行实例。
  • 线程是依附在进程上的,进程上可以有多个线程并行处理。线程通过进程来启动与管理。

单进程架构与多进程架构

理解完进程和线程之后,就来聊聊单进程架构和多进程架构的区别

  • 单进程架构是浏览器的所有功能模块都放在同一个进程里,包括网络,插件,渲染等。多进程架构是如将渲染放在渲染器进程,插件放在插件进程,进程之间运用IPC进行通信(如图)。

  • 多进程解决了单进程架构在同一时间段只能有一个模块进行的问题,比单进程更加流畅

  • 多进程通过进程是相互隔离的特点,解决了单进程可能因为一个功能崩溃而整个浏览器崩溃的问题,多进程更加稳定

  • 多进程可以使用安全沙箱,即给操作系统的进程加了一把锁,使得网页更加的安全。