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

類別: IT

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專案聚焦於在虛擬和擴增實境空間中應對新的挑戰。

Mozilla 對於 Servo engine 常見問題的回答原文請看這裡