浏览器构架 | 青训营笔记

88 阅读2分钟

浏览器构架

单进程架构:

所有模块运行在同一个进程里,包含网络、插件、JavaScript运行环境等

多进程架构:

主进程、网络进程、渲染进程、GPU进程、插件进程

面向服务架构:

将原来的UI、数据库、文件、设备、网络等,作为一个独立的基础服务

任务管理器

在多进程浏览器架构中,任务管理器是一个非常重要的组件。任务管理器负责监控、管理和分配浏览器的各个进程,确保整个浏览器系统的稳定性和性能。

(1)进程监控:

任务管理器可以实时查看浏览器中的各个进程,包括标签页进程、插件进程和扩展进程等。它可以展示各个进程的资源使用情况,如内存占用、CPU使用率和网络活动等。

(2)进程管理:

任务管理器负责启动和关闭浏览器的进程。当用户打开一个新的标签页或启动一个插件时,任务管理器会创建相应的进程。当标签页被关闭或插件停止运行时,任务管理器会结束相应的进程,以释放系统资源。

(3)资源分配:

任务管理器根据各个进程的资源需求,动态地分配系统资源。例如,对于需要大量CPU资源的进程,任务管理器会分配更多的CPU时间片。同时,任务管理器还可以确保关键进程(如用户界面进程)始终获得足够的资源,从而保证整个浏览器的流畅运行。

(4)进程隔离:

为了提高浏览器的安全性,任务管理器会对各个进程进行隔离。这意味着一个进程无法直接访问另一个进程的内存空间。进程隔离可以防止潜在的安全漏洞影响到整个浏览器系统。

(5)异常处理:

任务管理器负责检测和处理进程中的异常情况。当某个进程发生崩溃或无响应时,任务管理器会尝试自动恢复该进程。如果无法恢复,任务管理器会提示用户关闭相应的标签页或插件,以防止整个浏览器崩溃。

多进程分工

浏览器(主进程):

主要负责页面展示逻辑,用户交互,子进程管理;包括地址栏、书签、前进、后退、收藏夹等

GPU进程:

负责UI绘制,包含整个浏览器全部UI

网络进程:

网络服务进程,负责网络资源加载

标签页:

控制tab内的所有内容,将HTML、CSS和JavaScript转换为用户可交互的页面

插件进程:

控制网站运行的插件,比如flash、ModHeader等

其他进程:

如上图所示:适用程序Storage/Network/Audio Service等