http://www.cnbeta.com/articles/109595.htm

随着Web浏览器重要性的日益突出,恶意软件、木马、间谍软件等网络攻击也呈现逐渐的上升。而面对 如此众多的潜在威胁,为了确保用户的安全性和稳定性,浏览器不得不改进浏览器的性能,其中之一就是向用户提供多进程浏览。在浏览器中添加多进程浏览功能之 后,即使是浏览器其中的一个进程出现了崩溃现象,其他的进程也不会受到影响。例如,如果一个网站中有漏洞或包含恶意代码,它就有可能摧毁当前运行在这个网 站上的标签,但是它却不会影响其他的进程或整个浏览器。

   据国外媒体报道,随着时代的进步,互联网已经成为人们生活的重要组成部分,而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中的多进程架构

[转载]详解主流浏览器多进程架构:Chrome、IE的更多相关文章

  1. [转载]详解网络传输中的三张表,MAC地址表、ARP缓存表以及路由表

    [转载]详解网络传输中的三张表,MAC地址表.ARP缓存表以及路由表 虽然学过了计算机网络,但是这部分还是有点乱.正好在网上看到了一篇文章,讲的很透彻,转载过来康康. 本文出自 "邓奇的Bl ...

  2. IE8"开发人员工具"使用详解下(浏览器模式、文本模式、JavaScript调试、探查器)

    来源: http://www.cnblogs.com/JustinYoung/archive/2009/04/03/kaifarenyuangongju2.html 在上一篇文章IE8“开发人员工具” ...

  3. [转载]详解ssh端口转发(二)

    关于使用ssh portforwarding来进行FQ的操作,网络上已经有很多很好的文章,我在这里只是画两个图解释一下. 首先要记住一件事情就是: SSH 端口转发自然需要 SSH 连接,而 SSH ...

  4. java三篇博客转载 详解-vector,stack,queue,deque

    博客一:转载自http://shmilyaw-hotmail-com.iteye.com/blog/1825171 java stack的详细实现分析 简介 我们最常用的数据结构之一大概就是stack ...

  5. MapReduce过程详解(基于hadoop2.x架构)

    本文基于hadoop2.x架构详细描述了mapreduce的执行过程,包括partition,combiner,shuffle等组件以及yarn平台与mapreduce编程模型的关系. mapredu ...

  6. Netty4详解三:Netty架构设计(转)

    http://blog.csdn.net/suifeng3051/article/details/28861883?utm_source=tuicool&utm_medium=referral ...

  7. 转载--详解tomcat配置

    http://www.importnew.com/17124.html  原文链接 几乎所有容器类型的应用都会包含一个名为 server.xml 的文件结构.基本上,其中的每个元数据或者配置都是容器完 ...

  8. window.open()详解及浏览器兼容性问题

    一.基本语法:window.open(pageURL,name,parameters)其中:pageURL 为子窗口路径name  为子窗口名字parameters 为窗口参数(各参数用逗号分隔) 二 ...

  9. 浏览器多进程架构、浏览器内核多线程、js单线程、GUI 渲染线程 与 JavaScript引擎线程互斥 原理

    浏览器是多进程的,有一个主控进程,以及每一个tab页面都会新开一个进程(某些情况下多个tab会合并进程). 出处:http://www.imweb.io/topic/58e3bfa845e5c1346 ...

随机推荐

  1. JMeter:生成漂亮的接口/压力测试的HTML报告

    JMeter生成HTML网页报告(非gui模式操作) 我们做性能测试的时候会经常使用一些性能测试工具,比如loardrunner和jmeter,我个人比较喜欢Jmeter这个工具,jmeter之前版本 ...

  2. 使用SignalR实时Web应用程序

    实时Web应用程序能够实时地将服务器端内容推送到连接的客户端.对于ASP.NET开发人员,ASP.NET SignalR是一个向其应用程序添加实时Web功能的库.它利用了多种传输方式,根据客户端和服务 ...

  3. Airmon-ng抓包&破解wifi

    安装  aircrack获取(aircrack源) sudo apt-get install aircrack-ng 配置 安装组件 sudo apt-get install build-essent ...

  4. Unity 2D相机公式换算(从其他博客上抄的)

    2d camera, unit坐标,单位换算 2d游戏可以使用平行投影的camera,这种camera需要设置size (orthographicSize),size的含义为屏幕高度的一半,不过单位不 ...

  5. [T-ARA][결혼 하지마][不要结婚]

    歌词来源:http://music.163.com/#/song?id=27808773 作曲 : 二段横踢 [作曲 : 二段横踢] 作词 : 二段横踢 [作词 : 二段横踢] Hey anybody ...

  6. 【SE】Week2 : 个人博客作业

    1. 是否需要有代码规范 对于是否需要有代码规范,请考虑下列论点并反驳/支持: Statement1 :  这些规范都是官僚制度下产生的浪费大家的编程时间.影响人们开发效率, 浪费时间的东西. 这样的 ...

  7. 《Linux内核分析》第四周学习总结 扒开系统调用的三成皮(上)

    第四周 扒开系统调用的三层皮(上) 郝智宇 无转载 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一. ...

  8. 团队作业8——测试与发布(Beta阶段)目录

    团队作业8——测试与发布(Beta阶段) http://www.cnblogs.com/zy-96/p/8053097.html 团队作业8——测试与发布(Beta阶段)之展示博客 http://ww ...

  9. HTML5之HTTP协议

    ---恢复内容开始--- 99%的人都理解错了HTTP中GET与POST的区别 2016.10.11 13:23:22来源: 51cto作者:51cto   (转)   GET和POST是HTTP请求 ...

  10. WBS功能分解及甘特图

    产品 一级子功能 二级子功能 三级子功能 时间(小时)  食物链教学工具 属性面板 功能按键 选择环境 1       自定义生物 2       生物连线与删除 5       显示食物链 1   ...