- 커널의 두 번째 언어로 Rust를 사용해야 하는 이유를 정리 - 코어나 주요 커널 하위시스템을 다시 작성하는게 아닌, 드라이버 및 그와 비슷한 "Leaf" 모듈들을 Rust로 작성할 수 있도록 하기 위함
Rust를 리눅스 커널에서 사용하면 - 언어적 속성 때문에 메모리 세이프티 버그, 데이터 경합 및 논리 버그의 위험이 줄어듬 - 메인테이너가 Rust의 안전함 때문에 모듈을 리팩토링하고 패치하는데 더 자신있게 할 수 있음 - 최신 언어 기능 및 상세한 문서화 덕분에 새 드라이버와 모듈을 쉽게 작성 가능 - 더 많은 사람들이 최신 언어를 사용하여 커널개발에 전반적으로 참여 가능 LKML: ojeda@kernel ...: [PATCH 00/13] [RFC] Rust support
"Why Rust?" - Linux 커널의 컨텍스트상, C에 비해 몇가지 주요 이점을 제공 ㅤ→ (언어적 장점은 생략..)
"Why not?" - Linux 커널의 컨텍스트상, C에 비해 이런 단점이 있음 ㅤ→ 컴파일러 플러그인, Sanitizer 등을 포함한 C 기반 툴링에 노력을 기울여왔음. 이건 시간이 지나면서 Rust 사용이 증가하면 개선 될 것 ㅤ→ LLVM 기반의 단일 구현체. GCC 프론트엔드, Cranelift 기반의 'ructc' 백엔드, 부트스트래핑 체인을 줄이기 위한 'mrustc' 와 같은 노력이 진행중 ㅤ→ 아직 표준화 되지 않음. 표준화가 커널에 도움이 될지는 확실하진 않지만.. ㅤ→ 현재 컴파일러의 복잡한 기능과 제한으로 인해서 컴파일 속도가 느림 ㅤ→ 현재로서는 Nightly 빌드에 있는 기능이 필요. 안정 버전을 사용 불가. 1년 내에 이 제한을 없애는걸 목표 ㅤ→ 'core' 및 'alloc' Rust 표준 라이브러리에 있는 기능이 다 사용되지 않아서 현재 필요한 부분보다 큼 - 이러한 단점의 대부분은 Rust 가 아직 젊고 덜 사용되는 언어라는 사실에서 발생 - 지난 수십년 동안 C가 그랬던 것처럼 Rust 가 시스템 프로그래밍의 중요한 부분이 될 것이라고 믿고 있음 Text-to-speech function is limited to 200 characters |