Engine “built for tomorrow’s massively multicore architecture”
As well as last week's major changes to the browser engine landscape, Chromium and Opera have forked WebKit to create the new Blink rendering engine with its various offshoots.
However, Mozilla also made an announcement that pointed towards further possible future upheaval. Servo, a collaboration with Samsung, would be a browser built from the ground up for modern hardware, enabling the company to rethink old assumptions along the way.
.net spoke to Mozilla to find out more about the project and how it will take advantage of modern hardware.
.net: What’s Servo in a nutshell?
Mozilla: Servo is a research project to develop a new web browser engine. Our goal is to create an architecture that takes advantage of parallelism at many levels, both on the CPU and GPU, while eliminating common sources of bugs and security vulnerabilities associated with incorrect memory management and data races. With Servo, we aim to take the kinds of fluid, richer multimedia experiences expected in today’s smartphone and tablet applications to the next level on tomorrow’s web and tomorrow’s hardware.
.net: How do you foresee Servo taking advantage of modern hardware in a way that existing rendering engines perhaps do not?
Mozilla: Servo is written in Rust, a new, safe systems language developed by Mozilla along with a growing community of enthusiasts. It’s focused on speed, safety and concurrency, and is an attempt to create a modern language that can replace C++ for many uses while being less prone to the types of errors that lead to crashes and security vulnerabilities. With Servo being designed from the ground up using Rust as its main implementation language, this means it will offer a faster, more secure experience for people browsing the web.
Rust, currently in v0.6, has been in development for several years and is rapidly approaching stability. It is intended to fill many of the same niches that C++ has over the past decades, with efficient high-level, multi-paradigm abstractions, and offers precise control over hardware resources. But beyond that, it is 'safe by default', preventing entire classes of memory management errors that lead to crashes and security vulnerabilities. Rust also features lightweight concurrency primitives that make it easy for programmers to leverage the power of the many CPU cores available on current and future computing platforms.
.net: What does Servo mean for the future of Gecko? How will Servo be implemented?
Mozilla: Both Servo and Rust are still early-stage projects and there’s a lot to do yet. It's too early to say how they will be adopted going forward. No decision has been made as to whether Servo will replace Gecko. Gecko remains the 'productised' web engine for Mozilla.