WebKit04-WebKit内核发展以及介绍

721 阅读2分钟

「这是我参与2022首次更文挑战的第16天,活动详情查看:2022首次更文挑战」。

WebKit介绍

WebKit项目来源于开元项目KHTML

1998年苹果公司参与了由KDE开源社区发布的KHTML项目,但是很快苹果公司发现KHTML的开发者们不喜欢接受很多苹果工程师们提交的代码,因为每次提交的代码都很庞大且没有合适的文档以及注释来描述,基于KHTML苹果公司很快创建了自己的心得项目WebKit。

WebKit有很多的移植,历史总是惊人的相似,2013年,Google宣布了从WebKit赋值出来并独立运行的心框,Blink

WebKit项目结构

当我们讲述WebKit的时候,分为两个含义,广义WebKit和狭义WebKit

广义WebKit指WebKit项目

我们来看看一个完整的WebKit项目的结构

image.png

WebKit项目自开源起就十分的结构清晰、易于维护,收到了广大浏览器群体以及Web平台厂商们的喜爱,由于需求不同,操作系统的开发者需要WebKit设计和定义一套灵活的框架结构,不同的厂商们可以基于这套框架结构,完成自身所需要的依赖模块的实现,我们也称之为WebKit移植(Port)。

由于WebKit这种简单灵活和便于引入新移植的特性,使其迅速成为最受欢迎的 渲染引擎。

WebKit和WebKit2

这部分WebKit指的是接口部分的WebKit

WebKit2是一套支持新架构的全新绑定层和借口层。在chromium项目中,为了网页浏览器的安全性和稳定性原因引入了跨进程的架构。

image.png

可以看出,至少有两部分进程,UI进程和Web进程

Blink

WebKit有很多移植,每个移植的实现也都各不相同,每个移植的各自对HTML的规范支持也不太相同,尽管都是WebKit,但是对于兼容性来说依然有很大的挑战。并且WebKit也在分裂,下面将会介绍Chromium的新内核。

google独立出来的WebKit项目叫做Blink,这个项目的出现是由于Google希望在Blink中加入很多的新技术,比如

1、跨进程ifram,为ifram创建一个独立的沙箱进程

2、重新整理WebKit关于网络反面的架构和接口

3、还有一个大胆的想法就是将DOM树引入JavaScript引擎。从而带来性能极大提升。

4、针对各技术的性能优化,包括但不限于图形、Javascript引擎、内存使用、编译的二进制文件大小等。

ending,相关浏览器内核的发展历程就介绍到此,欢迎各位大佬评论区指导~~