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

그것은 보인다 패치 개발 Linux에서 Rust 드라이버 지원을 위해 좋은 속도를 얻었다 글쎄요, 제거된 제안이 발표된 지 한 달이 조금 넘었습니다. 세 번째 버전 이후로 매달 새로운 제안이 전달되고 이제 새로운 제안이 발표되어 이번이 XNUMX번째 판입니다.

Miguel Ojeda가 새로운 릴리스를 제안했습니다. Linux 커널 개발자가 고려해야 할 Rust 장치 드라이버 개발 구성 요소. 이것은 여섯 번째 판이다. 여전히 실험적인 것으로 간주 그러나 그것은 이미 linux-next 브랜치에 포함되어 있으며 드라이버와 모듈을 작성하는 것뿐만 아니라 커널 하위 시스템 위에 추상화 계층을 만드는 작업을 시작할 만큼 충분히 성숙했습니다.

아직 이 발전을 모르는 사람들을 위해, 그들은 다음을 알아야 합니다. Google 및 ISRG에서 자금을 지원합니다. (Internet Security Research Group)은 Let's Encrypt 프로젝트의 창시자이며 인터넷 보안을 강화하기 위한 HTTPS 및 기술 개발을 촉진합니다.

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

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

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

패치의 새 버전에서는 첫 번째 패치에 대한 토론 중 댓글이 계속 삭제되었으며, , 세 번째, 쿼터 y 퀸타 패치의 에디션(해당 링크를 남겨두겠습니다).

여섯 번째 제안의 주요 참신함

이 새로운 제안의 도착과 함께 툴킷이 업데이트되었습니다 Rust 1.59.0이 출시되기 전에 alloc 라이브러리의 변형 또한 새 버전의 Rust와 동기화되어 메모리 부족과 같은 오류가 발생할 때 "패닉" 상태의 가능성을 제거합니다.

또 다른 변경 사항은 이제 플랫폼 사양 파일을 제공하는 대신 미리 만들어진 목적지 커널 구성에 따라 동적으로 생성됩니다.

또한 HAVE_RUST 커널 매개변수가 Rust 호환 아키텍처를 활성화하기 위해 추가되었으며 하드웨어 의사 난수 생성기용 Rust 코드에서 사용하기 위해 추상화가 제안되었습니다.

반면에 어셈블러 인서트를 사용하는 기능이 안정화되었습니다. ("feature(global_asm)") 및 커널 빌드 프로세스에서 사용되는 Rust의 호스트 프로그램 생성 지원을 추가했습니다.

다른 변경 사항 중 이 새로운 제안에서 눈에 띄는 것은:

  • "Error::" 접두사 없이 오류 코드를 사용하면(예: "return Err(EINVAL)") C에서 오류 코드를 대략적으로 처리할 수 있습니다.
  • 기본 C 문자열에 대한 "CString" 유형이 추가되었습니다. 결합된 포맷터 및 버퍼 유형.
  • Bool 및 LockInfo 특성을 추가했습니다.
  • 스핀락의 단순화된 구현.

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


코멘트를 남겨주세요

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

*

*

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