- 커널의 두 번째 언어로 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 가 시스템 프로그래밍의 중요한 부분이 될 것이라고 믿고 있음
Detect language Afrikaans Albanian Amharic Arabic Armenian Azerbaijani Basque Belarusian Bengali Bosnian Bulgarian Catalan Cebuano Chichewa Chinese (Simplified) Chinese (Traditional) Corsican Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Frisian Galician Georgian German Greek Gujarati Haitian Creole Hausa Hawaiian Hebrew Hindi Hmong Hungarian Icelandic Igbo Indonesian Irish Italian Japanese Javanese Kannada Kazakh Khmer Korean Kurdish Kyrgyz Lao Latin Latvian Lithuanian Luxembourgish Macedonian Malagasy Malay Malayalam Maltese Maori Marathi Mongolian Myanmar (Burmese) Nepali Norwegian Pashto Persian Polish Portuguese Punjabi Romanian Russian Samoan Scots Gaelic Serbian Sesotho Shona Sindhi Sinhala Slovak Slovenian Somali Spanish Sundanese Swahili Swedish Tajik Tamil Telugu Thai Turkish Ukrainian Urdu Uzbek Vietnamese Welsh Xhosa Yiddish Yoruba Zulu
Afrikaans Albanian Amharic Arabic Armenian Azerbaijani Basque Belarusian Bengali Bosnian Bulgarian Catalan Cebuano Chichewa Chinese (Simplified) Chinese (Traditional) Corsican Croatian Czech Danish Dutch English Esperanto Estonian Filipino Finnish French Frisian Galician Georgian German Greek Gujarati Haitian Creole Hausa Hawaiian Hebrew Hindi Hmong Hungarian Icelandic Igbo Indonesian Irish Italian Japanese Javanese Kannada Kazakh Khmer Korean Kurdish Kyrgyz Lao Latin Latvian Lithuanian Luxembourgish Macedonian Malagasy Malay Malayalam Maltese Maori Marathi Mongolian Myanmar (Burmese) Nepali Norwegian Pashto Persian Polish Portuguese Punjabi Romanian Russian Samoan Scots Gaelic Serbian Sesotho Shona Sindhi Sinhala Slovak Slovenian Somali Spanish Sundanese Swahili Swedish Tajik Tamil Telugu Thai Turkish Ukrainian Urdu Uzbek Vietnamese Welsh Xhosa Yiddish Yoruba Zulu
Text-to-speech function is limited to 200 characters