GoogleChrome浏览器架构解析
- 格式:pdf
- 大小:530.62 KB
- 文档页数:26
chromium 结构
Chromium的结构包括以下几个部分:
1. Browser(浏览器进程):运行用户界面(UI)以及管理标签页和插件的主进程。
2. Renderer(渲染进程):每个标签页都有自己的渲染进程,负责解析HTML和CSS,并将网页渲染成像素。
3. GPU Process(GPU进程):如果用户正在使用需要GPU加速的功能,比如WebGL或者视频解码,Chromium会为这些功能启动一个独立的GPU进程。
4. Network Process(网络进程):处理所有的网络请求,以提供更快的网络性能和更好的安全性。
5. Utility Process(实用工具进程):运行一些辅助任务,比如下载管理、扩展安装等。
Chromium使用多进程架构,每个进程都有自己的地址空间,以提供更高的安全性和稳定性。
当某个标签页崩溃时,它只会影响到该标签页的渲染进程,而不会影响到其他标签页或者整个浏览器。
这种架构也有助于隔离不同的标签页和插件,防止它们之间的相互干扰。
浏览器是我们每天几乎都必须使用的软件产品,可是对于自己每天都接触的浏览器,很多同学其实对其一无所知。
今天异次元就跟大家说说关于浏览器核的一些事儿吧,好让你了解多一点稍微在的东西。
在下面的文章中主要介绍一些常见的浏览器核和JavaScript引擎,部分容来自于我在网上找到的资料,还有一些是我自己的理解,不保证完全正确,但是大致应该是没错的。
如果有误,请指正……一、浏览器核(排版引擎/渲染引擎)首先解释一下浏览器核是什么东西。
英文叫做:Rendering Engine,中文翻译很多,排版引擎、解释引擎、渲染引擎,现在流行称为浏览器核,至于为什么流行这么称呼,请自行领悟。
Rendering Engine,顾名思义,就是用来渲染网页容的,将网页的代码转换为最终你看得见的页面。
因为是排版,所以肯定会排版错位等问题。
为什么会排版错位呢?有的是由于本身编写不规,有的是由于浏览器本身的渲染不标准。
现在有几个主流的排版引擎,因为这些排版引擎都有其代表的浏览器,所以常常会把排版引擎的名称和浏览器的名称混用,比如常的说IE核、Chrome核。
其实这样子是不太合理的,因为一个完整的浏览器不会只有一的排版引擎,还有自己的界面框架和其它的功能支撑,而排版引擎本身也不可能实现浏览器的所有功能。
下面罗列一下几款主流的排版引擎和浏览器。
1、Trident 核(Windows)Trident 就是大名鼎鼎的IE浏览器所使用的核,也是很多浏览器所使用的核,通常被称为IE核。
基于Trident核的浏览器非常多,这是因为Trident核提供了丰富的调用接口。
老的Trident核(比如常说的IE6核)一直是不遵循W3C标准的,但是由于当时IE6的市场份额最大,所以后果就是大量的网页专门为IE6等老Trident核编写,在IE6下显示很正常,但其实这些网页的代码并不符合W3C标准,于是,完全依据W3C标准写的网页在老的Trident核下面又出现偏差,这就是为什么很多人觉得后来的IE9的网页排版有时会乱了,而IE6则正常,其实不是浏览器兼容性差了,而是你访问的网页不符合新的标准。
一、物理基础架构平安谷歌数据中心包括了生物识别、金属感应探测、监控、通行妨碍和激光入侵感应系统等多层物理平安爱护,并做了严格的限制访问。
由于谷歌的某些服务托管在第三方数据中心,为了确保确定的平安把握,必需部署此类高度平安措施。
硬件设计部署谷歌数据中心网络由数千台服务器组成,这些服务器的主板和网络设备都由谷歌自行定制设计,相关设备组件和供应商都必需经过严格的平安检测和背景审查。
同时谷歌也本人设计了平安芯片,这些芯片被广泛应用于服务器和相关外设环境,为硬件级别的平安识别和认证供应了有效的平安手段。
平安引导和服务器识别机制为了确保正确的服务启动,谷歌服务器使用了一系列的启动引导技术,包括在 BIOS、bootloader、kernel 和系统镜像等底层组件中使用加密签名,这些签名在每次启动和更新时都能进行平安验证。
整个过程中涉及的组件都由谷歌构建、把握和加固。
随着硬件的更新换代,谷歌也在不断努力进行平安改进,比如自行设计了可锁固件芯片、平安微把握器和平安芯片,并依据不同服务器的设计版本,在各类芯片中内置了可信的平安启动机制。
在软件引导和硬件启动过程中,数据中心的每台服务器都有本人独特的标识身份,这些标识也被用于机器底层管理的 API 调用验证。
另外,谷歌也开发了自动更新检测系统,以保证各类软硬件的准时更新、识别和诊断,必要时可以自动隔离那些消灭毛病的服务器。
二、平安服务部署此节中,将对一些基本的软硬件服务平安进行引见,数千台服务器将对这些服务应用恳求进行伺服和备份,这些服务包括 Gmail 的 SMTP 服务、分布式数据存储服务、YouTube 视频转码服务、客户端 APP 沙箱运转服务等常规用户恳求。
全部运转于基础设备架构的服务恳求都由一个叫 Borg 的集群业务管理服务进行把握。
服务标识、完整性与隔离在内部服务的应用层通信之间,谷歌使用了加密认证授权方式,为管理和服务供应了高强度的访问把握。
虽然谷歌不完全依靠内部网络划分和防火墙作为次要平安机制,但为了防止 IP 哄骗等进一步攻击,谷歌在网络入口和出口的各种不同点位使用了过滤策略,这种方法也最大化地提高了网络功能和可用性。
1楼发表于2010-6-3 23:25 |只看该作者|倒序浏览|打印《卡饭月刊》第25期发布(2011.04)--崭新的起点,崭新的开始!3楼发表于2010-6-3 23:27 |只看该作者Chrome源码剖析【三】【三】Chrome的进程模型1. 基本的进程结构Chrome是一个多进程的架构,不过所有的进程都会由老大,Browser进程来管理,走的是集中化管理的路子。
在Browser进程中,有xxxProcessHost,每一个host,都对应着一个Process,比如RenderProcessHost对应着RenderProcess,PluginProcessHost对应着PluginProcess,有多少个host的实例,就有多少个进程在运行。
这是一个比较典型的代理模式,Browser对Host的操作,都会被Host封装成IPC消息,传递给对应的Process 来处理,对于大部分上层的类,也就隔离了多进程细节。
2. Render进程先不扯Plugin的进程,只考虑Render进程。
前面说了,一个Process一个tab,只是广告用语,实际上,每一个web页面内容(包括在tab中的和在弹出窗口中的...),在Chrome中,用RenderView 表示一个web页面,每一个RenderView可以寄宿在任一一个RenderProcess中,它只是依托RenderProcess 帮助它进行通信。
每一个RenderProcess进程都可以有1到N个RenderView实例。
Chrome支持不同的进程模型,可以一个tab一个进程,一个site instance一个进程等等。
但基本模式都是一致的,当需要创建一个新的RenderView的时候,Chrome会尝试进行选择或者是创建进程。
比如,在one site one process的模式下,如果存在此site,就会选择一个已有的RenderProcessHost,让它管理这个新的RenderView,否则,会创建一个RenderProcessHost(同时也就创建了一个Process),把RenderView交给它。
随着网络技术的发展,越来越多应用都已经离不开网络,特别像人类大脑一样的知识库的搜索引擎,更加是离不开功能强大的云计算。
不过,即便云计算非常强大,但它还不能直接地把结果呈现给用户,这样就需要一个客户端来呈现出来,这个客户端就是浏览器。
现在越来越多人上网,他们每一次上网,都离不开浏览的使用,这已经是一个不可缺少的软件了。
这里介绍和分析谷歌推出有创新的浏览器,它的速度比其它浏览器快很多,那么它是怎么实现的呢?又采用了什么样的技术能达到这样呢?又比如它的标签页是每一个进程进行显示的,这到底又是怎么样实现的呢?下面来通过分析它的源码,一一地解开这种高新技术的使用,以及这种高效算法的奥秘。
谷歌浏览器的英语名称为Chrome,它的意义是铬。
铬是一种有光泽的、蓝灰色的坚硬金属元素。
不失光泽,抗腐蚀,最早在铬铁矿中发现。
用作催化剂,可加强钢合金的强度和生产不锈钢,可以做防腐镀层和玻璃制品中的颜料。
原子序数24;原子量51.996;比重7.18;化合价2,3,6。
谷歌起这个名称,可能是想让这个浏览器永远不失去光泽,永远那么吸引人。
铬是无毒,化学性质很稳定,有延展性,含杂质时硬而脆。
熔点1857C,沸点2672C,密度单晶为7.22克/厘米3,多晶为7.14克/厘米3;铬,原子序数24,原子量51.9961。
铬的名称来自希腊文Chroma,意为颜色。
因为这种元素以多种不同颜色的化合物存在,故被称为“多彩的元素”。
可用于制不锈钢,汽车零件,工具,磁带和录像带等。
铬镀在金属上可以防锈,也叫可多米,坚固美观。
红、绿宝石的色彩也来自于铬。
作为现代科技中最重要的金属,以不同百分比熔合的铬镍钢千变万化,种类繁多,令人难以置信。
谷歌的开发人员称,虽然网络的发展日新月异,但作为网络平台的浏览器,却没有跟上网络发展的步伐。
谷歌倾心打造的免费浏览器就是希望能跟随着网络的发展而不断升级换代,完美的切合网络时代的潮流。
据了解,谷歌员工每天使用的最多的应用程序就是浏览器,通过浏览器,查看新闻资讯,观看视频聊天,玩网络游戏。