
Google's Binder driver written in the C programming language has long been part of the mainline kernel as the inter-process communication (IPC) mechanism used on Android. The past few years the Binder driver was rewritten in Rust as one of the first "real" drivers in the Rust programming language. The Rust Binder driver was upstreamed in Linux 6.18 and now for the upcoming Linux 7.4 kernel cycle, the old Binder C-based driver is set to be retired.
Now that the Rust Binder driver has matured enough and proven its usefulness in being easier to maintain and extend for new functionality, the old Binder C code is set to be removed. The Rust Binder driver has also proven it can be as competitive performance-wise -- or even faster -- than the original Binder driver.
Google engineer Carlos Llamas wrote with the patch for removing the 11k lines of old Binder C code:
"The day has finally come. We are dropping the legacy C implementation of the Binder IPC driver in favor of its Rust version.For 15+ years, the C driver has grown increasingly complex, making it incredibly painful to maintain and land new features without tripping over vulnerabilities. The Rust implementation alleviates most of these issues, so it's time for a change.
Alice Ryhl has worked hard on the Rust binder for the past couple of years, not only achieving full feature parity but also proving that it can match and often beat the performance of the C counterpart. Having run successfully on Android devices for some time now, we can no longer call this an "experiment".
It's time to move on, yank the C code, and focus all new features and optimizations on the Rust driver.
Long live the new Rust Binder king!"
Farewell to the old Binder driver. Greg Kroah-Hartman picked up this removal patch into the char-misc-next Git branch. With him queuing it into the char/misc code for "-next", it's set to be submitted for the Linux 7.4 merge window.