05.18 Mozilla 對於 Servo engine 常見問題的回答

Servo是什麼?

2012年,Mozilla啟動了Servo項目,這是一個社區傑作,可利用多核硬件提高速度、穩定性及響應速度的瀏覽器引擎。Servo與WebKit相當,WebKit是一款開源的瀏覽器引擎,它是Apple Safari瀏覽器的基礎。(其他瀏覽器引擎包括Blink,EdgeHTML和Gecko)。不同之處在於,Servo採用Rust編程語言編寫,為瀏覽器內部帶來閃電般的性能和內存安全性。Rust代碼可以大幅減少影響瀏覽器引擎的關鍵錯誤數量。Servo採用模塊化架構,目前可運行在Linux、macOS、Windows和Android操作系統上。

Servo 將會提供什麼組件?

類似於 WebKit,Servo 項目不是一個完整的瀏覽器。它是一個實驗性質的項目,它交付的組件可以被加載,顯示在web站點和應用上。

  • 一個併發的 CSS 風格引擎可以加速頁面的加載,提升穩定性

  • 一個被叫做WebRender的繪製引擎,會將整個繪製工作全部交給GPU,來確保 高幀率,並釋放 CPU 去做其他的工作。

開發人員可以繼承第三方的 web 友好型組件,包含產品,應用,用戶界面等,到他們自己的工程中。

Servo如何工作?

Servo充分利用Rust的並行計算,使當前的PC、平板電腦和手機具備多進程、多線程和GPU硬件加速。Servo允許瀏覽器在主進程中運行高優先級任務,這就意味著不穩定內容或運行緩慢的代碼不太可能破壞瀏覽器的關鍵功能。

由於Servo是使用Rust編寫的,所以默認情況下認為內存安全的。Rust的Ownership模塊有助於編譯器確保內存安全,同時也讓編寫並行程序更加安全和簡單。通過Rust,開發人員安全的重用代碼以縮短開發週期。Servo的進入門檻較低,它允許新手在不進入審查流程即可對代碼庫做出有意義的修改。Rust對一些常規漏洞(如:User After Free)進行了規避,以此減少黑客對引用的可攻擊範圍。最後,Rust的內存安全可一個極大的減少同步審查和QA的工作時間。

為什麼它是有意義的?

Servo速度非常快。其許多部分比用C++編寫的現有瀏覽器組件快得多。這些在性能和可靠性的提高意味著Servo引擎可以運行具有空餘頭部空間的現代應用程序,並可擴展到虛擬現實(VR)耳機等新硬件。

與傳統瀏覽器引擎相比,Servo更簡單,並且更易於使用。這使它成為新項目和實驗的理想根基。Servo承諾為Web引擎開闢新的用例,並允許用Web技術構建更多的東西。

它取代或改變了什麼?

Servo為開發人員提供了另一種用Rust編寫的瀏覽器引擎的原型。像WebKit一樣,Servo可以被輕鬆嵌入並用於多種用例。

Servo支持什麼樣的web標準?

Servo引擎已經支持了很多web標準,像HTML、CSS、JavaScript, WebSockets, WebVR 和 WebGL。然而,我們仍然想兼容所有的平臺。相信不久後,我們就會支持其他的web標準,比如WebRTC,WebAudio,Gamepad, 或者其他的。

誰正在使用Servo?

Mozilla在 Firefox Quantum 瀏覽器的57發佈版本上使用了Servo CSS Style引擎。Servo項目聚焦於在虛擬和增強現實空間中應對新的挑戰。


分享到:


相關文章: