Rust for Linux에는 다음을 지원하는 몇 가지 개선 사항이 포함되어 있습니다.

지난 몇 달 동안 리눅스 개발자들은 가능성 Rust 언어의 사용을 허용 커널에 대한 새 장치 드라이버를 작성합니다.

작년에 리눅스 커널 개발자들은 그들은 그 문제에 대해 합의에 도달한 것 같으며, Rust 지지자들은 Android 및 Ubuntu에서 CVE에 할당된 커널 취약점의 약 XNUMX/XNUMX가 메모리 보안 문제와 관련되어 있음을 보여주는 작업을 인용했습니다.

이 발언에 이어 소프트웨어 엔지니어이자 Linux 커널의 수석 제작자이자 개발자인 Linus Torvalds는 인터뷰에서 이 주제에 대한 토론이 언어에 대한 긴 Google 게시물보다 훨씬 더 중요하다고 말했습니다.

Rust를 사용하라는 제안에 대해 묻자 그는 "해결 방법은 간단합니다. Rust 대신 C++를 사용하세요."라고 말했습니다.

그 후 XNUMX월에 첫 번째 지원이 시작되었습니다.e를 통해 Rust 드라이버는 최종적으로 메인 커널에 포함되기 전에 추가 테스트를 위해 Linux-Next 트리에 배치할 수 있습니다.

바로 뒤에는 Linux 커널에 대한 Rust 코드 관점에 대해 커널 메일링 리스트에 재발행된 "코멘트 요청"이 있었습니다.

미구엘 오제다Linux 커널 개발자는 Linux 커널 메일링 리스트에서 RFC(Request for Comments) 제안을 시작했습니다.

메일링 리스트 게시물은 커널에 Rust 코드를 추가하는 것과 관련된 개발자의 신념, 향상된 메모리 보안 등의 이점에 대해 설명했습니다.

“여러분 중 일부는 지난 몇 주와 몇 달 동안 제XNUMX 언어를 커널에 가져오려는 진지한 시도가 이루어지고 있음을 알아차렸습니다. Miguel Ojeja는 "Rust에 대한 지원을 Linux 커널에 추가하는 RFC와 함께 마침내 거기에 도달했습니다."라고 말했습니다. "우리는 커널에 새로운 언어를 도입하는 데 막대한 비용과 위험이 있다는 것을 알고 있습니다."라고 그는 덧붙였습니다.

Rust for Linux 프로젝트 팀 Rust 베타 컴파일러에서 안정적인 릴리스 사용으로 이동, 새 버전이 출시될 때마다 마이그레이션됩니다.

Miguel은 "커널이 사용할 수 있도록 이러한 옵션에 대해 우리와 함께 작업한 Rust에게 감사드립니다."라고 말했습니다.

컴파일러를 업데이트할 때 팀은 목록에서 일부 불안정한 기능을 제거할 수 있었습니다.: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic 및 try_reserve.

이 외에도 강조하는 것은 일부 모듈화 옵션이 추가되었습니다. no_rc 및 no_sync와 같은 일부 불필요한 기능을 비활성화하기 위해 더 많이 할당합니다.

Upstream, 커널 사용 사례가 잘 지원되거나 더 정확하게는 커널에 필요한 옵션의 "혼합"을 위해 Upstream 코어는 no_fp_fmt_parse도 추가했습니다.

반면에 Rust는 Rust 및 Clippy 컴파일러에 대한 일련의 추가 진단을 가능하게 했습니다. C와의 한 가지 차이점은 Rust 진단이 코드에서 비활성화하기가 조금 더 쉽고 일반적인 경우에는 더 엄격하다는 것입니다.

또한 추상화 및 드라이버 업데이트가 구현되었습니다.. 팀은 스트림 잠금, 전원 관리 콜백, io 메모리(readX/writeX), irq 칩 및 고급 스트림 관리자, gpio 칩(irq 칩 포함), 주변 장치, amba 주변 장치 및 드라이버에 대한 추상화를 추가했습니다.

의 지원 컨트롤러는 버스 독립 인프라로 향상되었으며, 취소 가능한 개체, 취소 가능한 뮤텍스, 효율적인 비트 반복자, 더 나은 패닉 진단 및 단순화된 포인터 래퍼. 또한 Ref 객체(refcount_t와 호환)를 개선하고 단순화했으며 모든 Rust 인스턴스를 대체했습니다.

그리고 gpio PL061 장치용 새 드라이버가 구현되어 RFC 패치로 제공되었습니다.

마지막으로 Rust 지원은 여전히 ​​실험적인 것으로 간주됩니다.. 그러나, 커널 개발자가 작업할 수 있을 만큼 지원이 좋습니다. 쓰기 하위 시스템, 컨트롤러 및 기타 모듈에 대한 Rust 추상화에서. 현재 시리즈는 Linux-next에 방금 도착했으므로 이번 주에 첫 번째 실행이 있을 것입니다.

출처 : https://lkml.org/lkml


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.