瀏覽器引擎歷史的一點兒回顧

http://qihome.org/qiliang/2018/08/19/a-smaill-review-of-browser-engine-history/

最近有關紅芯辦公瀏覽器的新聞比較火爆,可以參考搜狐:融資2.5億的紅芯宣稱自主創新遭打臉:只是谷歌瀏覽器換層皮一文。知乎羅志宇關於自主研發一款瀏覽器內核的難度到底有多大?一問的回答中提到了KHTML、WebKit、Blink和KDE、Qt以及Trolltech公司(現在的The Qt Company公司)的一些淵源。

 

我這裏大致按時間線介紹一下:

  • QtTrolltech公司的一個軟件產品,可以理解爲是一個工具包或者中間件,供其他開發人員開發應用程序用的。Trolltech是一個挪威公司,由Eirik Chambe-Eng和Haavard Nord創建於1994年。1995年5月20日發佈了Qt的0.90版,第一個公開發行的預覽版。

  • KDE是Linux上的一個桌面環境,由Matthias Ettrich在1996年創建,KDE中的應用程序是基於Qt的。這裏需要強調的是KDE是一個開源社區的成果,不能算作Trolltech公司的產品,或者Qt的一部分,雖然Trolltech公司中的很多員工都是KDE的核心開發人員甚至是領導者,甚至Trolltech公司直接僱一個或幾個員工,讓他們全職爲KDE項目做開發工作。(注:Matthias Ettrich,德國人,在1998年加入Trolltech,並在2004-2006年擔任Trolltech的VP Engineering。)

  • KDE是一個龐大的桌面環境,其中肯定有針對網頁的瀏覽器應用程序Konqueror,其中的引擎就叫做KHTML,它的前身叫做khtmlw或者the KDE HTML Widget,是Torben Weis和Martin Jones開發的。KHTML是在1998年11月4日出現的,是在khtmlw基礎上進行了一定修改,Waldo Bastian是其中之一。

  • 在1999年,KDE項目中有這樣的討論,“是繼續推進KHTML還是使用Mozzila”。從5月到8月,Lars Knoll根據W3C DOM標準重寫了KHTML,這樣在10月,又集成了Harri Porten寫的KJS。到2000年3月,Lars又和Antti Koivisto以及Dirk Mueller爲KHTML添加了CSS支持。這樣KHTML就成爲了繼IE之後第二個支持希伯來文阿拉伯文等從右向左的文字的網頁瀏覽器,甚至是在Mozilla之前。(注:Lars Knoll,德國人,當時正在完成他的博士學位,他是在2000年7月年加入Trolltech,並在2008年開始擔任Trolltech的VP of Engineering,現在仍是The Qt Company公司的CTO。Harri Porten,德國人,也是KDE貢獻者,Trolltech公司前僱員,2001年2月KDE社區的一篇訪談中中提到了他很快會被Trolltech僱傭,在2003年創建了froglogic公司。)

  • 2001年6月,Apple(蘋果)公司fork了KHTML和KJS,也就是WebKit項目,重命名爲WebKitCore和JavaScriptCore,以及後來基於WebKit的Safari瀏覽器。WebKit也是一個開源項目,除了KDE和Apple的開發人員,Google、Nokia、Bitstream、BlackBerry、Igalia以及很多其它公司也參與了開發。在2008年發佈的Qt 4.4中,包含了一個基於WebKit的QtWebKit組件。

  • 2013年,Google公司又fork了WebKit項目,也就是Blink,Blink是Chromium項目的一部分,還有Opera、Adobe、Intel、Samsung等公司參與。自2009年晚些時候開始,Google就是WebKit項目的最大貢獻者了。在2014年發佈的Qt 5.4中,包含了一個基於Chromium的QtWebEngine組件。

大致的歷史如上,但是在Wikipedia: KHTML中,提到了“Descendants of KHTML are used by some of the world’s most widely used browsers, among them Google Chrome, Safari and Opera.”,看來Opera和KHTML還是有些淵源的,但是在Wikipedia: Presto中卻沒有提及,其中的細節我就不清楚了,看來還得等Opera的內部人士進行解讀了。

關於開源項目、軟件、科技、自主創新這類話題,我自己的一點看法,現在的中國(或者專指中國大陸,也許還可以包括港澳臺,甚至全球的華人),如果有人把Google、Microsoft、Apple這些大公司連帶所有的源代碼都交到中國(公司或者人員)手中,中國或者中國人能否基於現有以及歷史代碼,在正常的迭代週期內完成新的版本,並且開發出適量的新特性呢?開源項目的自主創新,也是類似的,開源開源,代碼都在那裏,怎麼才能自主創新並且領導這些開源項目呢?那就是參與進去,做貢獻,做最大的新特性,做最多的貢獻,久而久之,像Google公司fork了WebKit項目,形成Blink/Chromium項目的故事就有可能了。

發佈了97 篇原創文章 · 獲贊 47 · 訪問量 54萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章