据国外媒体报道,随着时代的进步,互联网已经成为人们生活的重要组成部分,而Web浏览器也理所应当地成为计算机等设备中最为重要的软件。
不过,随着Web浏览器重要性的日益突出,恶意软件、木马、间谍软件等网络攻击也呈现逐渐的上升。而面对如此众多的潜在威胁,为了确保用户的安全性和稳定性,浏览器不得不改进浏览器的性能,其中之一就是向用户提供多进程浏览。
在浏览器中添加多进程浏览功能之后,即使是浏览器其中的一个进程出现了崩溃现象,其他的进程也不会受到影响。例如,如果一个网站中有漏洞或包含恶意代码,它就有可能摧毁当前运行在这个网站上的标签,但是它却不会影响其他的进程或整个浏览器。
目前,有很多的浏览器厂商采用了多进程标签浏览的概念,其中包括谷歌Chrome、微软IE8和Mozilla Firefox,而众多基于WebKit的浏览器也将在不久之后采用多进程标签浏览这个功能,例如苹果的Safari浏览器。
不过,虽然上述浏览器都采用多进程标签浏览概念,但是他们在浏览器中执行多进程标签浏览的方法却是不同的。
#1、谷歌Chrome/Chromium的多进程架构
谷歌Chrome是首款采用多进程浏览概念的浏览器,它还具备最为复杂的用于隔离浏览器各个组成部分的系统。
在Chrome中,谷歌通过out of process plugins(OOPP)功能将所有的插件进程(如Flash、Java、PDF阅读器等)与的浏览器进程隔离,进而提升Chrome浏览器的安全性。也就是说,即使是Chrome中有插件出现崩溃现象,也并不会影响整个浏览器的运行
总得来讲,谷歌Chrome和Chromium中包含以下4中主要的进程类型:
*浏览器进程——用于处理用户界面和管理所有其他的进程,其运行在浏览器的最顶级;
*渲染进程——用于处理独立浏览器标签中的渲染,值得注意的是,一个渲染进程能够处理多个标签;
*插件进程——每个浏览器插件如Adobe Flash或Java都运行在它们自己的独立进程中,这些插件进程能够与各自的渲染进程互通;
*扩展进程——浏览器中的扩展也拥有各自的独立进程,以避免互相干扰。
图1:谷歌Chrome多进程架构
#2、微软IE8 Loosely-Coupled IE(LCIE)
在最新一代浏览器IE8中,微软添加了被称为“Loosely-Coupled IE(LCIE)”的架构。
通过Loosely-Coupled IE(LCIE)架构,IE8将主要的浏览进程与渲染进程相隔离。
主要的进程处理浏览器、用户界面和框架(窗口),用于存储选项卡。在IE8中,多个选项卡是运行在相同的进程中的,不过不同安全级别的选项卡是相互分开的。ActiveX空间是通过选项卡进程进行处理的。
图2:微软IE8多进程架构
图(3)
#3、Mozilla Electrolysis和Out-of-process插件
相较于谷歌Chrome和微软IE8,Mozilla Firefox是步入多进程行列中较晚的一款浏览器,其中所包含的多进程架构也不如Chrome或IE复杂。
Mozilla基金会在Firefox中添加多进程架构的目的就是隔离浏览器插件和浏览器的主要进程,项目代号为“Electrolysis”,正处于早期的测试阶段。
目前,Firefox 3.6.4 beta builds中已经包含了多进程处理能力。
图4:Firefox中的多进程架构
#4、WebKit 2中的多进程
前段时间,WebKit团队宣布,在即将发布的WebKit2中将会包含多进程浏览能力。换句话也就是说,采用WebKit Web渲染引擎的大量浏览器中都将会引进多进程浏览功能。
虽然谷歌Chrome/Chromium使用的是WebKit引擎,不过他们的多进程架构是不同的。在Chrome中,谷歌在每个渲染进程中都包含一个WebKit渲染引擎,而WebKit 小组则计划将WebKit2渲染引擎自身分裂到多个进程中。
在WebKit2采用多进程浏览模型之后,网页的内容(JavaScript,HTML,以及布局等)将各自拥有独立的进程,这一机制是通过两个主要的子系统(CoreIPC和DrawingArea)来支持的。
WebKit2中的多进程浏览模型和Google Chrome的最大不同在于,WebKit直接把独立进程模型放进了一个框架中,因此也能被其他客户端使用。事实上,历史上除了浏览器之外,苹果的邮件客户端和微软的个人信息管理软件都使用过WebKit内核。
WebKit还是其它几个移动浏览器的基础,包括iPhone操作系统、谷歌的 Android、Symbian手机使用的S60 Web浏览器和Palm Pre。
图1:WebKit中的多进程架构
分享到:
相关推荐
Java详解Web 基础架构:负载均衡和 LVS.doc
[独门架构:Java Web开发应用详解].李宁.著
主要介绍了详解Java中多进程编程的实现,和多线程一样,多进程同样是实现并发的一种方式,需要的朋友可以参考下
主要介绍了使用Chrome浏览器调试Android App详解,本网讲解了使用Facebook开源Stetho实现在Chrome中调试Android App中,需要的朋友可以参考下
进程名称: Windows内存处理系统进程 描述: Windows页面内存管理进程,拥有0级优先。 是否为系统进程: 是 alg.exe 进程文件: alg or alg.exe 进程名称: 应用层网关服务 描述: 这是一个应用层网关服务用于网络共享。...
详解全球半导体制造行业格局:科技基建,自主创芯.pdf
WebSocket+MSE是适用于H5直播的技术 HTML5 MSE.Media Source Extensions (MSE) 是一个主流浏览器支持的新的 Web API
智能汽车:电子电气架构详解.docx
Java自学网(javazx.com)[独门架构:Java Web开发应用详解].李宁.著.扫描版
1)详细讲解主流架构strutsX系列 2)持久层架构剖析与精讲 3)Spring详解与实战 4)系统设计实战心得
大数据技术体系详解:原理、架构与实践.docx
独门架构JavaWeb开发应用详解源码
大型网站架构系列:负载均衡详解
Chrome控制台使用详解.pdf 介绍在chrome浏览器调试javescript的使用方法
第5章 信息架构详解 65 信息架构的可视化 65 自顶向下的信息架构 68 自底向上的信息架构 70 不可见的信息架构 73 信息架构组件 74 浏览帮手 75 搜索帮手 76 内容和任务 77 “不可见的”组件 78 本章回顾 ...
银行行业季度报告:详解基金的银行股持仓:2季度环比下降1.5%,优质城商行逆势增持.pdf
梁伟Visual C++网络编程经典案例详解FTP浏览器
OpenStack 架构详解 OpenStack 是一个开源的云计算平台,提供了一个操作平台或工具包,用于编排云计算资源。 OpenStack 由社区维护,包括 OpenStack 计算(Nova)、OpenStack 对象存储(Swift)和 OpenStack 镜像...
Windows 进程完全解析 system process 进程文件: [system process] or [system process] 进程名称: Windows内存处理系统进程 描述: Windows页面内存管理进程,拥有0级优先。 是否为系统进程: 是