现代浏览器内部工作原理(附详细流程图)

发表于:2019-3-12 16:31

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:caihaihong    来源:掘金

  现代浏览器内部工作原理
  汇总图




  计算机的核心CPU和GPU
  CPU:Central Processing Unit(中央处理器),中心处理器是计算机的大脑,每个CPU核心会逐一执行不同任务现在很多计算机都是多芯片,多内核的。
  GPU:Graphics Processing Unit(图形处理器),GPU擅长处理跨内核的简单任务,是为了解决图形而开发的。在图形环境中,“使用GPU支持”和“使用CPU”都与快速渲染与顺滑渲染有关。
  许多带扳手的GPU内核说明它们只能执行处理有限任务
  当启动电脑时候,是CPU和GPU为应用供能。通常情况下,应用是通过操作系统提供的机制在CPU和GPU上运行。
  三层计算机系结构:底部是机器硬件,中间是操作系统,顶层是应用程序。
  在进程和线程上执行程序 进程(process)和线程(thread)
  进程作为边界框,线程为里面抽象的鱼在游动
  进程可以被描述为一个应用的执行程序,线程存在于进程并执行任意部分。
  启动应用时,会创建一个或者多个进程来帮助应用工作,操作系统为进程提供了一块可以使用的“内存”,应用的所有状态都保存在该私有内存空间中,关闭应用,进程会关闭,操作系统释放内存。
  







进程可以请求操作系统的另一个进程来执行不同的任务。此时,会分配不同的内存给新进程,进程之间可以通过(IPC:Inter Process Communication)进行通讯。应用的某个工作进程失去响应,该进程就可以在不停止应用程序其他进程的情况下,重启。
  独立进程通过IPC通信示意图
  浏览器架构
  不同的浏览器可能是多进程或者单进程的。
  Chrome浏览器架构,使用多进程的架构
  浏览器顶层是浏览器进程(Browser process),与浏览器其他应用模块进行协调工作。
  Chrome浏览器各个进程的工作:
  Browser Process:
  地址栏,书签栏,前进后退按钮等信息
  不可见的一些操作,请求,文件访问等
  Rederer Process
  负责一个网页tab的的所有工作
  Plugin Process
  插件进程,处理一个网页用到的插件,例如Flash的插件
  GPU Process
  负责处理GPU相关的工作
  *还有其他进程,例如:扩展应用,应用进程
  不同进程指向浏览器 UI 的不同部分
  谷歌浏览器每一个站点(网页)都是独立的进程,这样可以保证即使网页崩溃了,其他网页也不会受到影响。浏览器有多个进程的好处就是安全性跟跟沙箱化。由于操作系统提供了限制进程权限的方法,浏览器就可以用沙箱保护某些进程。由于进程有自己的私有内存空间,所以每个进程都有公共基础设施的拷贝,这也意味着会占用更多的内存,当运行达到极限时候,Chrome对于同一站点的不同标签页,会使用同一进程。

        上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
  
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号