Google's "Painful To Maintain" Binder C Linux Driver Being Removed In Favor Of Rust
Google의 ‘유지보수가 고통스러운’ Binder C Linux 드라이버, Rust로 대체되며 제거됩니다
15년 넘게 유지된 Linux Binder IPC 드라이버의 기존 C 구현이 Rust 구현으로 대체됩니다. Rust Binder는 기능 동등성을 확보했고 Android 기기에서 검증됐으며, 성능도 C 구현과 대등하거나 더 빠른 것으로 평가됐습니다.
- 주제
AI 요약
Google이 Linux의 기존 Binder C 드라이버를 제거하고 Rust로 작성된 Binder 드라이버에 집중하는 패치를 제출했습니다. Binder는 Android와 Linux 환경에서 프로세스 간 통신(IPC)을 담당하는 핵심 드라이버이며, 이번 변경은 단순한 실험적 대체가 아니라 기존 구현을 실제로 폐기하고 새로운 구현을 기본 방향으로 삼는 단계입니다. 제거 대상은 약 1만 1,000줄에 이르는 레거시 Binder C 코드입니다.
■ 15년 넘게 복잡해진 Binder C 구현
Google 엔지니어 Carlos Llamas는 제거 패치 설명에서 기존 C 드라이버가 15년 이상 확장되면서 점점 복잡해졌다고 설명합니다. 그 결과 유지보수가 매우 어려워졌고, 새로운 기능을 추가하거나 반영하는 과정에서 취약점을 건드리지 않기가 힘들었다고 합니다. 이번 패치의 목적은 단순히 구현 언어를 바꾸는 데 있지 않고, 오랫동안 누적된 복잡성을 가진 C 코드를 Linux 커널에서 제거하는 데 있습니다.
Llamas는 Rust 구현이 이러한 문제의 대부분을 완화한다고 설명합니다. 특히 새로운 기능을 추가할 때 기존 코드의 복잡성과 취약점 위험을 함께 다뤄야 했던 부담을 줄일 수 있다는 논리입니다. 다만 원문은 Rust가 모든 문제를 해결한다고 주장하지 않고, 기존 C 구현이 만들어 온 유지보수상의 문제를 대부분 덜어준다고 표현합니다.
■ 기능 동등성과 성능을 확인한 Rust Binder
Rust Binder는 지난 몇 년 동안 Alice Ryhl이 개발해 왔으며, 원문에 따르면 기존 C 드라이버와 완전한 기능 동등성(full feature parity)을 달성했습니다. 또한 성능 면에서도 C 구현과 맞먹을 수 있고, 여러 경우에는 더 빠를 수 있다는 점을 입증했다고 설명합니다. 따라서 이번 전환은 안전성이나 유지보수성을 위해 성능을 희생하는 선택으로만 설명되지 않습니다. Google 측은 Rust 구현이 성능 경쟁력까지 갖췄다고 보고 있습니다.
Rust Binder는 이미 일정 기간 Android 기기에서 성공적으로 동작해 왔습니다. 이 실제 사용 경험을 근거로 Google은 더 이상 해당 구현을 ‘실험(experiment)’이라고 부를 수 없다고 판단합니다. 즉, 기능을 구현하는 중간 단계의 대체 드라이버가 아니라, 기존 Binder를 대신해 앞으로의 개발을 이어갈 수 있는 수준에 도달했다는 의미입니다.
■ Linux 7.4 병합 창을 향하는 제거 패치
Carlos Llamas는 패치 설명에서 기존 C 구현을 제거하고 모든 새로운 기능과 최적화를 Rust 드라이버에 집중할 시점이 됐다고 밝혔습니다. Greg Kroah-Hartman은 이 제거 패치를 char-misc-next 브랜치에 반영했습니다. 이후 char/misc 코드의 -next 대기열에 들어갔기 때문에, 원문 시점에는 Linux 7.4 병합 창에 제출될 예정입니다.
따라서 이 변경은 이미 모든 Linux 배포판과 모든 Android 기기에서 완료된 전환을 뜻하지는 않습니다. 원문이 설명하는 단계는 커널 개발 트리에서 레거시 C 코드를 제거하는 패치가 다음 병합 창을 향해 준비된 상태입니다. 실제 적용 시점은 해당 병합 절차를 거쳐야 하지만, 개발 방향 자체는 C Binder의 추가 확장이 아니라 Rust Binder 중심으로 정해졌습니다.
이번 사례에서는 Rust 도입의 근거로 메모리 안전성 같은 일반적인 장점만 제시하지 않습니다. 15년 이상 누적된 커널 드라이버의 유지보수 부담, 기존 기능과의 동등성, Android 기기에서의 동작 경험, C 구현과 대등하거나 앞서는 성능, 그리고 Linux 커널 개발 트리에서의 실제 제거 패치가 함께 제시됩니다. 이에 따라 Binder의 신규 기능과 최적화는 앞으로 Rust 구현을 기준으로 진행됩니다.
■ Reddit 반응
• @u/guineawheek — Phoronix 댓글 작성자들이 정말 황당할 정도라는 점이 웃깁니다. 실제로 의미 있는 개발을 해본 적은 없고 무엇에든 반사적으로 반동적인 취향만 보이는, 말 그대로 허세를 부리는 사람들입니다. 물론 그런 태도는 어떤 종류의 엔지니어링에도 매우 형편없는 본능입니다. 아마 그런 사람들이 일부러 시간을 낭비하며 그곳에 글을 올리는 인구층일 것입니다. Rust for Linux는 매우 중요한 프로젝트입니다. 언어의 기능 희망 목록에 있는 거의 모든 항목이 대단히 유용한 아이디어이기 때문입니다. 그 희망 목록의 상당 부분을 충족하는 Rust는 사실상 이상적인 시스템 언어에 가깝습니다. Rust for Linux(RfL)는 충분히 주목받는 프로젝트이므로, 이 기능들에 관심을 모으는 힘이 있습니다.
원문: Phoronix / 번역·요약: Trawling