您这个概括非常精辟,准确地抓住了WebKit波澜壮阔的历史脉络与核心地位。它不仅仅是一个浏览器引擎的故事,更是一部互联网权力更迭、技术革命与商业博弈的史诗。
下面,我们就沿着您提出的“开源寄生 → 开源共主 → 分道扬镳”这一主线,进行详细的论述。
第一阶段:开源寄生 (2001-2005) —— 站在KHTML的肩膀上
这个阶段的主题是 “汲取”。
· 起点:KHTML与KJS
WebKit的源头并非苹果原创,而是来自KDE桌面环境的开源项目KHTML(负责渲染HTML)和KJS(负责执行JavaScript)。这是一个非常优秀但当时相对小众的引擎。
· 苹果的困境与选择
在2000年代初,苹果希望为Mac OS X开发一款全新的浏览器(即后来的Safari),以替代老旧的Internet Explorer for Mac。他们评估了当时的主流引擎(如IE和Mozilla的Gecko),认为它们要么受制于人,要么过于庞大、臃肿,不符合苹果对性能和新潮美学的追求。
于是,他们将目光投向了轻量、快速且符合Web标准的KHTML/KJS。
· “寄生”的争议
苹果“fork”(分叉)了KHTML/KJS的代码,开始了自己的开发。起初,苹果的开发是相对封闭的:
· 代码差异大:苹果对代码进行了大量修改以适应自家系统,导致他们很难将庞大的补丁包回馈给KDE社区。
· 沟通不畅:KDE开发者发现,突然出现了一个“富亲戚”,在用一个他们不熟悉的分支快速推进,但对方提供的代码和文档却难以理解和合并。
这引发了KDE社区的不满,他们认为苹果只是在“索取”而没有充分“回馈”,是一种“开源寄生”行为。
· 关键的转变:开源与共建
在社区的批评和自身的战略考量下,苹果做出了改变:
-
成立WebKit开源项目:2005年6月,苹果将KHTML的衍生版本正式命名为WebKit,并将其完全开源。
-
建立开放的开发流程:设立了公开的代码仓库、邮件列表和Bug追踪系统,欢迎社区贡献。
这一举动,标志着WebKit从“寄生”开始转向“共生”,为下一阶段的崛起奠定了基础。
第二阶段:开源共主 (2005-2013) —— 定义移动互联网时代
这个阶段的主题是 “统治”。
· 为iPhone奠定基石
这是WebKit历史上最浓墨重彩的一笔。2007年,乔布斯发布初代iPhone时,做出了一个划时代的决定:iPhone没有搭载臃肿的桌面插件生态(如Flash),而是将Safari with WebKit作为移动互联网的核心入口。
· 轻量与高效:源自KHTML的轻量级基因,使其在当时的移动设备有限的硬件资源上运行流畅。
· 先进的Web标准支持:WebKit对CSS、HTML5等现代Web技术的快速跟进,使得网页在手机上也能获得接近原生应用的体验。
可以说,没有WebKit,就没有iPhone革命性的移动浏览体验。
· 催生并统一了Android
谷歌在开发Android时,同样面临选择浏览器引擎的问题。为了避免重复造轮子和确保移动网页的兼容性,谷歌在Android 1.5中也选择了WebKit作为其默认渲染引擎。
· 形成事实标准:到2010年左右,世界上所有的iOS设备和使用原生浏览器的Android设备,其浏览器内核都是WebKit。这彻底打破了IE在桌面端的垄断格局,并建立了一个统一的、基于标准的移动Web平台。开发者只需为WebKit优化网页,就能覆盖绝大多数移动用户。
· 生态的繁荣
Nokia、BlackBerry等移动厂商也纷纷拥抱WebKit。它不再是苹果的独门武器,而成为了一个由苹果主导、多方共同维护的 “开源共主” ,是移动互联网时代的底层基石之一。
第三阶段:分道扬镳 (2013至今) —— Blink的诞生与新的格局
这个阶段的主题是 “分裂”与“进化”。
· 谷歌的野心与技术分歧
随着Chrome的飞速发展,谷歌对WebKit的贡献越来越大,但其宏伟的蓝图也与苹果产生了根本性的分歧。
-
多进程架构:Chrome强调的“每个标签页一个进程”的沙盒架构,与WebKit的设计哲学存在冲突。为了在WebKit上实现这一点,谷歌的代码变得非常复杂和臃肿。
-
开发效率:任何对WebKit核心的修改,都需要与苹果及其他贡献者进行漫长的讨论和协调,这拖慢了Chrome的迭代速度。
-
战略自主:谷歌不希望其核心业务(浏览器与搜索)的命脉,受制于一个由竞争对手(苹果)主导的开源项目。
· Blink的诞生
2013年4月,谷歌宣布从WebKit“fork”,创建新的渲染引擎Blink。
· 本质上,Blink是剔除了WebKit中与苹果macOS/iOS平台强绑定组件后的一个“干净”的分支。
· 谷歌的目标是简化架构、移除冗余代码、并更快速地推进Web平台的新特性。
· “分道扬镳”后的世界
-
对WebKit的影响:分裂对WebKit社区是一次打击,但也是一种 “减负” 。苹果可以更专注于为自家生态系统优化Safari,而无需再考虑谷歌的庞大需求。
-
Blink的崛起:凭借Chrome的巨大市场份额和谷歌的强力推动,Blink迅速成为事实上的新标准。Opera、Microsoft Edge等浏览器也相继投入Blink阵营。如今您提到的占据市场70%份额,正是Blink的天下。
-
血脉的传承:您说“Chrome内核流淌的依然是WebKit的血”,这是完全正确的。Blink继承了WebKit(以及更早的KHTML)绝大部分的代码和架构思想。它不是一个从零开始的新引擎,而是WebKit的一次 “激进演化”。
总结
WebKit的历史,是一部典型的“屠龙少年”的故事:
· 它曾是挑战者:作为从KHTML汲取营养的“寄生者”,它勇敢地向IE的垄断地位发起了冲击。
· 它成为了新王:凭借苹果在iPhone上的远见卓识,它一跃成为移动互联网的“开源共主”,定义了整整一个时代的网络体验。
· 它催生了新的巨兽:当其内部孕育的野心(谷歌/Blink)过于庞大时,分裂成为必然。这次“分道扬镳”塑造了今天Chrome、Edge等Blink系浏览器主导,Safari凭借WebKit坚守一方的浏览器市场新格局。
WebKit不仅杀死了一个旧时代(IE),更亲手开启并塑造了一个新时代(移动互联网),甚至其血脉(Blink)仍在定义着我们今天的网络。它的历史,就是半部现代互联网浏览器的发展史。