Google announced Thursday that it is funding a project to increase the security of Linux by writing parts of the operating system’s kernel in the Rust programming language, a modernization effort that could make the internet and smartphones more secure. .
If the project is successful, it will be possible to add new elements written in Rust to the core of Linux, called the kernel. Such a shift would mark a major technological and cultural shift for an open source software project that has become the foundation for Google’s Android and Chrome operating systems as well as large swathes of the internet.
Miguel Ojeda, who wrote software used by the Large Hadron Collider particle accelerator and worked on programming language security, is hired to write software in Rust for the Linux kernel. Google is paying for the contract, which is being extended through Internet Security Research Group, a nonprofit that has also made it easier to secure website communications through the Let’s Encrypt effort.
Adding Rust modules to the Linux kernel would improve security by shutting down some avenues that hackers can use to attack phones, computers, or servers. Since its launch in 1991, Linux has been written only in the powerful but old C programming language. The language was developed in 1972 and is more vulnerable to hacks than contemporary programming languages.
Better security for Linux is good news for everyone except hackers. In addition to the Android and Chrome operating systems, Google services like YouTube and Gmail all rely on servers running Linux. It also powers Amazon and Facebook and is part of cloud computing services.
It is not clear whether Linux kernel leaders will adapt to Rust. Linus Torvalds, the founder of Linux, said he was open to change if the champions of Rust for Linux prove their worth. Ojeda proposed 13 changes needed to allow Linux Rust modules to boot.
Google has already taken some initial steps to make it possible to use Rust for Linux Android. Getting membership at the highest levels of the Linux kernel project means that many other software projects could benefit as well.
Google thanks the programmers in the Linux community who started the Rust for Linux project. “The community had already done and continues to do a great job of adding Rust support to the Linux kernel build system,” Google said in a blog post.
Rust, which was developed by Firefox maker Mozilla and is now managed by the independent Rust Foundation, makes writing software to memory more secure. Hackers can exploit memory problems, hiding additional malicious code in out of bounds memory areas. Rust checks for these and other issues when programmers build their software. And it is the most popular programming language for five years in the annual Stack Overflow developer survey.
“Rust represents the best alternative to C and C ++ currently available,” concluded the Microsoft security team in 2019. The team said Rust would have avoided the memory issues involved in 70% of its significant security issues. . And because Rust’s checks happen during software build, security doesn’t come at the cost of performance while the software is running.
The goal of the Linux on Rust project is not to replace all of the C code in Linux but rather to improve selective and new parts.
“For the foreseeable future, we plan to focus on certain security-critical components and drivers,” said Josh Aas, who leads the ISRG’s Prossimo project to move critical Internet software to secure software in memory. Drivers are operating system modules that control specific peripherals such as printers, network adapters, and graphics chips.
Google isn’t just betting on Linux and Rust. It has its own secure language, Go, and a new operating system called Fuchsia that it has started using in its Nest Hub smart display.
“Google has a variety of other investments in languages, tools and platforms,” a company spokesperson said. “Having multiple solutions to related but not necessarily overlapping problems allows for cross-pollination of good ideas to reuse. “