软件内核的诞生背景是基于开源思想的。如果没有开源思想的土壤基础,那么就不会长出“内核”的果子。如果没有开源思想,“软件内核”这个东西顶多是公司内部的Base代码库而言。

浏览器大战之后,网景公司公布旗下所有软件的后续版本皆为免费,并成立了Mozilla基金会,中文名称摩斯拉,其下浏览器为Firefox,代码全部开源和免费,其内核是Gecko

Gecko主要是Windows平台下的产物,而Unix/Linux阵营下则为KHTML内核。

苹果属于操作系统的另外一个巨头,自然不甘示弱,自然需要开发自己的浏览器,所以在比较了Firefox的Gecko引擎和KHTML引擎后,苹果选择了后者,因为KHTML拥有更清晰的架构,而且比Gecko更小巧。随后,苹果工程师在2001年正式从KHTML拉出一个新分支,开始了WebKit的研发。

开始时候,苹果和KHTML的关系还是不错的。苹果将KHTML发扬光大,在2003年推出了装备WebKit引擎的浏览器Safari。但是,随着时间的推进,WebKit和KHTML之间交换代码变得越来越困难。苹果会间隔很长时间之后,提交一大批更改,而且没有注释,而且很多功能可能只开发了一半,是个烂尾工程。对于KHTML维护者而言,将这些更改整合回KHTML是相当困难的。此外,苹果要求KHTML维护者阅览苹果代码之前必须签署保密条款,KHTML维护者也很难接受这一点。在2005年,KHTML维护者开始公开攻击苹果的做法,并称两方的合作关系已经彻底瓦解了。

迫于舆论压力,苹果做出了一系列的让步。在2005年,苹果宣布将WebKit完全开源,之前仅有从KHTML直接搬来的WebCore及JavaScriptCore是开源的,现在完全开源。KHTML维护者和苹果的关系也得到了一些改善,有一些KHTML维护者开始为WebKit提交更改,苹果的团队也复原了很多为苹果特定的修正,并且实现了平台层的抽象化,使引擎的核心代码可以在其他平台上运作。但是KHTML维护者没有忘记苹果的背叛,他们没有完全加入WebKit的开发,而是并行支持KHTML和WebKit。

后来,Google加入WebKit的开发队列。Chrome浏览器使用WebKit引擎是Android团队的建议,而Chrome主要用的其实还是从KHTML那里来的WebCore,它不太用WebCore之外苹果开发的东西,而是使用自己开发的多进程浏览器架构等。

由于Google资源和人力雄厚,大约50%的WebKit更改来自于Google的开发者,剩下的一半大多数来自于苹果,其余来自于第三方开发者,比如KHTML维护者。

虽然Google的开发者提交大部分的WebKit更改,但是WebKit的最终决策权还是苹果的。据一些第三方的WebKit开发者透露,苹果和Google的开发者在交流时没有一般开源开发者的那种相互支持,反而更像两头相互打量的狮子,气氛比较紧张。

标签: none

添加新评论