概述

主流浏览器内核

  • trident: -ms-
  • webkit: -webkit-
  • gecko: -moz-
  • presto: -o-

多进程浏览器按功能分为:

  • 浏览器进程
  • 渲染进程
  • GPU进程
  • 网络进程
  • 插件进程
进程间数据不共享、不干扰,通过IPC机制进行进程间通讯。
线程是进程的实例,线程崩溃会导致进程崩溃。

主流浏览器

  • 判定标准:自主研发内核,占有一定市场份额
  • 四大内核:
  1. Trident内核,也成IE内核(-ms-)
  2. Webkit内核(-webkit-)
  3. Gecko内核(-moz-)
  4. Presto内核(-o-)
  • 五大浏览器:
  1. IE浏览器-Trident内核
  2. Safari浏览器-webkit内核
  3. Firefox浏览器-Gecko内核
  4. Opera浏览器-最初Presto,之后Webkit,现在Blink内核
  5. Chrome浏览器-以前webkit,现在Blink内核

chrome多进程架构

一个页面打开至少会开启四个进程,浏览器进程、渲染进程、GPU进程、网络进程
每个站点会独占一个渲染进程
  • 同一站点
协议/根域名相同为同一站点
例如:
https://xxx.segmentfault.com
https://www.segmentfault.com
https://www.segmentfault.com:8080
协议都是https;根域名都是segmentfault.com
  • 同源
协议/域名/端口相同为同源

进程按功能划分

  • 浏览器进程
主要负责界面显示、用户交互、子进程管理,同时提供存储等功能。
  • 渲染进程
核心任务将HTML,CSS,JavaScript转换为用户可与之交互的网页。
排版Blink和JS引擎V8都运行在该进程中;默认情况,Chorme会为每个TAB标签创建一个渲染进程。
处于安全考虑,渲染进程都运行在沙箱模式下。
  • GPU进程
GPU初衷是为了实现3D CSS效果.
随着发展,Chrome的UI界面都采用GPU绘制。
  • 网路进程
主要负责页面网络资源加载。
  • 插件进程
主要负责插件运行;因插件容易崩溃,所以通过插件进程隔离。

程序、进程、线程

  • 程序
程序是指令的集合,是进程运行的静态描述文件。
(由代码编译成二进制文件,如:windows中的.exe文件,它只占用磁盘空间。)
  • 进程
进程就是一个程序运行的实例。(占用内存,CPU)
启动程序时,操作系统会把该程序创建一块内存,用来存放代码,运行其中的数据,执行一个主线程,这个运行环境称为进程。
一个程序可以由多个进程组成,每个进程的数据都是独立的,进程之间通过IPC进行通信
  • 线程
轻量级进程。线程是最小的执行单位。
CPU分配时间轮片的对象。
线程之间共享进程资源

参考资料


JTR354
21 声望1 粉丝

读书点亮生活