Reddit

17k lines of new Rust kernel code heading into Linux 7.4

Linux 7.4에 Rust 커널 코드 1만 7천 줄 추가

Linux 7.4에 Rust 커널 코드 약 1만 7천 줄이 들어갑니다. Zerocopy 업데이트와 새 모듈, pin-init 개선이 포함되며, 댓글에서는 메모리 안전성의 이점과 컴파일 시간 및 개발 비용을 함께 논의합니다.

에디터 노트

이번 변경의 1만 7천 줄은 Rust 커널 코드가 확장되는 규모를 보여주지만, 그 자체로 성능 향상을 입증하지는 않습니다. 원문이 다루는 내용은 주로 Zerocopy와 pin-init, 진단 기능 같은 크레이트 및 인프라 변경입니다. 성능 수치나 C 코드와의 직접 비교는 제시하지 않습니다. 댓글은 메모리 안전성의 이점과 컴파일 시간, 학습 및 설계 비용을 함께 짚습니다. 성능이 대체로 C와 비슷하다는 댓글과 특정 사례에서 느렸다는 댓글은 각각 경험적 근거가 제한적입니다. 따라서 이 변경의 근거로 확인되는 것은 기능과 인프라 확장이지, 성능 우위나 커널 전체의 Rust 전환은 아닙니다.

AI 요약

Linux 7.4에는 Rust 관련 코드 약 1만 7천 줄이 추가됩니다. 이번 변경에는 원시 바이트와 구조체 사이를 안전하게 변환하는 Zerocopy 크레이트의 8개 버전 전진 업데이트가 포함됩니다. Rust 커널 인프라와 도구 체인도 손보며, 프로시저 매크로 진단을 개선하는 불안정 기능 proc_macro_span을 활성화합니다.

크레이트와 인프라 변경

커널 Rust 코드에는 mem과 ratelimit 모듈이 새로 들어갑니다. pin-init 크레이트는 튜플 구조체를 지원하고, 자기 참조 구조체를 안전하게 만드는 기능을 추가합니다. 기존 모듈도 개선하며 진단 메시지를 보강합니다. 별도 하위 시스템 패치에는 NVIDIA Nova 드라이버와 Rust DRM 인프라 변경도 포함될 예정입니다.

Reddit 반응

  • @SeeMonkeyDoMonkey — 주된 부담은 Rust의 비교적 긴 컴파일 시간과 늘어나는 도구 체인, 새 기능에 적응해야 하는 개발자의 수고라고 봅니다. 커널 성능은 C와 사실상 비슷하겠지만 Rust는 메모리와 동시성 문제를 막고 커널이 다루는 데이터의 신뢰성을 추적하는 데 이점이 있다고 설명합니다.
  • @syklemil — Rust는 설계와 학습에 초기에 더 많은 비용이 듭니다. C는 절반은 세그폴트가 나고 나머지 절반은 원격 공격을 받을 코드도 컴파일해 실행하게 해줍니다. Rust는 컴파일러가 더 자주 거부하지만, 그 거부가 배포 코드의 품질을 높이는 과정이라고 말합니다.
  • @FriendlyProblem1234 — Rust는 컴파일 때 메모리를 매우 많이 쓰고 속도도 느립니다. 대신 더 고도화된 정적 분석을 수행합니다. C는 1970년대 하드웨어에서 컴파일하도록 설계됐다는 점도 비교에 고려해야 한다고 덧붙입니다.
  • @GamesRevolution — Rust 코드는 대체로 C와 비슷한 어셈블리로 컴파일됩니다. 안전 규칙 때문에 더 빠를 수 있는 코드가 컴파일되지 않을 때도 있지만, 꼭 필요하면 제한된 구간에서 unsafe Rust를 써서 규칙을 우회하고 그 영역을 따로 검토할 수 있다고 설명합니다.
  • @PossibilityUsual6262 — Rust가 더 빠른 코드를 만들 수 있다는 주장은 가능성에 불과하다고 반박합니다. 일부 사례에서는 오히려 느리며, 한 AI 재작성 사례에서 C 성능의 80%를 냈다는 글을 봤지만 출처는 잃어버렸다고 말합니다.
  • @afiefh — Rust에서 C 함수를 호출하는 일은 unsafe 블록과 C 형식 인자를 쓰는 방식으로 처리하며, 함수 호출 자체에는 오버헤드가 없다고 설명합니다. 자료 구조를 변환해야 한다면 비용이 생길 수 있지만, C와 호환되는 구조체 배치를 쓰면 변환을 피하는 경우도 있다고 덧붙입니다.
  • @CissMN — Phoronix 포럼의 한 추정에 따르면 Rust 코드는 전체 커널 코드의 0.57%라고 말합니다.

원문: Phoronix / 번역·요약: Trawling