Free Knowledge Database

Computer Knowledge Community

September 1, 2014 IT News

Servo, product of cooperation between Mozilla and Samsung

samsung

Servo is a device jointly developed by Mozilla and Samsung for ARM device and Android web browser engine, using Rust language. Servo’s target is Webkit. Apple and Google are both using the Webkit engine in their browser.

Servo is an experimental web browser layout engine (like Gecko), jointly developed by the Mozilla and Samsung. Servo’s vision is to make the most of the “core” functions of multicore processors, rather than let it become a gimmick of hardware vendors. This powerful combination with Samsung is a hope that Servo and Rust can finally achieve fruition on the Android platform and ARM devices.

A Web browser’s aim is to help establishing a friendship bridge between the user and program. Users want the browser to be responsive, and thus the browser’s layout and rendering algorithms typically use the underlying native code to achieve it. Meanwhile, through DOM, we can use JavaScript to reconstruct the entire HTML document. Therefore, when using the browser to render the page, in essence, is the use of a multi-language data structure, making the low-level native code and high-level language such as JavaScript can have a great communication. In Servo project, we will make this art of communication better, we have a new DOM memory management method, and also use some Rust features such as: Auto-generating field traversals, Lifetime checking, custom static analysis plugins.

A DOM will be immediately destroyed if it’s useless, but this often leads to use-after-free vulnerability. To solve this problem, many browsers are using reference counting which is garbage collection to keep track of the different underlying DOM object pointer. When obtaining a DOM object with the JS (eg getElementById), the browser will generate a reflective object in the JVM to point to an underlying object. If the JS garbage collector determines that a reflective object is no longer be used, it will destroy the object and the reference count will be reduced accordingly, when the count is 0, the garbage collector will release citations value of 0 share memory.

Sponsored content:

Leave a comment