Servo是一個由Mozilla開發的實驗性網頁瀏覽器排版引擎,該專案旨在創造一個大規模平行計算的環境,其中許多組件(如算繪、佈局、HTML解析、圖像解碼等)都是並行[4][5]。並且利用GPU加速來快速和流暢地渲染網頁[6][7]。此專案與Rust程式語言有共生的關係。

Servo
Servo頁面渲染效果
Servo頁面渲染效果
原作者Mozilla公司
開發者Linux基金會
目前版本
  • 0.22.0(2019年12月19日;穩定版本)[1]
編輯維基數據連結
原始碼庫 編輯維基數據連結
程式語言Rust
作業系統跨平台
類型排版引擎
許可協定MPL 2.0[2][3]
網站servo.org/ 編輯維基數據

Servo使用的兩個重要組件基於Mozilla現有的C++代碼。JavaScript支援由SpiderMonkey提供,2D圖形庫Azure英語Mozilla Azure用於與OpenGLDirect3D互動。[8]

發展

編輯
 
Mozilla Research專案圖表包含Servo

Servo發展始於2012年。2012年2月8日第一次提交沒有包含任何原始碼[9]。2012年3月27日第一個基本代碼提交[10]

2013年4月3日,Mozilla宣佈和三星合作開發Servo[11][12]。三星的主要貢獻是將Servo移植到AndroidARM處理器[13]。一位三星開發者還嘗試在Servo中重新實現Chromium嵌入式框架API[14],但最終未能成功,該代碼最終被移除[15]

2014年11月,Servo在某些基準測試中的速度明顯快於Gecko和其他排版引擎[16][17],並成功通過了Acid2測試。它具有諸如並行排版演算法以及在Rust中實現的自己的CSS3和HTML5解析器[18][19]。Servo利用GPU加速技術更快速和流暢地呈現網頁[20][21]

2016年6月30日,Mac和Linux的預覽版可供下載[22]。2017年4月13日,構建版可用於Windows[23]

2017年,隨着Firefox 54的發佈,Mozilla將Servo CSS樣式引擎整合到了其Gecko瀏覽器引擎[24]

2020年8月,受到嚴重特殊傳染性肺炎疫情影響,由於缺乏資金和組織重組,Mozilla裁撤了大部分Servo開發團隊[25]。2020年11月17日起,Servo由Linux基金會接管[26][27]

參考資料

編輯
  1. ^ selectors-v0.22.0. 2019年12月19日 [2020年2月17日]. 
  2. ^ Mozilla Foundation End-User Licensing Agreements. [2014-12-15]. (原始內容存檔於2014-10-21). 
  3. ^ Mozilla Licensing Policies. mozilla.org. [2013-03-26]. (原始內容存檔於2013-07-15). 
  4. ^ Moffitt, Jack. Another Big Milestone for Servo—Acid2. 17 April 2014 [26 November 2015]. 
  5. ^ Servo Continues Pushing Forward. servo.org. 1 May 2015 [26 November 2015]. 
  6. ^ Bergstrom, Lars. Mozilla's Project Quantum and Servo. mozilla.dev.servo - Google Groups. [9 November 2016]. 
  7. ^ Clark, Lin. The whole web at maximum FPS: How WebRender gets rid of jank. Mozilla Hacks – the Web developer blog. 10 October 2017 [22 October 2017]. 
  8. ^ Willis, Nathan. Parallel page rendering with Mozilla Servo. LWN.net. 17 June 2015 [27 June 2015]. (原始內容存檔於2016-04-06). 
  9. ^ initial add · servo/servo@ce30d45. [2017-11-09]. (原始內容存檔於2019-02-17). 
  10. ^ Add some stubs and a makefile · servo/servo@783455f. [2017-11-09]. (原始內容存檔於2019-02-17). 
  11. ^ Mozilla and Samsung Collaborate on Next Generation Web Browser Engine. [2017-11-09]. (原始內容存檔於2017-10-23). 
  12. ^ Mozilla, Samsung team up on 'Servo' next-gen browser engine. [2017-11-09]. (原始內容存檔於2017-11-09). 
  13. ^ Samsung teams up with Mozilla to build browser engine for multicore machines. Ars Technica. 3 April 2013 [24 October 2014]. 
  14. ^ Blumenkrantz, Mike; Bergstrom, Lars. Servo: The Embeddable Browser Engine - Samsung Open Source Group Blog. Samsung Open Source Group Blog. 13 May 2015 [28 October 2016]. (原始內容存檔於2015-05-13) (美國英語). 
  15. ^ Dropping CEF support?, [7 November 2018] (美國英語) 
  16. ^ Larabel, Michael. Mozilla's Servo Engine Is Crazy Fast Compared To Gecko. Phoronix. [10 May 2016]. (原始內容存檔於2017-10-24). 
  17. ^ Mozilla's Servo Is Whooping The Other Browsers In Performance. Phoronix. [10 May 2016]. (原始內容存檔於2017-09-30). 
  18. ^ Moffitt, Jack. Another Big Milestone for Servo—Acid2. April 17, 2014 [2015-11-26]. (原始內容存檔於2016-05-17). 
  19. ^ Servo Continues Pushing Forward. May 1, 2015 [2015-11-26]. (原始內容存檔於2016-04-07). 
  20. ^ Bergstrom, Lars. Mozilla's Project Quantum and Servo. mozilla.dev.servo - Google Groups. [9 November 2016]. (原始內容存檔於2019-03-14). 
  21. ^ Clark, Lin. The whole web at maximum FPS: How WebRender gets rid of jank. Mozilla Hacks – the Web developer blog. 10 October 2017 [22 October 2017]. (原始內容存檔於2017-11-04). 
  22. ^ Servo Nightly Builds Available. Servo Blog. 30 June 2016 [2017-11-09]. (原始內容存檔於2017-10-11). 
  23. ^ Windows nightly builds now available. Servo Blog. 13 April 2017 [2017-11-09]. (原始內容存檔於2017-12-26). 
  24. ^ Servo engines written in Rust deliver memory safety and multithreading. Mozilla Research. [2020-07-05]. (原始內容存檔於2022-01-12) (美國英語). 
  25. ^ Mozilla lays off 250 employees while it refocuses on commercial products. 2020-08-11 [2020-08-17]. (原始內容存檔於2022-03-18). 
  26. ^ Servo’s new home. blog.servo.org. 2020-11-17 [2021-03-16]. (原始內容存檔於2021-05-20). 
  27. ^ WinterIsComing (編). Servo 成为 Linux 基金会托管项目. Solidot. 2020-11-18 [2021-01-10]. (原始內容存檔於2022-04-26). 

外部連結

編輯

參見

編輯