客户端容器学习 | 青训营笔记

70 阅读2分钟

好滴,直接开始记录一下多进程架构浏览器的进程分工。

  1. 主进程(浏览器):主进程是浏览器的核心进程,负责协调和管理其他进程。它主要负责处理用户界面、与操作系统交互、处理用户输入以及启动和终止其他进程。主进程还负责管理浏览器窗口、标签页(渲染进行)和插件(插件进程)等。
  2. 网络进程:网络进程负责处理浏览器的网络请求和响应。它与主进程和渲染进程之间充当中间人的角色,负责发送和接收网络数据。网络进程处理 DNS 查询、建立和管理网络连接、下载资源以及处理安全性和隐私相关的操作。
  3. 渲染进程:渲染进程负责将网页内容渲染到用户界面中。每个标签页通常都有一个独立的渲染进程。渲染进程将 HTML、CSS 和 JavaScript 解析为可视化的网页。渲染进程通常以沙盒(sandbox)的形式运行,以防止恶意网页访问系统资源,多进程架构和面向服务的架构都具有这样的特性,用于提升安全性。
  4. GPU进程:负责整个浏览器的UI绘制。
  5. 插件进程:插件进程是独立于渲染进程的单独进程,用于运行浏览器插件,如油猴中下载的插件、掘金的笔记插件等。不过要注意的是插件可能存在安全漏洞,所以使用的时候一定要注意,防止被窃取信息造成损失之类的就糟糕了。

然后主要记录一下渲染进程,毕竟平常编写的前端代码主要设计这方面嘛。

  1. js引擎:顾名思义这个是用来解析js代码的,每个浏览器都有自己的js引擎,包括很多软件其实也有js引擎,让我想起来某个测试软件“恭喜你,你的电脑上含有xxx个ctf软件”。
  2. gui引擎:GUI引擎负责将渲染引擎生成的页面内容显示在用户界面上。它将渲染引擎绘制的图像转换为可视化的UI元素,如文本、图像、按钮等。GUI引擎还负责处理用户输入事件(如点击、滚动等)并将其传递给渲染引擎处理。
  3. 网络线程:略。。。
  4. 事件触发:负责处理用户交互事件
  5. 定时器:用于处理定时任务,比如动画之类的。