Google Chrome 浏览器架构解析及相关特性分析
### Google Chrome 浏览器架构解析及相关特性分析 #### 设计目标 Google Chrome 浏览器的设计目标主要包括三个方面:稳定性(Stability)、安全性(Safe)以及高效性(Speed)。为达到这些目标,Chrome 采用了多进程架构,确保了每一个网络应用都能在独立的环境中运行,避免了一个应用崩溃影响整个浏览器的正常工作。 #### 核心思想——多进程架构 多进程架构是 Chrome 的核心设计之一,其主要特点包括: 1. **不同的网络应用运行在各自的地址空间**:这确保了不同网页之间相互隔离,即使某个页面出现问题也不会影响到其他页面。 2. **不同的网络应用运行在权限不同的隔离运行环境**:通过这种方式进一步加强了安全性,防止恶意代码对用户系统造成损害。 3. **充分利用现代多核处理器的优势**:多进程架构能够更好地利用多核处理器资源,提高整体性能。 #### 多进程架构示意图 - **浏览器进程**:负责主控和协调各功能模块及相关进程,处理 IO 操作并进行转发。 - **Renderer 进程**:嵌入 WebKit 引擎来解析、渲染和处理网页及网络应用。 - **扩展组件进程**:运行第三方开发者提供的功能扩展(如自动翻页、下载助手等)。 - **插件进程**:支持 NPAPI 插件(如 Flash、Java、Silverlight 等)。 #### 进程间通信 - **通信方式**: - 使用 named pipes/socket pair 作为 IPC (Inter-Process Communication) 通信通道。 - 主要采用异步通信方式,但也会在必要时使用少量的同步通信。 - 一些数据通过 Shared Memory (共享内存)进行交换。 - **消息类型**:主要包括 route 和 control 类型的消息。 - **处理机制**:每个进程都有一个专门的线程来处理 IPC 通信任务。 #### 进程模型 Chrome 支持多种进程模型以满足不同场景的需求: 1. **进程模型1:一进程每站点实例(1-process-per-site-instance)** - **定义**:根据相同域名(含子域名)、访问模式和端口来划分站点实例。 - **优点**:有效隔离来自不同站点的页面,同时也能隔离同一站点下的不同应用。 - **缺点**:可能会消耗更多内存,并且需要跨进程代理来实现跨域页面间的脚本访问。 2. **进程模型2:一进程每站点(1-process-per-site)** - **定义**:所有来自相同站点的页面都在同一个进程中运行。 - **优点**:减少了内存使用量,但仍能隔离不同站点之间的页面。 - **缺点**:若一个站点拥有大量应用,则可能占用较多内存,且需使用跨进程代理来实现跨站脚本访问。 3. **进程模型3:一进程每标签页(1-process-per-tab)** - **定义**:每个标签页运行在单独的进程中,页面不会切换自己的进程。 - **优点**:有脚本关联的页面可以直接通信。 - **缺点**:可能导致不期望的信息共享。 4. **进程模型4:单一进程(single process)** - **定义**:所有功能均在同一进程中运行,类似于传统浏览器的设计。 - **缺点**:这种设计不够安全也不够稳定,容易导致整个浏览器因单个页面崩溃而受影响。 #### 插件与扩展的进程模型 - **插件与扩展**:分别运行在独立的进程中,确保每个插件或扩展仅在一个进程中执行。 - **安全措施**:使用沙箱技术来限制插件与扩展的权限,增强浏览器的安全性。 #### 沙箱和安全浏览服务 - **沙箱技术**: - **目标**:保护用户系统不受网页上的恶意软件侵害;防止用户系统的输入事件(如键盘和鼠标操作)被监听;保护用户系统中的文件不被盗取。 - **设计原则**:最大化利用操作系统提供的安全功能;仅授予必要的权限;假设受沙箱管理的代码都可能是恶意代码。 - **不保护内容**:包括 Cookies、密码、HTML5 数据库、localStorage 和 sessionStorage 等。 - **技术细节**:在 Windows 平台上,沙箱技术通过基于用户令牌的方法限制程序对文件系统、网络、窗口系统和输入设备的访问。 #### 总结 Google Chrome 浏览器通过多进程架构、灵活的进程模型以及沙箱技术,在保证稳定性和高效性的基础上,实现了极高的安全性。这些设计理念和技术手段使得 Chrome 成为当今最受欢迎的浏览器之一。
剩余25页未读,继续阅读
- 粉丝: 6
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
- 1
- 2
前往页