【24h】

Engineering the Servo Web Browser Engine Using Rust

机译:使用Rust设计伺服Web浏览器引擎

获取原文
获取原文并翻译 | 示例
获取外文期刊封面目录资料

摘要

All modern web browsers - Internet Explorer, Firefox, Chrome, Opera, and Safari - have a core rendering engine written in C++. This language choice was made because it affords the systems programmer complete control of the underlying hardware features and memory in use, and it provides a transparent compilation model. Unfortunately, this language is complex (especially to new contributors!), challenging to write correct parallel code in, and highly susceptible to memory safety issues that potentially lead to security holes. Servo is a project started at Mozilla Research to build a new web browser engine that preserves the capabilities of these other browser engines but also both takes advantage of the recent trends in parallel hardware and is more memory-safe. We use a new language, Rust, that provides us a similar level of control of the underlying system to C++ but which statically prevents many memory safety issues and provides direct support for parallelism and concurrency. In this paper, we show how a language with an advanced type system can address many of the most common security issues and software engineering challenges in other browser engines, while still producing code that has the same performance and memory profile. This language is also quite accessible to new open source contributors and employees, even those without a background in C++ or systems programming. We also outline several pitfalls encountered along the way and describe some potential areas for future improvement.
机译:所有现代网络浏览器-Internet Explorer,Firefox,Chrome,Opera和Safari-都具有用C ++编写的核心渲染引擎。之所以选择这种语言,是因为它为系统程序员提供了对所使用的基础硬件功能和内存的完全控制,并且提供了透明的编译模型。不幸的是,这种语言很复杂(尤其是对于新的贡献者!),很难编写正确的并行代码,并且极易受到可能导致安全漏洞的内存安全问题的影响。 Servo是Mozilla Research发起的一个项目,目的是构建一个新的Web浏览器引擎,该引擎既可以保留其他浏览器引擎的功能,又可以利用并行硬件的最新趋势,并且具有更高的内存安全性。我们使用一种新的语言Rust,它为我们提供了与C ++类似的底层系统控制级别,但是它静态地防止了许多内存安全问题,并为并行性和并发性提供了直接支持。在本文中,我们展示了具有高级类型系统的语言如何能够解决其他浏览器引擎中的许多最常见的安全性问题和软件工程挑战,同时仍能产生具有相同性能和内存配置文件的代码。新的开源贡献者和雇员,甚至那些没有C ++或系统编程背景的人,也很容易使用这种语言。我们还概述了在此过程中遇到的一些陷阱,并描述了未来改进的一些潜在领域。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号