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

최근에 미구엘 오제다, Rust-for-Linux 프로젝트의 저자 다섯 번째 제안을 발표했습니다 개발 구성 요소를 위해 선택한 Linux 커널 개발자 녹 장치 드라이버 그들이 고려하기 위해.

현재 몇 개월 동안 게시된 이 일련의 제안을 여전히 모르는 사람들을 위해, 그 이면의 아이디어는 Rust 지원이 현재 실험적인 것으로 간주된다는 사실 때문이라는 사실을 알아야 합니다. 그러나 linux-next 브랜치에 이미 포함되어 있으며 추상화 레이어 생성 작업을 시작할 수 있을 만큼 충분히 성숙했습니다. 커널 하위 시스템과 드라이버 및 모듈 작성에 대해 설명합니다.

현재, Miguel Ojeda의 개발 위원회는 Google과 ISRG에서 자금을 지원합니다. (Internet Security Research Group)은 Let's Encrypt 프로젝트의 창시자이며 인터넷 보안을 강화하기 위한 HTTPS 및 기술 개발을 촉진합니다.

제안된 변경 사항을 언급하는 것이 중요합니다. 드라이버와 커널 모듈을 개발하기 위한 두 번째 언어로 Rust를 사용할 수 있습니다. Rust 지원은 기본적으로 활성화되지 않은 옵션으로 제공되며 Rust가 커널에 필요한 빌드 종속성에 포함되지 않습니다.

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

메모리 안전은 참조를 확인하고, 객체 소유권 및 객체 수명(범위)을 추적하고, 코드를 실행하는 동안 메모리 액세스의 정확성을 평가함으로써 컴파일 타임에 제공됩니다. Rust는 또한 정수 오버플로 보호를 제공하고, 사용 전에 변수를 초기화해야 하며, 표준 라이브러리의 오류를 더 잘 처리하고, 기본적으로 불변 변수와 참조의 개념을 시행하고, 논리적 오류를 최소화하기 위해 강력한 정적 유형을 제공합니다.

다섯 번째 제안의 주요 참신

새 버전의 패치에서는 댓글 계속 삭제 첫 번째, 두 번째, 세 번째 및 네 번째 판 패치에 대한 토론 중에 만들어졌습니다.

변경된 사항 및 개선 사항의 일부에서 다음을 찾을 수 있습니다. 구성 요소 검증 호환성을 위해 with Rust가 지속적인 통합 시스템에 추가되었습니다. Intel 호환 0DAY/LKP 봇을 기반으로 테스트 보고서가 게시되기 시작했습니다.

이 외에도 강조하는 것은 Rust 지원 통합이 준비 중입니다. 자동화된 테스트 시스템 커널CI, 또한 GitHub CI 기반 테스트가 컨테이너 사용으로 전환되었습니다.

또한 추가 매개변수를 정의하는 기능 추가 장치를 등록할 때 뿐만 아니라 is_rust_module.sh 스크립트가 재설계되었습니다 "CONFIG_CONSTRUCTORS" 구현을 기반으로 하는 정적 동기화 기본 요소(전역 공유 변수)에 대한 지원이 추가되었습니다.

눈에 띄는 다른 변화 이 새로운 컨트롤러 제안에서:

  • Rust Core 모듈은 "#![no_std]" 및 "#![feature(...)]" 속성을 정의할 필요가 없습니다.
  • 단일 빌드 대상(.o, .s, .ll 및 .i)에 대한 지원이 추가되었습니다.
  • 코드 지침은 이제 주석("//")을 구분하고 코드를 문서화("///")하기 위한 규칙을 정의합니다.
  • 단순화된 잠금 관리: Guard 및 GuardMut은 하나의 매개변수화된 유형으로 결합됩니다.
  • C rw_semaphore 구조에 대한 래퍼 역할을 하는 "RwSemaphore" 추상화를 추가했습니다.
  • mmap을 사용하기 위해 새로운 mm 모듈과 VMA 추상화(vm_area_struct 구조에 대한 바인딩)가 추가되었습니다.
  • PL061 GPIO 컨트롤러는 "dev_*!" 매크로를 사용하도록 변경되었습니다.
  • 일반 코드 정리.

최종적으로 그것에 대해 더 많이 알고 싶다면 이 새로운 제안에 대해 자세한 내용을 참조할 수 있습니다. 다음 링크에서.


코멘트를 남겨주세요

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

*

*

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