프로그래밍 언어 Rust는 항상 Linux 커널 개발에서 C를 대체하는 것을 목표로했습니다. 그리고 Rust가 성숙 해짐에 따라 여러 개발자들이 Linux 커널에서의 사용에 대한 관심을 표명했습니다.
가상 회의에서 Linux Plumbers 2020, 마이크로 컨퍼런싱 흐름 LLVM 제작 열린 질문에 대한 세션 구성 및 장벽 Linux 커널에서 Rust의 업스트림 수용을 위해.
이 세션은 2020 년 행사 중 가장 분주했기 때문에이 주제에 대한 관심이 가시화되었습니다.
그렇다면 이제 전체 Linux 커널을 Rust 언어로 다시 작성해야합니까? 이 논의는 오늘부터 시작되지 않았으며 2015 년 Rust의 첫 번째 안정 버전이 등장한 이후로 강조되었습니다.
가능성을 고려하여 Rust, 일부는 그것을 제안합니다. 올해 XNUMX 월 Linux Plumbers 회의에서 연사들은 다시 토론 할 시간을 가졌습니다.
그리고 놀라운 것은 그들은 동의하는 것 같다 만장일치로 아니오 Rust에서 기존 코드를 다시 작성하는 것이 아니라 Rust를 계속 사용하여 커널 개발을 위해. 즉, 그들은 새로운 코드가 Rust로 작성 될 수있는 세상을 상상합니다.
이 세션은 작년에 Linux Security Summit에서 Alex Gaynor와 Geoffrey Thomas의 강연을 포함하여 많은 개발자의 이전 작업을 기반으로 구축되었습니다.
컨퍼런스에서 그들은 Rust 커널 모듈의 프로토 타이핑 작업을 발표하고 커널에 Rust를 채택하도록 옹호했습니다.
그들은 안드로이드와 우분투에서 CVE에 할당 된 커널 취약점의 약 XNUMX 분의 XNUMX가 메모리 보안 문제와 관련이 있다는 것을 보여주는 연구를 인용했습니다.
그들은 결국 설명했습니다 Rust는보다 안전한 API 덕분에 이러한 종류의 오류를 완전히 피할 수 있습니다. 시스템 유형 및 대출 확인자에 의해 활성화됩니다.
이 연구는 이미 여러 관리자를 설득했습니다. 커널에 Rust를 도입하는 것을 지원 한 Linus Torvalds. Thomas와 Gaynor, Rust 언어 팀의 공동 의장이자 오랜 Linux 커널 개발자 인 Josh Triplett, 그리고 다른 관심있는 개발자들이이 주제에 대한 토론에 참여했습니다.
그들은 대부분의 토론 시간을 열기 전에 지금까지 그의 작업과 그의 첫 번째 생각과 질문에 대해 간략히 언급했습니다.
이는 커널의 기존 API 사용, 아키텍처 지원 및 Rust와 C 간의 ABI 호환성에 대한 질문입니다.
사실, 그들은 처음에 Rust를 트리 구조에 도입하려면 기존 C API를 존중해야합니다.
그러나 모든 사람들은 악마가 세부 사항에 있다고 느끼고 지금까지 수행 한 작업과 세션 중 대화에서 열린 도전이 드러났습니다.
예를 들어, Linux는 bindgen 도구와 Rust의 외부 함수 인터페이스에서 쉽게 지원되지 않는 전 처리기 매크로와 인라인 함수를 많이 사용합니다.
그들에 따르면, 현재 Rust의 유일한 성숙한 구현은 컴파일러입니다. LLVM을 통해 코드를 발행하는 rustc.
Linux 커널은 다양한 아키텍처를 지원하며 대부분은 LLVM 백엔드를 사용할 수 없습니다.
Triplett는 데비안 프로젝트에 대한 그의 경험을 인용하면서 커널에 Rust를 추가하는 것이 Rust에 대한 아키텍처 지원을 늘리는 데 도움이 될 것이라고 제안했습니다. 그는 데비안에 Rust 소프트웨어를 도입 한 것이 틈새 아키텍처의 열광 자와 사용자가 Rust 지원을 개선하도록 동기를 부여하는 데 도움이되었다고 언급했으며 비슷한 효과를 내기 위해 커널 지원을 추가하기를 희망합니다.
특히 그는 LLVM 백엔드가있는 모든 아키텍처가 Rust와 빠르게 호환 될 것이라고 확신했습니다. 토론은 또한 광범위한 아키텍처 지원을위한 경로로서 대안적인 Rust 구현에 초점을 맞추 었습니다.
세션은 더 이상 구체적인 이정표없이 끝났지 만 Rust Mods를 지원하고이 지원에 대한 일반적인 요구 사항에 대한 합의가 증가하는 것에 대한 전반적인 열정이있는 것 같습니다.
새로운 시대의 시작 인 듯 부동의 C가 등장합니다.
안녕, 러스트, 안녕 리누스 토발즈!