Linux에서 Rust 드라이버 지원을 위한 패치의 네 번째 버전이 게시되었습니다.

미구엘 오제다, Rust-for-Linux 프로젝트의 저자, Teme은 최근 네 번째 제안을 발표했습니다. 장치 드라이버 구성 요소 Linux 커널 개발자가 고려해야 할 Rust.

Rust 지원은 실험적인 것으로 간주되며, 그러나 그것은 이미 linux-next 브랜치에 포함되는 것에 동의했으며 커널 하위 시스템의 상단에서 추상화 계층 작업을 시작하고 드라이버와 모듈을 작성하기에 충분히 성숙했습니다. 이 개발은 Google과 Let's Encrypt 프로젝트의 창시자인 ISRG(Internet Security Research Group)가 자금을 지원하고 HTTPS와 인터넷 보안을 향상시키는 기술 개발을 촉진합니다.

제안된 변경 사항을 아직 모르는 사람들을 위해, 그들은 그것이 가능하다는 것을 알아야 합니다. 컨트롤러와 모듈을 개발하기 위한 두 번째 언어로 Rust 사용 커널의. Rust 지원은 기본적으로 활성화되지 않은 옵션으로 제공되며 Rust가 커널에 필요한 빌드 종속성에 포함되지 않습니다.

Rust를 사용하여 드라이버 개발 최소한의 노력으로 더 좋고 더 안전한 드라이버를 만들 수 있습니다., 메모리 영역을 해제한 후 액세스하고, 널 포인터를 역참조하고, 버퍼 오버플로와 같은 문제가 없습니다.

메모리 안전은 참조를 확인하고, 객체 소유권 및 객체 수명(범위)을 추적하고, 코드를 실행하는 동안 메모리 액세스의 정확성을 평가함으로써 컴파일 타임에 제공됩니다.

Rust는 또한 정수 오버플로 보호를 제공하고, 사용 전에 변수를 초기화해야 하며, 표준 라이브러리의 오류를 더 잘 처리하고, 기본적으로 불변 변수와 참조의 개념을 시행하고, 논리적 오류를 최소화하기 위해 강력한 정적 유형을 제공합니다.

XNUMX부에서는 어떤 변화가 있나요?

이 새 버전의 패치에서는 패치의 첫 번째, 두 번째 및 세 번째 버전에 대한 토론 중에 언급된 내용이 계속 제거되었다고 언급됩니다.

불안정한 기능에 의존하지 않을 때까지 계속 업데이트하겠습니다.
이 시점에서 우리는 Rust의 최소 버전을 선언하기 시작할 수 있습니다.
예를 들어 GCC 및 Clang의 경우와 마찬가지로 지원됩니다.

유사하게, 우리는 또한 Rust 언어의 2021년 판으로 마이그레이션했습니다.

이 새 버전의 다른 변경 사항과 관련하여 발표 내용은 다음과 같습니다.

  • 안정적인 Rust 1.58.0을 참조 컴파일러로 사용하도록 전환되었습니다.
  • 주요 Rust 툴킷에는 아직 포함되지 않은 프로젝트에 필요한 변경 사항에는 "-Zsymbol-mangling-version=v0" 플래그(Rust 1.59.0에서 예상됨) 및 "maybe_uninit_extra" 모드(Rust 1.60.0에서 예상됨)가 포함됩니다. .
  • Rust 도구의 가용성과 적합성에 대한 자동 검사가 추가되었으며 시스템에서 Rust 지원을 테스트하는 기능도 확장되었습니다.
  • Rust 코드에서 장치 식별자 테이블("IdArray" 및 "IdTable")에 액세스할 수 있도록 새로운 추상화가 제안되었습니다.
  • 타이머(시계 프레임)와 관련된 호출 기능을 위한 레이어를 추가했습니다.
  • 플랫폼 컨트롤러는 이제 특성 구현을 통해 정의됩니다.
  • 플랫폼 드라이버 등록을 단순화하기 위해 새 매크로가 추가되었으며 새 일반 드라이버 템플릿이 제안되었습니다.
  • "dev_*" 구조에 대한 새 매크로를 추가했습니다.
  • IoMem 유형에 대한 새 메서드 "{read,write}*_relaxed" 추가됨 .
  • 파일 작업을 단순화하기 위해 FileOpener 속성을 제거했습니다.
  • 컨트롤러 등록 중에 전달된 인수 수에 "ThisModule" 매개변수를 추가했습니다.
  • Rust 언어로 커널 모듈을 생성하기 위한 일반적인 템플릿이 제안됩니다.

마지막으로, 이 새 버전에 대해 더 알고 싶다면 자세한 내용을 참조하십시오. 다음 링크에서.


코멘트를 남겨주세요

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

*

*

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